set export

BUILD_NAME := "change_me"
    
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:
    cd engine/ && scons target=editor symbols=yes optimization=debug dev_build=yes linker=mold use_llvm=yes compiledb=yes

run: build
    engine/bin/godot.linuxbsd.editor.dev.x86_64.llvm --editor --path project

release-linux: build
    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/*
    touch build/.gitkeep    
    sed -i "s!{{release_template_path_linux}}!{path}!" project/export_presets.cfg

release-windows: build
    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/*
    touch build/.gitkeep    
    sed -i "s!{{release_template_path_windows}}!{path}!" project/export_presets.cfg

initialize-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 "s/change_me/{{projectname}}/" ./justfile
    mv ./modules/PROJECT ./modules/{{projectname}}