diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2022-02-09 09:14:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-09 09:14:17 +0100 |
commit | 3cb9dc78d6001af550f125bb6f8b7da27a291add (patch) | |
tree | 5a135c889166faa351fdb4b4f93ea9d1192d11b0 /SConstruct | |
parent | d435c51cda529cc85a945fb909217dd6b0dc531b (diff) | |
parent | d4553c51262e347b8c877d57ca251d94faf4dc30 (diff) |
Merge pull request #57806 from akien-mga/scons-gotta-go-fast
Diffstat (limited to 'SConstruct')
-rw-r--r-- | SConstruct | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/SConstruct b/SConstruct index b8063589c6..127fefeb27 100644 --- a/SConstruct +++ b/SConstruct @@ -179,9 +179,10 @@ opts.Add(BoolVariable("use_volk", "Use the volk library to load the Vulkan loade # 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("tests", "Build the unit tests", False)) +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", "") @@ -360,6 +361,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"]) |