You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
SCons: Refactor LTO options with lto=<none|thin|full>
Adds support for LTO on macOS and Android. Disable LTO by default on iOS even if `production=yes` is set. Also add `linker` option to `server` platform missed in #63283. Refactor code handling old arguments to make it simpler (breaks compat, but is explicit enough about it and scripts are easy to fix).
This commit is contained in:
@@ -31,7 +31,6 @@ def get_opts():
|
||||
return [
|
||||
("initial_memory", "Initial WASM memory (in MiB)", 32),
|
||||
BoolVariable("use_assertions", "Use Emscripten runtime assertions", False),
|
||||
BoolVariable("use_thinlto", "Use ThinLTO", False),
|
||||
BoolVariable("use_ubsan", "Use Emscripten undefined behavior sanitizer (UBSAN)", False),
|
||||
BoolVariable("use_asan", "Use Emscripten address sanitizer (ASAN)", False),
|
||||
BoolVariable("use_lsan", "Use Emscripten leak sanitizer (LSAN)", False),
|
||||
@@ -101,12 +100,13 @@ def configure(env):
|
||||
env["ENV"] = os.environ
|
||||
|
||||
# LTO
|
||||
if env["use_thinlto"]:
|
||||
env.Append(CCFLAGS=["-flto=thin"])
|
||||
env.Append(LINKFLAGS=["-flto=thin"])
|
||||
elif env["use_lto"]:
|
||||
env.Append(CCFLAGS=["-flto=full"])
|
||||
env.Append(LINKFLAGS=["-flto=full"])
|
||||
if env["lto"] != "none":
|
||||
if env["lto"] == "thin":
|
||||
env.Append(CCFLAGS=["-flto=thin"])
|
||||
env.Append(LINKFLAGS=["-flto=thin"])
|
||||
else:
|
||||
env.Append(CCFLAGS=["-flto"])
|
||||
env.Append(LINKFLAGS=["-flto"])
|
||||
|
||||
# Sanitizers
|
||||
if env["use_ubsan"]:
|
||||
|
||||
Reference in New Issue
Block a user