|
@@ -132,8 +132,9 @@ opts.Add(BoolVariable("custom_modules_recursive", "Detect custom modules recursi
|
|
|
|
|
|
# Advanced options
|
|
|
opts.Add(BoolVariable("dev", "If yes, alias for verbose=yes warnings=extra werror=yes", False))
|
|
|
-opts.Add(BoolVariable("progress", "Show a progress indicator during compilation", True))
|
|
|
+opts.Add(BoolVariable("fast_unsafe", "Enable unsafe options for faster rebuilds", False))
|
|
|
opts.Add(BoolVariable("verbose", "Enable verbose output for the compilation", False))
|
|
|
+opts.Add(BoolVariable("progress", "Show a progress indicator during compilation", True))
|
|
|
opts.Add(EnumVariable("warnings", "Level of compilation warnings", "all", ("extra", "all", "moderate", "no")))
|
|
|
opts.Add(BoolVariable("werror", "Treat compiler warnings as errors", False))
|
|
|
opts.Add("extra_suffix", "Custom extra suffix added to the base filename of all generated binary files", "")
|
|
@@ -317,6 +318,17 @@ if env_base["target"] == "debug":
|
|
|
# working on the engine itself.
|
|
|
env_base.Append(CPPDEFINES=["DEV_ENABLED"])
|
|
|
|
|
|
+# SCons speed optimization controlled by the `fast_unsafe` option, which provide
|
|
|
+# more than 10 s speed up for incremental rebuilds.
|
|
|
+# Unsafe as they reduce the certainty of rebuilding all changed files, so it's
|
|
|
+# enabled by default for `debug` builds, and can be overridden from command line.
|
|
|
+# Ref: https://github.com/SCons/scons/wiki/GoFastButton
|
|
|
+if methods.get_cmdline_bool("fast_unsafe", env_base["target"] == "debug"):
|
|
|
+ # Renamed to `content-timestamp` in SCons >= 4.2, keeping MD5 for compat.
|
|
|
+ env_base.Decider("MD5-timestamp")
|
|
|
+ env_base.SetOption("implicit_cache", 1)
|
|
|
+ env_base.SetOption("max_drift", 60)
|
|
|
+
|
|
|
if env_base["use_precise_math_checks"]:
|
|
|
env_base.Append(CPPDEFINES=["PRECISE_MATH_CHECKS"])
|
|
|
|