summaryrefslogtreecommitdiff
path: root/site_scons
diff options
context:
space:
mode:
authorAndrew Morrow <acm@mongodb.com>2018-03-28 11:59:39 -0400
committerAndrew Morrow <acm@mongodb.com>2018-03-29 12:15:39 -0400
commit73a74e4ba33af61b2f102ddf11e674ee30dc2768 (patch)
treeec11fffd096488f006e9e3a6f33ff4b80c1315fe /site_scons
parent45c86eb7be9a2ce2ffd112f22f7cdc131d35b0aa (diff)
downloadmongo-73a74e4ba33af61b2f102ddf11e674ee30dc2768.tar.gz
SERVER-33980 Reduce dependencies for embedded commands
Diffstat (limited to 'site_scons')
-rw-r--r--site_scons/site_tools/auto_install_binaries.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/site_scons/site_tools/auto_install_binaries.py b/site_scons/site_tools/auto_install_binaries.py
index 19232645e26..87821f0341b 100644
--- a/site_scons/site_tools/auto_install_binaries.py
+++ b/site_scons/site_tools/auto_install_binaries.py
@@ -26,8 +26,21 @@ def generate(env):
for s in map(env.Entry, env.Flatten(source)):
setattr(s.attributes, "aib_install_actions", actions)
- tags = kwargs.get('INSTALL_ALIAS', [])
- if tags:
+ # Get the tags. If no tags were set, or a non-falsish thing
+ # was set then interpret that as a request for normal
+ # tagging. Auto include the 'all' tag, and generate
+ # aliases. If the user explicitly set the INSTALL_ALIAS to
+ # something falsy, interpret that as meaning no tags at all,
+ # so that we have a way to exempt targets from auto
+ # installation.
+ tags = kwargs.get('INSTALL_ALIAS', None)
+ if tags is None or tags:
+ tags = set(tags or [])
+ tags.add('all')
+ if 'default' in tags:
+ tags.remove('default')
+ env.Alias('install', actions)
+ env.Default('install')
env.Alias(['install-' + tag for tag in tags], actions)
return actions
@@ -64,6 +77,8 @@ def generate(env):
install_sources = node.sources
for install_source in install_sources:
is_executor = install_source.get_executor()
+ if not is_executor:
+ continue
is_targets = is_executor.get_all_targets()
for is_target in (is_targets or []):
grandchildren = is_target.children()