diff options
Diffstat (limited to 'SCons')
-rw-r--r-- | SCons/Builder.py | 4 | ||||
-rw-r--r-- | SCons/SConf.py | 20 |
2 files changed, 14 insertions, 10 deletions
diff --git a/SCons/Builder.py b/SCons/Builder.py index 38eadf8..1178884 100644 --- a/SCons/Builder.py +++ b/SCons/Builder.py @@ -613,6 +613,10 @@ class BuilderBase: t.set_executor(executor) t.set_explicit(self.is_explicit) + if env.get("SCONF_NODE"): + for node in tlist + slist: + node.attributes.conftest_node = 1 + return SCons.Node.NodeList(tlist) def __call__(self, env, target=None, source=None, chdir=_null, **kw): diff --git a/SCons/SConf.py b/SCons/SConf.py index 38a2b94..0ad712d 100644 --- a/SCons/SConf.py +++ b/SCons/SConf.py @@ -73,6 +73,9 @@ FORCE=1 # force all tests to be rebuilt CACHE=2 # force all tests to be taken from cache (raise an error, if necessary) cache_mode = AUTO +def _set_conftest_node(node): + node.attributes.conftest_node = 1 + def SetCacheMode(mode): """Set the Configure cache mode. mode must be one of "auto", "force", or "cache".""" @@ -518,7 +521,7 @@ class SConfBase: # we override the store_info() method with a null place-holder # so we really control how it gets written. for n in nodes: - self._set_conftest_node(n) + _set_conftest_node(n) n.store_info = 0 if not hasattr(n, 'attributes'): n.attributes = SCons.Node.Node.Attrs() @@ -531,7 +534,7 @@ class SConfBase: for c in n.children(scan=False): # Keep debug code here. # print("Checking [%s] for builders and then setting keep_targetinfo"%c) - self._set_conftest_node(c) + _set_conftest_node(c) if c.has_builder(): n.store_info = 0 if not hasattr(c, 'attributes'): @@ -596,7 +599,7 @@ class SConfBase: nodesToBeBuilt = [] sourcetext = self.env.Value(text) - self._set_conftest_node(sourcetext) + _set_conftest_node(sourcetext) f = "conftest" if text is not None: @@ -606,14 +609,14 @@ class SConfBase: f = "_".join([f, textSig, textSigCounter]) textFile = self.confdir.File(f + extension) - self._set_conftest_node(textFile) + _set_conftest_node(textFile) textFileNode = self.env.SConfSourceBuilder(target=textFile, source=sourcetext) nodesToBeBuilt.extend(textFileNode) source = textFile target = textFile.File(f + "SConfActionsContentDummyTarget") - self._set_conftest_node(target) + _set_conftest_node(target) else: source = None target = None @@ -625,14 +628,14 @@ class SConfBase: pref = self.env.subst( builder.builder.prefix ) suff = self.env.subst( builder.builder.suffix ) target = self.confdir.File(pref + f + suff) - self._set_conftest_node(target) + _set_conftest_node(target) try: # Slide our wrapper into the construction environment as # the SPAWN function. self.env['SPAWN'] = self.pspawn_wrapper - nodes = builder(target = target, source = source) + nodes = builder(target = target, source = source, SCONF_NODE=True) if not SCons.Util.is_List(nodes): nodes = [nodes] nodesToBeBuilt.extend(nodes) @@ -733,9 +736,6 @@ class SConfBase: if not os.path.isdir( dirName ): os.makedirs( dirName ) - def _set_conftest_node(self, node): - node.attributes.conftest_node = 1 - def _startup(self): """Private method. Set up logstream, and set the environment variables necessary for a piped build |