mirror of
https://github.com/Relintai/gdnative_python.git
synced 2024-11-12 10:25:08 +01:00
101 lines
3.1 KiB
Python
101 lines
3.1 KiB
Python
Import("env")
|
|
|
|
|
|
SConscript(["_hazmat/SConscript"])
|
|
|
|
|
|
pxds = [
|
|
File(x)
|
|
for x in (
|
|
"__init__.py", # Not really a .pxd but still needed
|
|
"bindings.pxd",
|
|
"builtins.pxd",
|
|
"hazmat.pxd",
|
|
"pool_arrays.pxd",
|
|
)
|
|
]
|
|
env.Install("$DIST_SITE_PACKAGES/pandemonium", [File("_version.py"), File("globals.py"), *pxds])
|
|
env.AppendUnique(CYTHON_DEPS=pxds)
|
|
|
|
|
|
env.Install("$DIST_SITE_PACKAGES/pandemonium", env.CythonModule("tags", "tags.pyx"))
|
|
|
|
|
|
### Builtins ###
|
|
|
|
|
|
# TODO: merge pool_arrays into builtins
|
|
pandemonium_pool_arrays_srcs = env.Command(
|
|
target=("pool_arrays.pyx", "pool_arrays.pxd"),
|
|
source=("#/generation/generate_pool_arrays.py",),
|
|
action="python ${SOURCE} --output ${TARGET}",
|
|
)
|
|
env.Depends(
|
|
pandemonium_pool_arrays_srcs,
|
|
["#/generation/generate_pool_arrays.py", env.Glob("#/generation/pool_arrays_templates/*")],
|
|
)
|
|
|
|
|
|
pandemonium_builtins_srcs = env.Command(
|
|
target=("builtins.pyx", "builtins.pxd"),
|
|
source=("#/generation/generate_builtins.py", "${pandemonium_headers}/gdnative_api.json"),
|
|
action="python ${SOURCES[0]} --input ${SOURCES[1]} --output ${TARGET}",
|
|
)
|
|
env.Depends(
|
|
pandemonium_builtins_srcs,
|
|
["#/generation/generate_builtins.py", env.Glob("#/generation/builtins_templates/*")],
|
|
)
|
|
# TODO: remove this once pool_array is merged into builtins
|
|
env.Depends(pandemonium_builtins_srcs, pandemonium_pool_arrays_srcs)
|
|
|
|
|
|
env.Install("$DIST_SITE_PACKAGES/pandemonium", env.CythonModule("pool_arrays", "pool_arrays.pyx"))
|
|
env.Install("$DIST_SITE_PACKAGES/pandemonium", env.CythonModule("builtins", "builtins.pyx"))
|
|
|
|
|
|
### Bindings ###
|
|
|
|
|
|
# Bindings module is a special snowflake given it size
|
|
bindings_env = env.Clone()
|
|
sample = env["bindings_generate_sample"]
|
|
|
|
# dont strip on debug builds
|
|
if not sample and not env["debug"]:
|
|
if env["CC_IS_GCC"]:
|
|
bindings_env.AppendUnique(LINKFLAGS=["-Wl,--strip-all"])
|
|
elif env["CC_IS_CLANG"]:
|
|
bindings_env.AppendUnique(LINKFLAGS=["-Wl,-s"])
|
|
|
|
if sample or env["debug"]:
|
|
# Disable optimization for faster dev builds and ease of debugging
|
|
if env["CC_IS_MSVC"]:
|
|
bindings_env.AppendUnique(CFLAGS=["/Od"])
|
|
else:
|
|
bindings_env.AppendUnique(CFLAGS=["-O0"])
|
|
else:
|
|
if env["CC_IS_GCC"]:
|
|
bindings_env.AppendUnique(CFLAGS=["-Os", "-Wno-misleading-indentation"])
|
|
elif env["CC_IS_CLANG"]:
|
|
bindings_env.AppendUnique(CFLAGS=["-Os"])
|
|
elif env["CC_IS_MSVC"]:
|
|
bindings_env.AppendUnique(CFLAGS=["/Os"])
|
|
|
|
|
|
pandemonium_bindings_srcs = bindings_env.Command(
|
|
target=("bindings.pyx", "bindings.pxd", "bindings.pyi"),
|
|
source=("#/generation/generate_bindings.py", "${pandemonium_headers}/api.json"),
|
|
action=("python ${SOURCES[0]} ${opts} --input ${SOURCES[1]} --output ${TARGET} "),
|
|
opts="--sample" if sample else "",
|
|
)
|
|
bindings_env.Depends(
|
|
pandemonium_bindings_srcs,
|
|
["#/generation/generate_bindings.py", bindings_env.Glob("#/generation/bindings_templates/*")],
|
|
)
|
|
|
|
|
|
bindings_env.Install(
|
|
"$DIST_SITE_PACKAGES/pandemonium", bindings_env.CythonModule("bindings", "bindings.pyx")
|
|
)
|
|
bindings_env.Install("$DIST_SITE_PACKAGES/pandemonium", "bindings.pyi")
|