diff options
author | Andrew Morrow <acm@mongodb.com> | 2020-08-14 14:11:07 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-08-17 22:09:57 +0000 |
commit | c40e96ea0b650402af0b52bd6a70f5ea67464054 (patch) | |
tree | d0018dd2fc8b83a8a52a0b37e356427bb89b93fa /SConstruct | |
parent | ffa3d0117ed0ae23fca299fc3474502e701a086b (diff) | |
download | mongo-c40e96ea0b650402af0b52bd6a70f5ea67464054.tar.gz |
SERVER-49466 Introduce a flag to opt in to newer mongodb SCons tools as a group
Diffstat (limited to 'SConstruct')
-rw-r--r-- | SConstruct | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/SConstruct b/SConstruct index a39999e7a41..6d382f3c145 100644 --- a/SConstruct +++ b/SConstruct @@ -113,6 +113,13 @@ add_option('ninja', help='Enable the build.ninja generator tool stable or canary version', ) +add_option('build-tools', + choices=['stable', 'next'], + default='stable', + type='choice', + help='Enable experimental build tools', +) + add_option('legacy-tarball', choices=['true', 'false'], default='false', @@ -1071,6 +1078,14 @@ envDict = dict(BUILD_ROOT=buildDir, LIBDEPS_TAG_EXPANSIONS=[], ) + +# By default, we will get the normal SCons tool search. But if the +# user has opted into the next gen tools, add our experimental tool +# directory into the default toolpath, ahead of whatever is already in +# there so it overrides it. +if get_option('build-tools') == 'next' or get_option('ninja') == 'next': + SCons.Tool.DefaultToolpath.insert(0, os.path.abspath('site_scons/site_tools/next')) + env = Environment(variables=env_vars, **envDict) # Only print the spinner if stdout is a tty @@ -3877,11 +3892,8 @@ if get_option('ninja') != 'disabled': if env['ICECREAM_VERSION'] < parse_version("1.2"): env.FatalError("Use of ccache is mandatory with --ninja and icecream older than 1.2. You are running {}.".format(env['ICECREAM_VERSION'])) - if get_option('ninja') == 'stable': - ninja_builder = Tool("ninja") - ninja_builder.generate(env) - else: - ninja_builder = Tool("ninja_next") + ninja_builder = Tool("ninja") + if get_option('build-tools') == 'next' or get_option('ninja') == 'next': env["NINJA_BUILDDIR"] = env.Dir("$BUILD_DIR/ninja") ninja_builder.generate(env) @@ -3890,7 +3902,8 @@ if get_option('ninja') != 'disabled': }) env['NINJA_COMPDB_EXPAND'] = ninjaConf.CheckNinjaCompdbExpand() ninjaConf.Finish() - + else: + ninja_builder.generate(env) # idlc.py has the ability to print it's implicit dependencies # while generating, Ninja can consume these prints using the |