diff --git a/.gitignore b/.gitignore index 49817eab..b8680775 100644 --- a/.gitignore +++ b/.gitignore @@ -12,11 +12,3 @@ build/PROJECT.pck build/PROJECT.x86_64 build/PROJECT.exe build.zip - -*.o -compile_commands.json -.tree.hash -.cache -.kdev4 -*.kdev4 -*__pycache__ diff --git a/justfile b/justfile index c4d5a10d..f13b11e1 100644 --- a/justfile +++ b/justfile @@ -1,48 +1,34 @@ set export BUILD_NAME := "change_me" -tree_hash := `tree ./modules | md5sum` -compiledb := if tree_hash == `cat .tree.hash` { "no" } else { "yes" } + +release_template_path_linux := `realpath engine/bin/godot.linuxbsd.template_release.x86_64.llvm` +release_template_path_windows := `realpath engine/bin/godot.windows.template_release.x86_64.llvm` -build: format - # Compiling Editor - cd engine/ && scons target=editor symbols=yes optimization=debug dev_build=yes linker=mold use_llvm=yes compiledb={{compiledb}} custom_modules="../modules" +build: + cd engine/ && scons target=editor symbols=yes optimization=debug dev_build=yes linker=mold use_llvm=yes compiledb=yes run: build - # Running Editor engine/bin/godot.linuxbsd.editor.dev.x86_64.llvm --editor --path project release-linux: build - # Compiling Linux Release - cd engine/ && scons platform=linuxbsd target=template_release arch=x86_64 linker=mold use_llvm=yes custom_modules="../modules" - # Preparing Build Environment - sed -i "s!templatepath!{{`realpath engine/bin/godot.linuxbsd.template_release.x86_64.llvm`}}!" project/export_presets.cfg + cd engine/ && scons platform=linuxbsd target=template_release arch=x86_64 linker=mold use_llvm=yes compiledb=yes custom_modules="../modules" + sed -i "s!{path}!{{release_template_path_linux}}!" project/export_presets.cfg rm -rf build && mkdir build engine/bin/godot.*.editor.dev.*.llvm --headless --export-release "Linux" project/project.godot && zip build.zip build/* - # Resetting Build Environment touch build/.gitkeep - sed -i "s!{{`realpath engine/bin/godot.linuxbsd.template_release.x86_64.llvm`}}!templatepath!" project/export_presets.cfg - # Completed Linux Release Build + sed -i "s!{{release_template_path_linux}}!{path}!" project/export_presets.cfg release-windows: build - # Compiling Windows Release - cd engine/ && scons platform=windows target=template_release arch=x86_64 linker=mold custom_modules="../modules" - # Preparing Build Environment - sed -i "s!templatepath!{{`realpath engine/bin/godot.windows.template_release.x86_64`}}!" project/export_presets.cfg + cd engine/ && scons platform=windows target=template_release arch=x86_64 linker=mold use_llvm=yes compiledb=yes custom_modules="../modules" + sed -i "s!{path}!{{release_template_path_windows}}!" project/export_presets.cfg rm -rf build && mkdir build engine/bin/godot.*.editor.dev.*.llvm --headless --export-release "Windows" project/project.godot && zip build.zip build/* - # Resetting Build Environment - touch build/.gitkeep - sed -i "s!{{`realpath engine/bin/godot.windows.template_release.x86_64`}}!templatepath!" project/export_presets.cfg - # Completed Windows Release Build + touch build/.gitkeep + sed -i "s!{{release_template_path_windows}}!{path}!" project/export_presets.cfg initialize-template projectname: - # Initializing Template {{projectname}} sed -i -e "s/PROJECT/{{projectname}}/g" ./modules/PROJECT/register_types.h ./modules/PROJECT/register_types.cpp ./project/project.godot ./project/export_presets.cfg .gitignore - sed -i -e "s/change_me/{{projectname}}/" ./justfile + sed "s/change_me/{{projectname}}/" ./justfile mv ./modules/PROJECT ./modules/{{projectname}} - # Done Initializing, you will still have to update BUILD_NAME in your justfile -format: - # Formatting Custom Modules - clang-format -i $(find modules/ -iname '*.h' -o -iname '*.c' -o -iname '*.hpp' -o -iname '*.cpp' -o -iname '*.hxx' -o -iname '*.cxx') diff --git a/modules/.clang-format b/modules/.clang-format deleted file mode 100644 index 6a547cf6..00000000 --- a/modules/.clang-format +++ /dev/null @@ -1,238 +0,0 @@ -# Commented out parameters are those with the same value as base LLVM style. -# We can uncomment them if we want to change their value, or enforce the -# chosen value in case the base style changes (last sync: Clang 17.0.6). -BasedOnStyle: LLVM -AccessModifierOffset: -4 -AlignAfterOpenBracket: DontAlign -# AlignArrayOfStructures: None -# AlignConsecutiveAssignments: -# Enabled: false -# AcrossEmptyLines: false -# AcrossComments: false -# AlignCompound: false -# PadOperators: true -# AlignConsecutiveBitFields: -# Enabled: false -# AcrossEmptyLines: false -# AcrossComments: false -# AlignCompound: false -# PadOperators: false -# AlignConsecutiveDeclarations: -# Enabled: false -# AcrossEmptyLines: false -# AcrossComments: false -# AlignCompound: false -# PadOperators: false -# AlignConsecutiveMacros: -# Enabled: false -# AcrossEmptyLines: false -# AcrossComments: false -# AlignCompound: false -# PadOperators: false -# AlignConsecutiveShortCaseStatements: -# Enabled: false -# AcrossEmptyLines: false -# AcrossComments: false -# AlignCaseColons: false -# AlignEscapedNewlines: Right -AlignOperands: DontAlign -AlignTrailingComments: - Kind: Never - OverEmptyLines: 0 -# AllowAllArgumentsOnNextLine: true -AllowAllParametersOfDeclarationOnNextLine: false -# AllowShortBlocksOnASingleLine: Never -# AllowShortCaseLabelsOnASingleLine: false -# AllowShortEnumsOnASingleLine: true -AllowShortFunctionsOnASingleLine: Inline -# AllowShortIfStatementsOnASingleLine: Never -# AllowShortLambdasOnASingleLine: All -# AllowShortLoopsOnASingleLine: false -# AlwaysBreakAfterDefinitionReturnType: None -# AlwaysBreakAfterReturnType: None -# AlwaysBreakBeforeMultilineStrings: false -# AlwaysBreakTemplateDeclarations: MultiLine -# AttributeMacros: -# - __capability -# BinPackArguments: true -# BinPackParameters: true -# BitFieldColonSpacing: Both -# BraceWrapping: -# AfterCaseLabel: false -# AfterClass: false -# AfterControlStatement: Never -# AfterEnum: false -# AfterFunction: false -# AfterNamespace: false -# AfterObjCDeclaration: false -# AfterStruct: false -# AfterUnion: false -# AfterExternBlock: false -# BeforeCatch: false -# BeforeElse: false -# BeforeLambdaBody: false -# BeforeWhile: false -# IndentBraces: false -# SplitEmptyFunction: true -# SplitEmptyRecord: true -# SplitEmptyNamespace: true -# BreakAfterAttributes: Never -# BreakAfterJavaFieldAnnotations: false -# BreakArrays: true -# BreakBeforeBinaryOperators: None -# BreakBeforeBraces: Attach -# BreakBeforeConceptDeclarations: Always -# BreakBeforeInlineASMColon: OnlyMultiline -# BreakBeforeTernaryOperators: true -BreakConstructorInitializers: AfterColon -# BreakInheritanceList: BeforeColon -# BreakStringLiterals: true -ColumnLimit: 0 -# CommentPragmas: "^ IWYU pragma:" -# CompactNamespaces: false -ConstructorInitializerIndentWidth: 8 -ContinuationIndentWidth: 8 -Cpp11BracedListStyle: false -# DerivePointerAlignment: false -# DisableFormat: false -# EmptyLineAfterAccessModifier: Never -# EmptyLineBeforeAccessModifier: LogicalBlock -# ExperimentalAutoDetectBinPacking: false -# FixNamespaceComments: true -# ForEachMacros: -# - foreach -# - Q_FOREACH -# - BOOST_FOREACH -# IfMacros: -# - KJ_IF_MAYBE -# IncludeBlocks: Preserve -IncludeCategories: - - Regex: ^".*"$ - Priority: 1 - - Regex: ^<.*\.h>$ - Priority: 2 - - Regex: ^<.*>$ - Priority: 3 -# IncludeIsMainRegex: (Test)?$ -# IncludeIsMainSourceRegex: "" -# IndentAccessModifiers: false -# IndentCaseBlocks: false -IndentCaseLabels: true -# IndentExternBlock: AfterExternBlock -# IndentGotoLabels: true -# IndentPPDirectives: None -# IndentRequiresClause: true -IndentWidth: 4 -# IndentWrappedFunctionNames: false -InsertBraces: true -# InsertNewlineAtEOF: false -# InsertTrailingCommas: None -# IntegerLiteralSeparator: -# Binary: 0 -# BinaryMinDigits: 0 -# Decimal: 0 -# DecimalMinDigits: 0 -# Hex: 0 -# HexMinDigits: 0 -JavaImportGroups: - - org.godotengine - - android - - androidx - - com.android - - com.google - - java - - javax -# JavaScriptQuotes: Leave -# JavaScriptWrapImports: true -# KeepEmptyLinesAtEOF: false -KeepEmptyLinesAtTheStartOfBlocks: false -# LambdaBodyIndentation: Signature -# Language: Cpp -# LineEnding: DeriveLF -# MacroBlockBegin: "" -# MacroBlockEnd: "" -# MaxEmptyLinesToKeep: 1 -# NamespaceIndentation: None -# ObjCBinPackProtocolList: Auto -ObjCBlockIndentWidth: 4 -# ObjCBreakBeforeNestedBlockParam: true -# ObjCSpaceAfterProperty: false -# ObjCSpaceBeforeProtocolList: true -# PPIndentWidth: -1 -PackConstructorInitializers: NextLine -# PenaltyBreakAssignment: 2 -# PenaltyBreakBeforeFirstCallParameter: 19 -# PenaltyBreakComment: 300 -# PenaltyBreakFirstLessLess: 120 -# PenaltyBreakOpenParenthesis: 0 -# PenaltyBreakString: 1000 -# PenaltyBreakTemplateDeclaration: 10 -# PenaltyExcessCharacter: 1000000 -# PenaltyIndentedWhitespace: 0 -# PenaltyReturnTypeOnItsOwnLine: 60 -# PointerAlignment: Right -# QualifierAlignment: Leave -# ReferenceAlignment: Pointer -# ReflowComments: true -# RemoveBracesLLVM: false -# RemoveParentheses: Leave -RemoveSemicolon: true -# RequiresClausePosition: OwnLine -# RequiresExpressionIndentation: OuterScope -# SeparateDefinitionBlocks: Leave -# ShortNamespaceLines: 1 -# SortIncludes: CaseSensitive -# SortJavaStaticImport: Before -# SortUsingDeclarations: LexicographicNumeric -# SpaceAfterCStyleCast: false -# SpaceAfterLogicalNot: false -# SpaceAfterTemplateKeyword: true -# SpaceAroundPointerQualifiers: Default -# SpaceBeforeAssignmentOperators: true -# SpaceBeforeCaseColon: false -# SpaceBeforeCpp11BracedList: false -# SpaceBeforeCtorInitializerColon: true -# SpaceBeforeInheritanceColon: true -# SpaceBeforeJsonColon: false -# SpaceBeforeParens: ControlStatements -# SpaceBeforeParensOptions: -# AfterControlStatements: true -# AfterForeachMacros: true -# AfterFunctionDeclarationName: false -# AfterFunctionDefinitionName: false -# AfterIfMacros: true -# AfterOverloadedOperator: false -# AfterRequiresInClause: false -# AfterRequiresInExpression: false -# BeforeNonEmptyParentheses: false -# SpaceBeforeRangeBasedForLoopColon: true -# SpaceBeforeSquareBrackets: false -# SpaceInEmptyBlock: false -# SpacesBeforeTrailingComments: 1 -# SpacesInAngles: Never -# SpacesInContainerLiterals: true -SpacesInLineCommentPrefix: - Minimum: 0 # We want a minimum of 1 for comments, but allow 0 for disabled code. - Maximum: -1 -# SpacesInParens: Never -# SpacesInParensOptions: -# InConditionalStatements: false -# InCStyleCasts: false -# InEmptyParentheses: false -# Other: false -# SpacesInSquareBrackets: false -Standard: c++20 -# StatementAttributeLikeMacros: -# - Q_EMIT -# StatementMacros: -# - Q_UNUSED -# - QT_REQUIRE_VERSION -TabWidth: 4 -UseTab: Always -# VerilogBreakBetweenInstancePorts: true -# WhitespaceSensitiveMacros: -# - BOOST_PP_STRINGIZE -# - CF_SWIFT_NAME -# - NS_SWIFT_NAME -# - PP_STRINGIZE -# - STRINGIZE diff --git a/modules/PROJECT/macros.h b/modules/PROJECT/macros.h index 53be3185..c1c26d61 100644 --- a/modules/PROJECT/macros.h +++ b/modules/PROJECT/macros.h @@ -1,20 +1,16 @@ #ifndef GODOT_EXTRA_MACROS_H #define GODOT_EXTRA_MACROS_H -#define BIND_GET_SET(m_property) \ - ClassDB::bind_method(D_METHOD("set_" #m_property, #m_property), \ - &self_type::set_##m_property); \ - ClassDB::bind_method(D_METHOD("get_" #m_property), \ - &self_type::get_##m_property) +#define BIND_GET_SET(m_property)\ +ClassDB::bind_method(D_METHOD("set_" #m_property, #m_property), &self_type::set_##m_property);\ +ClassDB::bind_method(D_METHOD("get_" #m_property), &self_type::get_##m_property) -#define BIND_HPROPERTY(m_type, m_property, ...) \ - BIND_GET_SET(m_property); \ - ADD_PROPERTY(PropertyInfo(m_type, #m_property, __VA_ARGS__), \ - "set_" #m_property, "get_" #m_property) +#define BIND_HPROPERTY(m_type, m_property, ...)\ +BIND_GET_SET(m_property);\ +ADD_PROPERTY(PropertyInfo(m_type, #m_property, __VA_ARGS__), "set_" #m_property, "get_" #m_property) -#define BIND_PROPERTY(m_type, m_property) \ - BIND_GET_SET(m_property); \ - ADD_PROPERTY(PropertyInfo(m_type, #m_property), "set_" #m_property, \ - "get_" #m_property) +#define BIND_PROPERTY(m_type, m_property)\ +BIND_GET_SET(m_property);\ +ADD_PROPERTY(PropertyInfo(m_type, #m_property), "set_" #m_property, "get_" #m_property) #endif // !GODOT_EXTRA_MACROS_H diff --git a/project/export_presets.cfg b/project/export_presets.cfg index a04762ac..c7ac7659 100644 --- a/project/export_presets.cfg +++ b/project/export_presets.cfg @@ -21,7 +21,7 @@ script_export_mode=2 [preset.0.options] custom_template/debug="" -custom_template/release="templatepath" +custom_template/release="{path}" debug/export_console_wrapper=1 binary_format/embed_pck=false texture_format/s3tc_bptc=true @@ -45,7 +45,7 @@ rm -rf \"{temp_dir}\"" name="Windows" platform="Windows Desktop" runnable=true -advanced_options=true +advanced_options=false dedicated_server=false custom_features="" export_filter="all_resources" @@ -63,7 +63,7 @@ script_export_mode=2 [preset.1.options] custom_template/debug="" -custom_template/release="templatepath" +custom_template/release="{path}" debug/export_console_wrapper=1 binary_format/embed_pck=false texture_format/s3tc_bptc=true