#!/usr/bin/env python import os from glob import glob from pathlib import Path # TODO: Do not copy environment after godot-cpp/test is updated . env = SConscript("godot-cpp/SConstruct") env.Append(CPPPATH=["src/"]) sources = Glob("src/*.cpp") # Find correct addons path even if the directory or extension is renamed. (extension_path,) = glob("project/addons/*/*.gdextension") addon_path = Path(extension_path).parent extension_name = Path(extension_path).stem scons_cache_path = os.environ.get("SCONS_CACHE") if scons_cache_path != None: CacheDir(scons_cache_path) print("Scons cache enabled... (path: '" + scons_cache_path + "')") if env["platform"] == "osx": library = env.SharedLibrary( "{}/bin/lib{}.{}.{}.framework/{1}.{2}.{3}".format( addon_path, extension_name, env["platform"], env["target"], ), source=sources, ) else: library = env.SharedLibrary( "{}/bin/lib{}.{}.{}.{}{}".format( addon_path, extension_name, env["platform"], env["target"], env["arch_suffix"], env["SHLIBSUFFIX"], ), source=sources, ) Default(library)