mirror of
https://github.com/godotengine/godot.git
synced 2025-01-23 19:12:24 -05:00
SCons: Build core's thirdparty code in own environment
Also move Zlib and Zstd's build instructions to core/SCsub.
This commit is contained in:
parent
c7e646c30a
commit
a9e17af09a
8 changed files with 68 additions and 78 deletions
79
core/SCsub
79
core/SCsub
|
@ -8,7 +8,6 @@ from platform_methods import run_in_subprocess
|
||||||
|
|
||||||
env.core_sources = []
|
env.core_sources = []
|
||||||
|
|
||||||
|
|
||||||
# Generate global defaults
|
# Generate global defaults
|
||||||
gd_call = ""
|
gd_call = ""
|
||||||
gd_inc = ""
|
gd_inc = ""
|
||||||
|
@ -55,10 +54,13 @@ with open("script_encryption_key.gen.cpp", "w") as f:
|
||||||
f.write("#include \"core/project_settings.h\"\nuint8_t script_encryption_key[32]={" + txt + "};\n")
|
f.write("#include \"core/project_settings.h\"\nuint8_t script_encryption_key[32]={" + txt + "};\n")
|
||||||
|
|
||||||
|
|
||||||
# Add required thirdparty code. Header paths are hardcoded, we don't need to append
|
# Add required thirdparty code.
|
||||||
|
env_thirdparty = env.Clone()
|
||||||
|
|
||||||
|
# Misc thirdparty code: header paths are hardcoded, we don't need to append
|
||||||
# to the include path (saves a few chars on the compiler invocation for touchy MSVC...)
|
# to the include path (saves a few chars on the compiler invocation for touchy MSVC...)
|
||||||
thirdparty_dir = "#thirdparty/misc/"
|
thirdparty_misc_dir = "#thirdparty/misc/"
|
||||||
thirdparty_sources = [
|
thirdparty_misc_sources = [
|
||||||
# C sources
|
# C sources
|
||||||
"base64.c",
|
"base64.c",
|
||||||
"fastlz.c",
|
"fastlz.c",
|
||||||
|
@ -72,10 +74,34 @@ thirdparty_sources = [
|
||||||
"pcg.cpp",
|
"pcg.cpp",
|
||||||
"triangulator.cpp",
|
"triangulator.cpp",
|
||||||
]
|
]
|
||||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
thirdparty_misc_sources = [thirdparty_misc_dir + file for file in thirdparty_misc_sources]
|
||||||
env.add_source_files(env.core_sources, thirdparty_sources)
|
env_thirdparty.add_source_files(env.core_sources, thirdparty_misc_sources)
|
||||||
|
|
||||||
# Minizip library, can be unbundled in theory
|
# Zlib library, can be unbundled
|
||||||
|
if env['builtin_zlib']:
|
||||||
|
thirdparty_zlib_dir = "#thirdparty/zlib/"
|
||||||
|
thirdparty_zlib_sources = [
|
||||||
|
"adler32.c",
|
||||||
|
"compress.c",
|
||||||
|
"crc32.c",
|
||||||
|
"deflate.c",
|
||||||
|
"infback.c",
|
||||||
|
"inffast.c",
|
||||||
|
"inflate.c",
|
||||||
|
"inftrees.c",
|
||||||
|
"trees.c",
|
||||||
|
"uncompr.c",
|
||||||
|
"zutil.c",
|
||||||
|
]
|
||||||
|
thirdparty_zlib_sources = [thirdparty_zlib_dir + file for file in thirdparty_zlib_sources]
|
||||||
|
|
||||||
|
env_thirdparty.Append(CPPPATH=[thirdparty_zlib_dir])
|
||||||
|
# Needs to be available in main env too
|
||||||
|
env.Append(CPPPATH=[thirdparty_zlib_dir])
|
||||||
|
|
||||||
|
env_thirdparty.add_source_files(env.core_sources, thirdparty_zlib_sources)
|
||||||
|
|
||||||
|
# Minizip library, could be unbundled in theory
|
||||||
# However, our version has some custom modifications, so it won't compile with the system one
|
# However, our version has some custom modifications, so it won't compile with the system one
|
||||||
thirdparty_minizip_dir = "#thirdparty/minizip/"
|
thirdparty_minizip_dir = "#thirdparty/minizip/"
|
||||||
thirdparty_minizip_sources = [
|
thirdparty_minizip_sources = [
|
||||||
|
@ -84,10 +110,42 @@ thirdparty_minizip_sources = [
|
||||||
"zip.c",
|
"zip.c",
|
||||||
]
|
]
|
||||||
thirdparty_minizip_sources = [thirdparty_minizip_dir + file for file in thirdparty_minizip_sources]
|
thirdparty_minizip_sources = [thirdparty_minizip_dir + file for file in thirdparty_minizip_sources]
|
||||||
env.add_source_files(env.core_sources, thirdparty_minizip_sources)
|
env_thirdparty.add_source_files(env.core_sources, thirdparty_minizip_sources)
|
||||||
|
|
||||||
if 'builtin_zstd' in env and env['builtin_zstd']:
|
# Zstd library, can be unbundled in theory
|
||||||
SConscript("#thirdparty/zstd/SCsub")
|
# though we currently use some private symbols
|
||||||
|
# https://github.com/godotengine/godot/issues/17374
|
||||||
|
if env['builtin_zstd']:
|
||||||
|
thirdparty_zstd_dir = "#thirdparty/zstd/"
|
||||||
|
thirdparty_zstd_sources = [
|
||||||
|
"common/entropy_common.c",
|
||||||
|
"common/error_private.c",
|
||||||
|
"common/fse_decompress.c",
|
||||||
|
"common/pool.c",
|
||||||
|
"common/threading.c",
|
||||||
|
"common/xxhash.c",
|
||||||
|
"common/zstd_common.c",
|
||||||
|
"compress/fse_compress.c",
|
||||||
|
"compress/huf_compress.c",
|
||||||
|
"compress/zstd_compress.c",
|
||||||
|
"compress/zstd_double_fast.c",
|
||||||
|
"compress/zstd_fast.c",
|
||||||
|
"compress/zstd_lazy.c",
|
||||||
|
"compress/zstd_ldm.c",
|
||||||
|
"compress/zstdmt_compress.c",
|
||||||
|
"compress/zstd_opt.c",
|
||||||
|
"decompress/huf_decompress.c",
|
||||||
|
"decompress/zstd_decompress.c",
|
||||||
|
]
|
||||||
|
thirdparty_zstd_sources = [thirdparty_zstd_dir + file for file in thirdparty_zstd_sources]
|
||||||
|
|
||||||
|
env_thirdparty.Append(CPPPATH=[thirdparty_zstd_dir, thirdparty_zstd_dir + "common"])
|
||||||
|
env_thirdparty.Append(CCFLAGS="-DZSTD_STATIC_LINKING_ONLY")
|
||||||
|
env.Append(CPPPATH=thirdparty_zstd_dir)
|
||||||
|
# Also needed in main env includes will trigger warnings
|
||||||
|
env.Append(CCFLAGS="-DZSTD_STATIC_LINKING_ONLY")
|
||||||
|
|
||||||
|
env_thirdparty.add_source_files(env.core_sources, thirdparty_zstd_sources)
|
||||||
|
|
||||||
|
|
||||||
# Godot's own sources
|
# Godot's own sources
|
||||||
|
@ -122,4 +180,3 @@ SConscript('bind/SCsub')
|
||||||
# Build it all as a library
|
# Build it all as a library
|
||||||
lib = env.add_library("core", env.core_sources)
|
lib = env.add_library("core", env.core_sources)
|
||||||
env.Prepend(LIBS=[lib])
|
env.Prepend(LIBS=[lib])
|
||||||
Export('env')
|
|
||||||
|
|
|
@ -3,5 +3,3 @@
|
||||||
Import('env')
|
Import('env')
|
||||||
|
|
||||||
env.add_source_files(env.core_sources, "*.cpp")
|
env.add_source_files(env.core_sources, "*.cpp")
|
||||||
|
|
||||||
Export('env')
|
|
||||||
|
|
|
@ -3,6 +3,3 @@
|
||||||
Import('env')
|
Import('env')
|
||||||
|
|
||||||
env.add_source_files(env.core_sources, "*.cpp")
|
env.add_source_files(env.core_sources, "*.cpp")
|
||||||
|
|
||||||
Export('env')
|
|
||||||
|
|
||||||
|
|
|
@ -3,5 +3,3 @@
|
||||||
Import('env')
|
Import('env')
|
||||||
|
|
||||||
env.add_source_files(env.core_sources, "*.cpp")
|
env.add_source_files(env.core_sources, "*.cpp")
|
||||||
|
|
||||||
Export('env')
|
|
||||||
|
|
|
@ -3,5 +3,3 @@
|
||||||
Import('env')
|
Import('env')
|
||||||
|
|
||||||
env.add_source_files(env.core_sources, "*.cpp")
|
env.add_source_files(env.core_sources, "*.cpp")
|
||||||
|
|
||||||
Export('env')
|
|
||||||
|
|
3
drivers/SCsub
vendored
3
drivers/SCsub
vendored
|
@ -4,9 +4,6 @@ Import('env')
|
||||||
|
|
||||||
env.drivers_sources = []
|
env.drivers_sources = []
|
||||||
|
|
||||||
if 'builtin_zlib' in env and env['builtin_zlib']:
|
|
||||||
SConscript("zlib/SCsub")
|
|
||||||
|
|
||||||
# OS drivers
|
# OS drivers
|
||||||
SConscript('unix/SCsub')
|
SConscript('unix/SCsub')
|
||||||
SConscript('windows/SCsub')
|
SConscript('windows/SCsub')
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
Import('env')
|
|
||||||
|
|
||||||
# Not cloning the env, the includes need to be accessible for core/
|
|
||||||
|
|
||||||
# Thirdparty source files
|
|
||||||
# No check here as already done in drivers/SCsub
|
|
||||||
thirdparty_dir = "#thirdparty/zlib/"
|
|
||||||
thirdparty_sources = [
|
|
||||||
"adler32.c",
|
|
||||||
"compress.c",
|
|
||||||
"crc32.c",
|
|
||||||
"deflate.c",
|
|
||||||
"infback.c",
|
|
||||||
"inffast.c",
|
|
||||||
"inflate.c",
|
|
||||||
"inftrees.c",
|
|
||||||
"trees.c",
|
|
||||||
"uncompr.c",
|
|
||||||
"zutil.c",
|
|
||||||
]
|
|
||||||
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
|
|
||||||
|
|
||||||
env.add_source_files(env.drivers_sources, thirdparty_sources)
|
|
||||||
env.Append(CPPPATH=[thirdparty_dir])
|
|
29
thirdparty/zstd/SCsub
vendored
29
thirdparty/zstd/SCsub
vendored
|
@ -1,29 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
Import('env')
|
|
||||||
|
|
||||||
thirdparty_zstd_dir = "#thirdparty/zstd/"
|
|
||||||
thirdparty_zstd_sources = [
|
|
||||||
"common/entropy_common.c",
|
|
||||||
"common/error_private.c",
|
|
||||||
"common/fse_decompress.c",
|
|
||||||
"common/pool.c",
|
|
||||||
"common/threading.c",
|
|
||||||
"common/xxhash.c",
|
|
||||||
"common/zstd_common.c",
|
|
||||||
"compress/fse_compress.c",
|
|
||||||
"compress/huf_compress.c",
|
|
||||||
"compress/zstd_compress.c",
|
|
||||||
"compress/zstd_double_fast.c",
|
|
||||||
"compress/zstd_fast.c",
|
|
||||||
"compress/zstd_lazy.c",
|
|
||||||
"compress/zstd_ldm.c",
|
|
||||||
"compress/zstdmt_compress.c",
|
|
||||||
"compress/zstd_opt.c",
|
|
||||||
"decompress/huf_decompress.c",
|
|
||||||
"decompress/zstd_decompress.c",
|
|
||||||
]
|
|
||||||
thirdparty_zstd_sources = [thirdparty_zstd_dir + file for file in thirdparty_zstd_sources]
|
|
||||||
env.add_source_files(env.core_sources, thirdparty_zstd_sources)
|
|
||||||
env.Append(CPPPATH=["#thirdparty/zstd", "#thirdparty/zstd/common"])
|
|
||||||
env.Append(CCFLAGS="-DZSTD_STATIC_LINKING_ONLY")
|
|
Loading…
Add table
Reference in a new issue