summaryrefslogtreecommitdiff
path: root/SConstruct
diff options
context:
space:
mode:
authorAndrew Morrow <acm@mongodb.com>2020-08-14 14:11:07 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-08-17 22:09:57 +0000
commitc40e96ea0b650402af0b52bd6a70f5ea67464054 (patch)
treed0018dd2fc8b83a8a52a0b37e356427bb89b93fa /SConstruct
parentffa3d0117ed0ae23fca299fc3474502e701a086b (diff)
downloadmongo-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--SConstruct25
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