From 4fd41577f2928183e22fdb012817831dacfa7336 Mon Sep 17 00:00:00 2001 From: Andrew Luchuk Date: Sat, 14 Mar 2026 17:59:40 -0400 Subject: [PATCH] Make build artifact name configurable --- SConstruct | 14 +++++++++----- build.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 5 deletions(-) create mode 100644 build.py diff --git a/SConstruct b/SConstruct index b5a019b..7e23a4f 100644 --- a/SConstruct +++ b/SConstruct @@ -16,27 +16,31 @@ env = SConscript("redot-cpp/SConstruct") env.Append(CPPPATH=["src/"]) sources = Glob("src/*.cpp") +import importlib + +build_variables = importlib.import_module("build") + if env["platform"] == "macos": library = env.SharedLibrary( - "demo/bin/libgdexample.{}.{}.framework/libgdexample.{}.{}".format( - env["platform"], env["target"], env["platform"], env["target"] + "demo/bin/lib{}.{}.{}.framework/lib{}.{}.{}".format( + build_variables.PROJECT_NAME, env["platform"], env["target"], env["platform"], env["target"] ), source=sources, ) elif env["platform"] == "ios": if env["ios_simulator"]: library = env.StaticLibrary( - "demo/bin/libgdexample.{}.{}.simulator.a".format(env["platform"], env["target"]), + "demo/bin/lib{}.{}.{}.simulator.a".format(build_variables.PROJECT_NAME, env["platform"], env["target"]), source=sources, ) else: library = env.StaticLibrary( - "demo/bin/libgdexample.{}.{}.a".format(env["platform"], env["target"]), + "demo/bin/lib{}.{}.{}.a".format(build_variables.PROJECT_NAME, env["platform"], env["target"]), source=sources, ) else: library = env.SharedLibrary( - "demo/bin/libgdexample{}{}".format(env["suffix"], env["SHLIBSUFFIX"]), + "demo/bin/lib{}{}{}".format(build_variables.PROJECT_NAME, env["suffix"], env["SHLIBSUFFIX"]), source=sources, ) diff --git a/build.py b/build.py new file mode 100644 index 0000000..f17137a --- /dev/null +++ b/build.py @@ -0,0 +1,48 @@ +PROJECT_NAME = "gdextension_template" + +if __name__ == "__main__": + gdextension_file_content = """ +[configuration] + +entry_symbol = "init_gdextension" +compatibility_minimum = "26.1" +reloadable = true + +[libraries] + +macos.debug = "res://bin/lib{0}.macos.template_debug.framework" +macos.release = "res://bin/lib{0}.macos.template_release.framework" + +ios.debug = "res://bin/lib{0}.ios.template_debug.xcframework" +ios.release = "res://bin/lib{0}.ios.template_release.xcframework" + +windows.debug.x86_32 = "res://bin/lib{0}.windows.template_debug.x86_32.dll" +windows.release.x86_32 = "res://bin/lib{0}.windows.template_release.x86_32.dll" +windows.debug.x86_64 = "res://bin/lib{0}.windows.template_debug.x86_64.dll" +windows.release.x86_64 = "res://bin/lib{0}.windows.template_release.x86_64.dll" + +linux.debug.x86_64 = "res://bin/lib{0}.linux.template_debug.x86_64.so" +linux.release.x86_64 = "res://bin/lib{0}.linux.template_release.x86_64.so" +linux.debug.arm64 = "res://bin/lib{0}.linux.template_debug.arm64.so" +linux.release.arm64 = "res://bin/lib{0}.linux.template_release.arm64.so" +linux.debug.rv64 = "res://bin/lib{0}.linux.template_debug.rv64.so" +linux.release.rv64 = "res://bin/lib{0}.linux.template_release.rv64.so" + +android.debug.x86_64 = "res://bin/lib{0}.android.template_debug.x86_64.so" +android.release.x86_64 = "res://bin/lib{0}.android.template_release.x86_64.so" +android.debug.arm64 = "res://bin/lib{0}.android.template_debug.arm64.so" +android.release.arm64 = "res://bin/lib{0}.android.template_release.arm64.so" + +[dependencies] +ios.debug = {{ + "res://bin/libgodot-cpp.ios.template_debug.xcframework": "" +}} +ios.release = {{ + "res://bin/libgodot-cpp.ios.template_release.xcframework": "" +}} + """.format(PROJECT_NAME) + + gdextension_file_path = "demo/template.gdextension" + + with open(gdextension_file_path, "w") as gdextension_file: + gdextension_file.write(gdextension_file_content) \ No newline at end of file