32 lines
1001 B
Python
32 lines
1001 B
Python
import os
|
|
from SCons.Script import DefaultEnvironment, ARGUMENTS, Glob, Dir
|
|
|
|
env = DefaultEnvironment()
|
|
platform = ARGUMENTS.get("platform", "linux")
|
|
target = ARGUMENTS.get("target", "template_debug") # or template_release
|
|
arch = ARGUMENTS.get("arch", "x86_64")
|
|
|
|
HERE = Dir(".").abspath
|
|
GODOTCPP = os.path.join(HERE, "godot-cpp")
|
|
|
|
inc_paths = [
|
|
os.path.join(GODOTCPP, "include"),
|
|
os.path.join(GODOTCPP, "gen", "include"),
|
|
]
|
|
for extra in ("godot-headers", "gdextension"):
|
|
p = os.path.join(GODOTCPP, extra)
|
|
if os.path.isdir(p):
|
|
inc_paths.append(p)
|
|
|
|
env.Append(CPPPATH=inc_paths)
|
|
env.Append(LIBPATH=[os.path.join(GODOTCPP, "bin")])
|
|
env.Append(CXXFLAGS=["-std=c++17", "-fPIC"])
|
|
|
|
env.Append(LIBS=[f"godot-cpp.{platform}.{target}.{arch}"])
|
|
|
|
outdir = os.path.join(HERE, "bin")
|
|
os.makedirs(outdir, exist_ok=True)
|
|
soname = f"gol.{platform}.{'debug' if target == 'template_debug' else 'release'}.{arch}"
|
|
|
|
env.SharedLibrary(target=os.path.join(outdir, soname), source=Glob("src/*.cpp"))
|