| 
									
										
										
										
											2016-10-17 08:50:25 +02:00
										 |  |  | #!/usr/bin/env python | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | Import("env") | 
					
						
							| 
									
										
										
										
											2014-02-09 22:10:30 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-17 23:23:55 +01:00
										 |  |  | import core_builders | 
					
						
							| 
									
										
										
										
											2018-05-16 05:54:22 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  | env.core_sources = [] | 
					
						
							| 
									
										
										
										
											2014-02-09 22:10:30 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-28 18:29:15 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Generate AES256 script encryption key | 
					
						
							| 
									
										
										
										
											2014-06-11 10:41:03 -03:00
										 |  |  | import os | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-11 10:41:03 -03:00
										 |  |  | txt = "0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0" | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | if "SCRIPT_AES256_ENCRYPTION_KEY" in os.environ: | 
					
						
							| 
									
										
										
										
											2021-05-14 11:19:04 +02:00
										 |  |  |     key = os.environ["SCRIPT_AES256_ENCRYPTION_KEY"] | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  |     ec_valid = True | 
					
						
							| 
									
										
										
										
											2021-05-14 11:19:04 +02:00
										 |  |  |     if len(key) != 64: | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  |         ec_valid = False | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |     else: | 
					
						
							| 
									
										
										
										
											2021-05-14 11:19:04 +02:00
										 |  |  |         txt = "" | 
					
						
							| 
									
										
										
										
											2021-05-14 14:52:03 +02:00
										 |  |  |         for i in range(len(key) >> 1): | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |             if i > 0: | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  |                 txt += "," | 
					
						
							| 
									
										
										
										
											2021-05-14 11:19:04 +02:00
										 |  |  |             txts = "0x" + key[i * 2 : i * 2 + 2] | 
					
						
							| 
									
										
										
										
											2016-10-30 18:44:57 +01:00
										 |  |  |             try: | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  |                 int(txts, 16) | 
					
						
							| 
									
										
										
										
											2020-12-12 10:05:42 +00:00
										 |  |  |             except Exception: | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  |                 ec_valid = False | 
					
						
							|  |  |  |             txt += txts | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |     if not ec_valid: | 
					
						
							| 
									
										
										
										
											2021-05-14 11:19:04 +02:00
										 |  |  |         print("Error: Invalid AES256 encryption key, not 64 hexadecimal characters: '" + key + "'.") | 
					
						
							|  |  |  |         print( | 
					
						
							|  |  |  |             "Unset 'SCRIPT_AES256_ENCRYPTION_KEY' in your environment " | 
					
						
							|  |  |  |             "or make sure that it contains exactly 64 hexadecimal characters." | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  |         Exit(255) | 
					
						
							| 
									
										
										
										
											2014-06-11 10:41:03 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-17 23:23:55 +01:00
										 |  |  | # NOTE: It is safe to generate this file here, since this is still executed serially | 
					
						
							| 
									
										
										
										
											2018-03-10 18:37:33 +01:00
										 |  |  | with open("script_encryption_key.gen.cpp", "w") as f: | 
					
						
							| 
									
										
										
										
											2020-11-07 19:33:38 -03:00
										 |  |  |     f.write('#include "core/config/project_settings.h"\nuint8_t script_encryption_key[32]={' + txt + "};\n") | 
					
						
							| 
									
										
										
										
											2014-06-11 10:41:03 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-09 22:10:30 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  | # Add required thirdparty code. | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | thirdparty_obj = [] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  | env_thirdparty = env.Clone() | 
					
						
							| 
									
										
										
										
											2018-09-28 13:29:52 +02:00
										 |  |  | env_thirdparty.disable_warnings() | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Misc thirdparty code: header paths are hardcoded, we don't need to append | 
					
						
							| 
									
										
										
										
											2017-04-28 18:29:15 +02:00
										 |  |  | # to the include path (saves a few chars on the compiler invocation for touchy MSVC...) | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  | thirdparty_misc_dir = "#thirdparty/misc/" | 
					
						
							|  |  |  | thirdparty_misc_sources = [ | 
					
						
							| 
									
										
										
										
											2018-03-17 23:23:55 +01:00
										 |  |  |     # C sources | 
					
						
							|  |  |  |     "fastlz.c", | 
					
						
							| 
									
										
										
										
											2020-05-11 14:36:46 +02:00
										 |  |  |     "r128.c", | 
					
						
							| 
									
										
										
										
											2018-03-17 23:23:55 +01:00
										 |  |  |     "smaz.c", | 
					
						
							|  |  |  |     # C++ sources | 
					
						
							|  |  |  |     "pcg.cpp", | 
					
						
							| 
									
										
										
										
											2021-01-12 13:45:31 -05:00
										 |  |  |     "polypartition.cpp", | 
					
						
							| 
									
										
										
										
											2019-05-20 19:34:06 +03:00
										 |  |  |     "clipper.cpp", | 
					
						
							| 
									
										
										
										
											2021-05-24 21:25:11 -03:00
										 |  |  |     "smolv.cpp", | 
					
						
							| 
									
										
										
										
											2017-04-28 18:29:15 +02:00
										 |  |  | ] | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  | thirdparty_misc_sources = [thirdparty_misc_dir + file for file in thirdparty_misc_sources] | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  | env_thirdparty.add_source_files(thirdparty_obj, thirdparty_misc_sources) | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-29 09:31:25 +03:00
										 |  |  | # Brotli | 
					
						
							| 
									
										
										
										
											2023-07-06 14:46:34 +02:00
										 |  |  | if env["brotli"] and env["builtin_brotli"]: | 
					
						
							| 
									
										
										
										
											2023-03-29 09:31:25 +03:00
										 |  |  |     thirdparty_brotli_dir = "#thirdparty/brotli/" | 
					
						
							|  |  |  |     thirdparty_brotli_sources = [ | 
					
						
							|  |  |  |         "common/constants.c", | 
					
						
							|  |  |  |         "common/context.c", | 
					
						
							|  |  |  |         "common/dictionary.c", | 
					
						
							|  |  |  |         "common/platform.c", | 
					
						
							|  |  |  |         "common/shared_dictionary.c", | 
					
						
							|  |  |  |         "common/transform.c", | 
					
						
							|  |  |  |         "dec/bit_reader.c", | 
					
						
							|  |  |  |         "dec/decode.c", | 
					
						
							|  |  |  |         "dec/huffman.c", | 
					
						
							|  |  |  |         "dec/state.c", | 
					
						
							|  |  |  |     ] | 
					
						
							|  |  |  |     thirdparty_brotli_sources = [thirdparty_brotli_dir + file for file in thirdparty_brotli_sources] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     env_thirdparty.Prepend(CPPPATH=[thirdparty_brotli_dir + "include"]) | 
					
						
							|  |  |  |     env.Prepend(CPPPATH=[thirdparty_brotli_dir + "include"]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if env.get("use_ubsan") or env.get("use_asan") or env.get("use_tsan") or env.get("use_lsan") or env.get("use_msan"): | 
					
						
							|  |  |  |         env_thirdparty.Append(CPPDEFINES=["BROTLI_BUILD_PORTABLE"]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     env_thirdparty.add_source_files(thirdparty_obj, thirdparty_brotli_sources) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  | # Zlib library, can be unbundled | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | if env["builtin_zlib"]: | 
					
						
							|  |  |  |     thirdparty_zlib_dir = "#thirdparty/zlib/" | 
					
						
							|  |  |  |     thirdparty_zlib_sources = [ | 
					
						
							|  |  |  |         "adler32.c", | 
					
						
							|  |  |  |         "compress.c", | 
					
						
							|  |  |  |         "crc32.c", | 
					
						
							|  |  |  |         "deflate.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.Prepend(CPPPATH=[thirdparty_zlib_dir]) | 
					
						
							|  |  |  |     # Needs to be available in main env too | 
					
						
							|  |  |  |     env.Prepend(CPPPATH=[thirdparty_zlib_dir]) | 
					
						
							| 
									
										
											  
											
												SCons: Unify tools/target build type configuration
Implements https://github.com/godotengine/godot-proposals/issues/3371.
New `target` presets
====================
The `tools` option is removed and `target` changes to use three new presets,
which match the builds users are familiar with. These targets control the
default optimization level and enable editor-specific and debugging code:
- `editor`: Replaces `tools=yes target=release_debug`.
  * Defines: `TOOLS_ENABLED`, `DEBUG_ENABLED`, `-O2`/`/O2`
- `template_debug`: Replaces `tools=no target=release_debug`.
  * Defines: `DEBUG_ENABLED`, `-O2`/`/O2`
- `template_release`: Replaces `tools=no target=release`.
  * Defines: `-O3`/`/O2`
New `dev_build` option
======================
The previous `target=debug` is now replaced by a separate `dev_build=yes`
option, which can be used in combination with either of the three targets,
and changes the following:
- `dev_build`: Defines `DEV_ENABLED`, disables optimization (`-O0`/`/0d`),
  enables generating debug symbols, does not define `NDEBUG` so `assert()`
  works in thirdparty libraries, adds a `.dev` suffix to the binary name.
Note: Unlike previously, `dev_build` defaults to off so that users who
compile Godot from source get an optimized and small build by default.
Engine contributors should now set `dev_build=yes` in their build scripts or
IDE configuration manually.
Changed binary names
====================
The name of generated binaries and object files are changed too, to follow
this format:
`godot.<platform>.<target>[.dev][.double].<arch>[.<extra_suffix>][.<ext>]`
For example:
- `godot.linuxbsd.editor.dev.arm64`
- `godot.windows.template_release.double.x86_64.mono.exe`
Be sure to update your links/scripts/IDE config accordingly.
More flexible `optimize` and `debug_symbols` options
====================================================
The optimization level and whether to generate debug symbols can be further
specified with the `optimize` and `debug_symbols` options. So the default
values listed above for the various `target` and `dev_build` combinations
are indicative and can be replaced when compiling, e.g.:
`scons p=linuxbsd target=template_debug dev_build=yes optimize=debug`
will make a "debug" export template with dev-only code enabled, `-Og`
optimization level for GCC/Clang, and debug symbols. Perfect for debugging
complex crashes at runtime in an exported project.
											
										 
											2022-09-22 08:28:55 +02:00
										 |  |  |     if env.dev_build: | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  |         env_thirdparty.Append(CPPDEFINES=["ZLIB_DEBUG"]) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  |     env_thirdparty.add_source_files(thirdparty_obj, thirdparty_zlib_sources) | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Minizip library, could be unbundled in theory | 
					
						
							| 
									
										
										
										
											2017-04-28 18:29:15 +02:00
										 |  |  | # However, our version has some custom modifications, so it won't compile with the system one | 
					
						
							|  |  |  | thirdparty_minizip_dir = "#thirdparty/minizip/" | 
					
						
							| 
									
										
										
										
											2020-10-15 12:29:59 -03:00
										 |  |  | thirdparty_minizip_sources = ["ioapi.c", "unzip.c", "zip.c"] | 
					
						
							| 
									
										
										
										
											2017-04-28 18:29:15 +02:00
										 |  |  | thirdparty_minizip_sources = [thirdparty_minizip_dir + file for file in thirdparty_minizip_sources] | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  | env_thirdparty.add_source_files(thirdparty_obj, thirdparty_minizip_sources) | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Zstd library, can be unbundled in theory | 
					
						
							|  |  |  | # though we currently use some private symbols | 
					
						
							|  |  |  | # https://github.com/godotengine/godot/issues/17374 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | if env["builtin_zstd"]: | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  |     thirdparty_zstd_dir = "#thirdparty/zstd/" | 
					
						
							|  |  |  |     thirdparty_zstd_sources = [ | 
					
						
							| 
									
										
										
										
											2019-01-03 22:30:03 -02:00
										 |  |  |         "common/debug.c", | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  |         "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", | 
					
						
							| 
									
										
										
										
											2019-01-03 22:30:03 -02:00
										 |  |  |         "compress/hist.c", | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  |         "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/zstd_opt.c", | 
					
						
							| 
									
										
										
										
											2019-01-03 22:30:03 -02:00
										 |  |  |         "compress/zstdmt_compress.c", | 
					
						
							| 
									
										
										
										
											2019-11-01 21:36:06 -05:00
										 |  |  |         "compress/zstd_compress_literals.c", | 
					
						
							|  |  |  |         "compress/zstd_compress_sequences.c", | 
					
						
							| 
									
										
										
										
											2020-09-18 21:38:36 +02:00
										 |  |  |         "compress/zstd_compress_superblock.c", | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  |         "decompress/huf_decompress.c", | 
					
						
							| 
									
										
										
										
											2019-01-03 22:30:03 -02:00
										 |  |  |         "decompress/zstd_ddict.c", | 
					
						
							|  |  |  |         "decompress/zstd_decompress_block.c", | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  |         "decompress/zstd_decompress.c", | 
					
						
							|  |  |  |     ] | 
					
						
							| 
									
										
										
										
											2022-07-20 09:28:22 +03:00
										 |  |  |     if env["platform"] in ["android", "ios", "linuxbsd", "macos"]: | 
					
						
							| 
									
										
										
										
											2022-01-24 11:04:45 +01:00
										 |  |  |         # Match platforms with ZSTD_ASM_SUPPORTED in common/portability_macros.h | 
					
						
							|  |  |  |         thirdparty_zstd_sources.append("decompress/huf_decompress_amd64.S") | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  |     thirdparty_zstd_sources = [thirdparty_zstd_dir + file for file in thirdparty_zstd_sources] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-30 13:12:02 +02:00
										 |  |  |     env_thirdparty.Prepend(CPPPATH=[thirdparty_zstd_dir, thirdparty_zstd_dir + "common"]) | 
					
						
							| 
									
										
										
										
											2019-07-03 09:16:20 +02:00
										 |  |  |     env_thirdparty.Append(CPPDEFINES=["ZSTD_STATIC_LINKING_ONLY"]) | 
					
						
							| 
									
										
										
										
											2019-04-30 13:12:02 +02:00
										 |  |  |     env.Prepend(CPPPATH=thirdparty_zstd_dir) | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  |     # Also needed in main env includes will trigger warnings | 
					
						
							| 
									
										
										
										
											2019-07-03 09:16:20 +02:00
										 |  |  |     env.Append(CPPDEFINES=["ZSTD_STATIC_LINKING_ONLY"]) | 
					
						
							| 
									
										
										
										
											2018-09-28 09:57:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  |     env_thirdparty.add_source_files(thirdparty_obj, thirdparty_zstd_sources) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-08 20:43:56 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  | env.core_sources += thirdparty_obj | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Godot source files | 
					
						
							| 
									
										
										
										
											2017-04-28 18:29:15 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-30 18:57:40 +01:00
										 |  |  | env.add_source_files(env.core_sources, "*.cpp") | 
					
						
							| 
									
										
										
										
											2021-10-15 21:59:11 +02:00
										 |  |  | env.add_source_files(env.core_sources, "script_encryption_key.gen.cpp") | 
					
						
							| 
									
										
										
										
											2022-02-08 20:50:37 +01:00
										 |  |  | env.add_source_files(env.core_sources, "version_hash.gen.cpp") | 
					
						
							| 
									
										
										
										
											2014-02-09 22:10:30 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-14 16:02:04 +02:00
										 |  |  | # Certificates | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | env.Depends( | 
					
						
							|  |  |  |     "#core/io/certs_compressed.gen.h", | 
					
						
							|  |  |  |     ["#thirdparty/certs/ca-certificates.crt", env.Value(env["builtin_certs"]), env.Value(env["system_certs_path"])], | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | env.CommandNoCache( | 
					
						
							|  |  |  |     "#core/io/certs_compressed.gen.h", | 
					
						
							|  |  |  |     "#thirdparty/certs/ca-certificates.crt", | 
					
						
							| 
									
										
										
										
											2020-07-27 21:00:26 +03:00
										 |  |  |     env.Run(core_builders.make_certs_header, "Building ca-certificates header."), | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | ) | 
					
						
							| 
									
										
										
										
											2014-06-11 10:41:03 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-16 05:54:22 +01:00
										 |  |  | # Authors | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | env.Depends("#core/authors.gen.h", "../AUTHORS.md") | 
					
						
							| 
									
										
										
										
											2020-07-27 21:00:26 +03:00
										 |  |  | env.CommandNoCache( | 
					
						
							| 
									
										
										
										
											2020-10-15 12:29:59 -03:00
										 |  |  |     "#core/authors.gen.h", "../AUTHORS.md", env.Run(core_builders.make_authors_header, "Generating authors header.") | 
					
						
							| 
									
										
										
										
											2020-07-27 21:00:26 +03:00
										 |  |  | ) | 
					
						
							| 
									
										
										
										
											2018-05-16 05:54:22 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Donors | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | env.Depends("#core/donors.gen.h", "../DONORS.md") | 
					
						
							| 
									
										
										
										
											2020-07-27 21:00:26 +03:00
										 |  |  | env.CommandNoCache( | 
					
						
							| 
									
										
										
										
											2020-10-15 12:29:59 -03:00
										 |  |  |     "#core/donors.gen.h", "../DONORS.md", env.Run(core_builders.make_donors_header, "Generating donors header.") | 
					
						
							| 
									
										
										
										
											2020-07-27 21:00:26 +03:00
										 |  |  | ) | 
					
						
							| 
									
										
										
										
											2018-05-16 05:54:22 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # License | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | env.Depends("#core/license.gen.h", ["../COPYRIGHT.txt", "../LICENSE.txt"]) | 
					
						
							|  |  |  | env.CommandNoCache( | 
					
						
							| 
									
										
										
										
											2020-07-27 21:00:26 +03:00
										 |  |  |     "#core/license.gen.h", | 
					
						
							|  |  |  |     ["../COPYRIGHT.txt", "../LICENSE.txt"], | 
					
						
							|  |  |  |     env.Run(core_builders.make_license_header, "Generating license header."), | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | ) | 
					
						
							| 
									
										
										
										
											2017-04-28 18:29:15 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Chain load SCsubs | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | SConscript("os/SCsub") | 
					
						
							|  |  |  | SConscript("math/SCsub") | 
					
						
							|  |  |  | SConscript("crypto/SCsub") | 
					
						
							|  |  |  | SConscript("io/SCsub") | 
					
						
							|  |  |  | SConscript("debugger/SCsub") | 
					
						
							|  |  |  | SConscript("input/SCsub") | 
					
						
							| 
									
										
										
										
											2020-11-07 19:33:38 -03:00
										 |  |  | SConscript("variant/SCsub") | 
					
						
							| 
									
										
										
										
											2021-06-19 12:58:49 -03:00
										 |  |  | SConscript("extension/SCsub") | 
					
						
							| 
									
										
										
										
											2020-11-07 19:33:38 -03:00
										 |  |  | SConscript("object/SCsub") | 
					
						
							|  |  |  | SConscript("templates/SCsub") | 
					
						
							|  |  |  | SConscript("string/SCsub") | 
					
						
							|  |  |  | SConscript("config/SCsub") | 
					
						
							|  |  |  | SConscript("error/SCsub") | 
					
						
							| 
									
										
										
										
											2014-02-09 22:10:30 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-28 18:29:15 +02:00
										 |  |  | # Build it all as a library | 
					
						
							| 
									
										
										
										
											2017-11-28 16:27:57 -04:00
										 |  |  | lib = env.add_library("core", env.core_sources) | 
					
						
							| 
									
										
										
										
											2014-02-09 22:10:30 -03:00
										 |  |  | env.Prepend(LIBS=[lib]) | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Needed to force rebuilding the core files when the thirdparty code is updated. | 
					
						
							|  |  |  | env.Depends(lib, thirdparty_obj) |