gdnative_python/pythonscript/SConscript

49 lines
1.6 KiB
Python

Import("env")
c_env = env.Clone()
if env["platform"].startswith("windows"):
c_env.AppendUnique(LIBS=["python38"])
elif env["platform"].startswith("osx"):
c_env.AppendUnique(LIBS=["python3.8"])
# if we don't give the lib a proper install_name, macos won't be able to find it,
# and will link the cython modules with a relative path
c_env.AppendUnique(
LINKFLAGS=["-Wl,-rpath,'@loader_path/lib'", "-install_name", "@rpath/libpythonscript.dylib"]
)
c_env.AppendUnique(CFLAGS=["-Werror-implicit-function-declaration"])
else: # x11
c_env.AppendUnique(LIBS=["python3.8"])
c_env.AppendUnique(LINKFLAGS=["-Wl,-rpath,'$$ORIGIN/lib'"])
c_env.AppendUnique(CFLAGS=["-Werror-implicit-function-declaration"])
c_env.Depends("pythonscript.c", env["cpython_build"])
libpythonscript, *libpythonscript_extra = c_env.SharedLibrary("pythonscript", ["pythonscript.c"])
env.Install("$DIST_PLATFORM", [libpythonscript, *libpythonscript_extra])
# Cython modules depend on libpythonscript
env.AppendUnique(LIBPATH=[Dir(".")])
env.AppendUnique(CYTHON_COMPILE_DEPS=[libpythonscript])
SConscript(["pandemonium/SConscript"])
# `_pandemonium_api.h` is only for internal use between _pandemonium and pythonscript
# libraries, hence no need to provide it as part of the release
*mods, _ = env.CythonModule(
["_pandemonium", "_pandemonium_api.h"],
[
"_pandemonium.pyx",
"_pandemonium_editor.pxi",
"_pandemonium_instance.pxi",
"_pandemonium_profiling.pxi",
"_pandemonium_script.pxi",
"_pandemonium_io.pxi",
],
)
env.Install("$DIST_SITE_PACKAGES", mods)