mirror of
https://github.com/godotengine/godot.git
synced 2024-12-11 13:43:07 +00:00
SCons: Make compilation database generation optional
Saves around 3 s on incremental rebuilds to have it disabled by default.
Can be enabled with `compiledb=yes`.
(cherry picked from commit f94df6fa2b
)
This commit is contained in:
parent
ec12e24e18
commit
6dbb67cc73
15
SConstruct
15
SConstruct
@ -133,6 +133,7 @@ opts.Add(BoolVariable("custom_modules_recursive", "Detect custom modules recursi
|
|||||||
# Advanced options
|
# Advanced options
|
||||||
opts.Add(BoolVariable("dev", "If yes, alias for verbose=yes warnings=extra werror=yes", False))
|
opts.Add(BoolVariable("dev", "If yes, alias for verbose=yes warnings=extra werror=yes", False))
|
||||||
opts.Add(BoolVariable("fast_unsafe", "Enable unsafe options for faster rebuilds", False))
|
opts.Add(BoolVariable("fast_unsafe", "Enable unsafe options for faster rebuilds", False))
|
||||||
|
opts.Add(BoolVariable("compiledb", "Generate compilation DB (`compile_commands.json`) for external tools", False))
|
||||||
opts.Add(BoolVariable("verbose", "Enable verbose output for the compilation", 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(BoolVariable("progress", "Show a progress indicator during compilation", True))
|
||||||
opts.Add(EnumVariable("warnings", "Level of compilation warnings", "all", ("extra", "all", "moderate", "no")))
|
opts.Add(EnumVariable("warnings", "Level of compilation warnings", "all", ("extra", "all", "moderate", "no")))
|
||||||
@ -360,14 +361,15 @@ if selected_platform in platform_list:
|
|||||||
else:
|
else:
|
||||||
env = env_base.Clone()
|
env = env_base.Clone()
|
||||||
|
|
||||||
# Generating the compilation DB (`compile_commands.json`) requires SCons 4.0.0 or later.
|
if env["compiledb"]:
|
||||||
from SCons import __version__ as scons_raw_version
|
# Generating the compilation DB (`compile_commands.json`) requires SCons 4.0.0 or later.
|
||||||
|
from SCons import __version__ as scons_raw_version
|
||||||
|
|
||||||
scons_ver = env._get_major_minor_revision(scons_raw_version)
|
scons_ver = env._get_major_minor_revision(scons_raw_version)
|
||||||
|
|
||||||
if scons_ver >= (4, 0, 0):
|
if scons_ver >= (4, 0, 0):
|
||||||
env.Tool("compilation_db")
|
env.Tool("compilation_db")
|
||||||
env.Alias("compiledb", env.CompilationDatabase())
|
env.Alias("compiledb", env.CompilationDatabase())
|
||||||
|
|
||||||
# 'dev' and 'production' are aliases to set default options if they haven't been set
|
# 'dev' and 'production' are aliases to set default options if they haven't been set
|
||||||
# manually by the user.
|
# manually by the user.
|
||||||
@ -720,6 +722,7 @@ elif selected_platform != "":
|
|||||||
|
|
||||||
# The following only makes sense when the 'env' is defined, and assumes it is.
|
# The following only makes sense when the 'env' is defined, and assumes it is.
|
||||||
if "env" in locals():
|
if "env" in locals():
|
||||||
|
# FIXME: This method mixes both cosmetic progress stuff and cache handling...
|
||||||
methods.show_progress(env)
|
methods.show_progress(env)
|
||||||
# TODO: replace this with `env.Dump(format="json")`
|
# TODO: replace this with `env.Dump(format="json")`
|
||||||
# once we start requiring SCons 4.0 as min version.
|
# once we start requiring SCons 4.0 as min version.
|
||||||
|
Loading…
Reference in New Issue
Block a user