summaryrefslogtreecommitdiff
path: root/site_scons/site_tools/ninja.py
diff options
context:
space:
mode:
authorDaniel Moody <daniel.moody@mongodb.com>2022-09-27 12:40:24 -0500
committerDaniel Moody <daniel.moody@mongodb.com>2022-09-27 12:40:24 -0500
commitbe60e8d6c6ad9ac938583db103f49706ab8faa27 (patch)
tree78f85d02b11e9b26c487a1a55be0f94afcadc7fe /site_scons/site_tools/ninja.py
parent3fb46b7ac816b306c13160765917f57dac0e078e (diff)
downloadmongo-be60e8d6c6ad9ac938583db103f49706ab8faa27.tar.gz
SERVER-68365 added grpc third party integration (excluding third party source)
Diffstat (limited to 'site_scons/site_tools/ninja.py')
-rw-r--r--site_scons/site_tools/ninja.py26
1 files changed, 17 insertions, 9 deletions
diff --git a/site_scons/site_tools/ninja.py b/site_scons/site_tools/ninja.py
index a55205fc612..2b2fe875d89 100644
--- a/site_scons/site_tools/ninja.py
+++ b/site_scons/site_tools/ninja.py
@@ -810,15 +810,23 @@ class NinjaState:
# cycle.
if (generated_source_files and check_generated_source_deps(build)):
- # Make all non-generated source targets depend on
- # _generated_sources. We use order_only for generated
- # sources so that we don't rebuild the world if one
- # generated source was rebuilt. We just need to make
- # sure that all of these sources are generated before
- # other builds.
- order_only = build.get("order_only", [])
- order_only.append(generated_sources_alias)
- build["order_only"] = order_only
+ depends_on_gen_source = False
+ if build['outputs']:
+ depends_on_gen_source = all([
+ True if gen_source_exception not in build['outputs'][0] else False
+ for gen_source_exception in self.env.get('NINJA_PREGEN_SOURCE_TARGETS', [])
+ ])
+
+ if depends_on_gen_source:
+ # Make all non-generated source targets depend on
+ # _generated_sources. We use order_only for generated
+ # sources so that we don't rebuild the world if one
+ # generated source was rebuilt. We just need to make
+ # sure that all of these sources are generated before
+ # other builds.
+ order_only = build.get("order_only", [])
+ order_only.append(generated_sources_alias)
+ build["order_only"] = order_only
if "order_only" in build:
build["order_only"].sort()