SCons: Add production=yes option to use production defaults
This is meant for users making custom builds to match the options used on optimized, official builds. This enables, on the platforms which support them: - `use_static_cpp=yes` (portable binaries for Linux and Windows) - `use_lto=yes` (link time optimizations - note: requires a lot of RAM!) - `debug_symbols=no` (no debug symbols, smaller binaries) Also abort when using MSVC with `production=yes`, as: - It cannot optimize the GDScript VM like GCC or Clang do, leading to significant performance drops. - Its LTO support is unreliable, at least used to trigger crashes last we tried it extensively. All options can still be overridden if specified, and the `dev=yes` option was changed to also support overrides.
This commit is contained in:
parent
3a3af0279b
commit
db26871210
5 changed files with 39 additions and 17 deletions
|
|
@ -72,7 +72,7 @@ def get_opts():
|
|||
BoolVariable("use_tsan", "Use LLVM/GCC compiler thread sanitizer (TSAN))", False),
|
||||
BoolVariable("pulseaudio", "Detect and use PulseAudio", True),
|
||||
BoolVariable("udev", "Use udev for gamepad connection callbacks", True),
|
||||
EnumVariable("debug_symbols", "Add debugging symbols to release/release_debug builds", "yes", ("yes", "no")),
|
||||
BoolVariable("debug_symbols", "Add debugging symbols to release/release_debug builds", True),
|
||||
BoolVariable("separate_debug_symbols", "Create a separate file containing debugging symbols", False),
|
||||
BoolVariable("touch", "Enable touch events", True),
|
||||
BoolVariable("execinfo", "Use libexecinfo on systems where glibc is not available", False),
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ def get_opts():
|
|||
False,
|
||||
),
|
||||
EnumVariable("macports_clang", "Build using Clang from MacPorts", "no", ("no", "5.0", "devel")),
|
||||
EnumVariable("debug_symbols", "Add debugging symbols to release/release_debug builds", "yes", ("yes", "no")),
|
||||
BoolVariable("debug_symbols", "Add debugging symbols to release/release_debug builds", True),
|
||||
BoolVariable("separate_debug_symbols", "Create a separate file containing debugging symbols", False),
|
||||
BoolVariable("use_ubsan", "Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)", False),
|
||||
BoolVariable("use_asan", "Use LLVM/GCC compiler address sanitizer (ASAN))", False),
|
||||
|
|
|
|||
|
|
@ -32,13 +32,13 @@ def get_opts():
|
|||
|
||||
return [
|
||||
BoolVariable("use_llvm", "Use the LLVM compiler", False),
|
||||
BoolVariable("use_static_cpp", "Link libgcc and libstdc++ statically for better portability", False),
|
||||
BoolVariable("use_static_cpp", "Link libgcc and libstdc++ statically for better portability", True),
|
||||
BoolVariable("use_coverage", "Test Godot coverage", False),
|
||||
BoolVariable("use_ubsan", "Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)", False),
|
||||
BoolVariable("use_asan", "Use LLVM/GCC compiler address sanitizer (ASAN))", False),
|
||||
BoolVariable("use_lsan", "Use LLVM/GCC compiler leak sanitizer (LSAN))", False),
|
||||
BoolVariable("use_tsan", "Use LLVM/GCC compiler thread sanitizer (TSAN))", False),
|
||||
EnumVariable("debug_symbols", "Add debugging symbols to release/release_debug builds", "yes", ("yes", "no")),
|
||||
BoolVariable("debug_symbols", "Add debugging symbols to release/release_debug builds", True),
|
||||
BoolVariable("separate_debug_symbols", "Create a separate file containing debugging symbols", False),
|
||||
BoolVariable("execinfo", "Use libexecinfo on systems where glibc is not available", False),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ def get_opts():
|
|||
# XP support dropped after EOL due to missing API for IPv6 and other issues
|
||||
# Vista support dropped after EOL due to GH-10243
|
||||
("target_win_version", "Targeted Windows version, >= 0x0601 (Windows 7)", "0x0601"),
|
||||
EnumVariable("debug_symbols", "Add debugging symbols to release/release_debug builds", "yes", ("yes", "no")),
|
||||
BoolVariable("debug_symbols", "Add debugging symbols to release/release_debug builds", True),
|
||||
EnumVariable("windows_subsystem", "Windows subsystem", "default", ("default", "console", "gui")),
|
||||
BoolVariable("separate_debug_symbols", "Create a separate file containing debugging symbols", False),
|
||||
("msvc_version", "MSVC version to use. Ignored if VCINSTALLDIR is set in shell env.", None),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue