feat: less hacky release builds

This commit is contained in:
Sara Gerretsen 2026-01-28 23:29:49 +01:00
parent e8547925ac
commit 5452320719
3 changed files with 26 additions and 24 deletions

6
.gitignore vendored
View file

@ -11,10 +11,8 @@ config.log
compile_commands.json compile_commands.json
engine/.github engine/.github
project/.godot project/.godot
build/PROJECT.pck build/
build/PROJECT.x86_64 __pycache__
build/PROJECT.exe
build.zip
# general-purpose cache folder (used by e.g clangd) # general-purpose cache folder (used by e.g clangd)
.cache .cache

View file

View file

@ -10,30 +10,34 @@ run: build
# Running Editor # Running Editor
engine/bin/godot.linuxbsd.editor.dev.x86_64.llvm --editor --path project engine/bin/godot.linuxbsd.editor.dev.x86_64.llvm --editor --path project
release-linux: build package-project:
# Compiling Linux Release mkdir -p build/
cd engine/ && scons platform=linuxbsd target=template_release arch=x86_64 linker=mold use_llvm=yes compiledb=yes custom_modules="../modules" engine/bin/godot.linuxbsd.editor.dev.x86_64.llvm --editor --path project --headless --export-pack "Linux" ../build/{{BUILD_NAME}}.pck
# Preparing Build Environment
sed -i "s!templatepath!{{`realpath engine/bin/godot.linuxbsd.template_release.x86_64.llvm`}}!" project/export_presets.cfg compile-release platform: build
rm -rf build && mkdir build # Compiling {{platform}} Release
engine/bin/godot.*.editor.dev.*.llvm --headless --export-release "Linux" project/project.godot && zip build.zip build/* cd engine/ && scons platform={{platform}} target=template_release arch=x86_64 linker=mold use_llvm=yes compiledb=yes custom_modules="../modules"
# Resetting Build Environment
touch build/.gitkeep package-release-linuxbsd: (compile-release "linuxbsd") package-project
sed -i "s!{{`realpath engine/bin/godot.linuxbsd.template_release.x86_64.llvm`}}!templatepath!" project/export_presets.cfg # Prepare build output
mkdir -p build/linuxbsd
# Copy required files
cp engine/bin/godot.linuxbsd.template_release.x86_64.llvm build/linuxbsd/{{BUILD_NAME}}.x86_64
cp build/{{BUILD_NAME}}.pck build/linuxbsd/
cd build/ && zip -r {{BUILD_NAME}}-linuxbsd-x86_64.zip linuxbsd
# Completed Linux Release Build # Completed Linux Release Build
release-windows: build package-release-windows: (compile-release "windows") package-project
# Compiling Windows Release # Prepare build output
cd engine/ && scons platform=windows target=template_release arch=x86_64 linker=mold use_llvm=yes compiledb=yes custom_modules="../modules" mkdir -p build/windows
# Preparing Build Environment # Copy required files
sed -i "s!templatepath!{{`realpath engine/bin/godot.windows.template_release.x86_64.llvm`}}!" project/export_presets.cfg cp engine/bin/godot.windows.template_release.x86_64.exe build/windows/{{BUILD_NAME}}.exe
rm -rf build && mkdir build cp build/{{BUILD_NAME}}.pck build/windows/
engine/bin/godot.*.editor.dev.*.llvm --headless --export-release "Windows" project/project.godot && zip build.zip build/* cd build/ && zip -r {{BUILD_NAME}}-windows-x86_64.zip windows
# Resetting Build Environment
touch build/.gitkeep
sed -i "s!{{`realpath engine/bin/godot.windows.template_release.x86_64.llvm`}}!templatepath!" project/export_presets.cfg
# Completed Windows Release Build # Completed Windows Release Build
package-release-all: package-release-windows package-release-linuxbsd
initialize-template projectname: initialize-template projectname:
# Initializing 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/PROJECT/{{projectname}}/g" ./modules/PROJECT/register_types.h ./modules/PROJECT/register_types.cpp ./project/project.godot ./project/export_presets.cfg .gitignore