summaryrefslogtreecommitdiff
path: root/SConstruct
diff options
context:
space:
mode:
authorMathew Robinson <mathew.robinson@mongodb.com>2020-01-24 16:08:37 +0000
committerevergreen <evergreen@mongodb.com>2020-01-24 16:08:37 +0000
commitd4970df8517be6aab286d3a0551263b12076e6b3 (patch)
treef714830b69608694298bcb34cd1d62de4fa2afad /SConstruct
parentba1b7bfcc7bc133fcb3ebf6ea44c6a55edab0bea (diff)
downloadmongo-d4970df8517be6aab286d3a0551263b12076e6b3.tar.gz
SERVER-45724 Make new generator as fast as old module
Diffstat (limited to 'SConstruct')
-rw-r--r--SConstruct14
1 files changed, 14 insertions, 0 deletions
diff --git a/SConstruct b/SConstruct
index f65a4add436..e3ac11cb54c 100644
--- a/SConstruct
+++ b/SConstruct
@@ -3817,6 +3817,20 @@ if get_option('ninja') == 'true':
env.NinjaRegisterFunctionHandler("integration_test_list_builder_action", skip)
env.NinjaRegisterFunctionHandler("benchmark_list_builder_action", skip)
+
+ # idlc.py has the ability to print it's implicit dependencies
+ # while generating, Ninja can consume these prints using the
+ # deps=msvc method.
+ env.AppendUnique(IDLCFLAGS= "--write-dependencies-inline")
+ env.NinjaRule(
+ rule="IDLC",
+ command="cmd /c $cmd" if env.TargetOSIs("windows") else "$cmd",
+ description="Generating $out",
+ deps="msvc",
+ )
+ env.NinjaRuleMapping("$IDLCCOM", "IDLC")
+ env.NinjaRuleMapping(env["IDLCCOM"], "IDLC")
+
# We can create empty files for FAKELIB in Ninja because it
# does not care about content signatures. We have to
# write_uuid_to_file for FAKELIB in SCons because SCons does.