summaryrefslogtreecommitdiffstats
path: root/SCons
diff options
context:
space:
mode:
Diffstat (limited to 'SCons')
-rw-r--r--SCons/Builder.py4
-rw-r--r--SCons/SConf.py20
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