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
engine/.github
project/.godot
build/PROJECT.pck
build/PROJECT.x86_64
build/PROJECT.exe
build.zip
build/
__pycache__
# general-purpose cache folder (used by e.g clangd)
.cache

View file

View file

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