/
SConstruct
43 lines (36 loc) · 1.47 KB
/
SConstruct
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import os
env = SConscript("lib/godot-cpp/SConstruct").Clone()
# Add support for generating compilation database files
env.Tool("compilation_db")
compiledb = env.CompilationDatabase("compile_commands.json")
env.Alias("compiledb", compiledb)
if env["platform"] in ["macos", "ios"]:
# Compile flags
env.Append(LINKFLAGS="-framework Foundation")
# Compile with debugging symbols
if ARGUMENTS.get("debugging_symbols") == 'true':
if "-O2" in env["CCFLAGS"]:
env["CCFLAGS"].remove("-O2")
env.Append(CCFLAGS=["-g", "-O0"])
# Setup variant build dir for each setup
def remove_prefix(s, prefix):
return s[len(prefix):] if s.startswith(prefix) else s
build_dir = "build/{}".format(remove_prefix(env["suffix"], "."))
VariantDir(build_dir, 'src', duplicate=False)
# Build Objective-C GDExtension
source_directories = ["."]
sources = [
Glob("{}/{}/*.cpp".format(build_dir, directory)) + Glob("{}/{}/*.mm".format(build_dir, directory))
for directory in source_directories
]
library = env.SharedLibrary(
"addons/objc-gdextension/build/libobjcgdextension{}{}".format(env["suffix"], env["SHLIBSUFFIX"]),
source=sources,
)
else:
dummy_env = Environment(CPPPATH="lib/godot-cpp/gdextension")
library = dummy_env.SharedLibrary(
"addons/objc-gdextension/build/libobjcgdextension{}{}".format(env["suffix"], env["SHLIBSUFFIX"]),
source="src/dummy_main.c",
)
Default(library)