summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Gross <grossag@vmware.com>2020-01-15 00:44:24 (GMT)
committerAdam Gross <grossag@vmware.com>2020-01-15 00:44:24 (GMT)
commit50154d0eb7afc564cb13e47c7524fcf2f6ff0450 (patch)
tree89f52f7a3d33c350592a7eba98dc5580bbbff6b7
parent589b0a4a29353df1d1fe4177eae578fc6754f7ac (diff)
downloadSCons-50154d0eb7afc564cb13e47c7524fcf2f6ff0450.zip
SCons-50154d0eb7afc564cb13e47c7524fcf2f6ff0450.tar.gz
SCons-50154d0eb7afc564cb13e47c7524fcf2f6ff0450.tar.bz2
Add name parameter as requested in PR
-rw-r--r--src/engine/SCons/Environment.py4
-rw-r--r--src/engine/SCons/Node/Python.py9
-rw-r--r--src/engine/SCons/Node/PythonTests.py5
-rw-r--r--test/CacheDir/value_dependencies/SConstruct8
4 files changed, 18 insertions, 8 deletions
diff --git a/src/engine/SCons/Environment.py b/src/engine/SCons/Environment.py
index 3e23196..099d143 100644
--- a/src/engine/SCons/Environment.py
+++ b/src/engine/SCons/Environment.py
@@ -2220,10 +2220,10 @@ class Base(SubstitutionEnvironment):
else:
return [self.subst(arg)]
- def Value(self, value, built_value=None):
+ def Value(self, value, built_value=None, name=None):
"""
"""
- return SCons.Node.Python.ValueWithMemo(value, built_value)
+ return SCons.Node.Python.ValueWithMemo(value, built_value, name)
def VariantDir(self, variant_dir, src_dir, duplicate=1):
variant_dir = self.arg2nodes(variant_dir, self.fs.Dir)[0]
diff --git a/src/engine/SCons/Node/Python.py b/src/engine/SCons/Node/Python.py
index 385a645..8437385 100644
--- a/src/engine/SCons/Node/Python.py
+++ b/src/engine/SCons/Node/Python.py
@@ -88,7 +88,7 @@ class Value(SCons.Node.Node):
NodeInfo = ValueNodeInfo
BuildInfo = ValueBuildInfo
- def __init__(self, value, built_value=None):
+ def __init__(self, value, built_value=None, name=None):
SCons.Node.Node.__init__(self)
self.value = value
self.changed_since_last_build = 6
@@ -98,7 +98,10 @@ class Value(SCons.Node.Node):
# Set a name so it can be a child of a node and not break
# its parent's implementation of Node.get_contents.
- self.name = value
+ if name:
+ self.name = name
+ else:
+ self.name = str(value)
def str_for_display(self):
return repr(self.value)
@@ -181,7 +184,7 @@ class Value(SCons.Node.Node):
return contents
-def ValueWithMemo(value, built_value=None):
+def ValueWithMemo(value, built_value=None, name=None):
global _memo_lookup_map
# No current support for memoizing a value that needs to be built.
diff --git a/src/engine/SCons/Node/PythonTests.py b/src/engine/SCons/Node/PythonTests.py
index da71074..302bb59 100644
--- a/src/engine/SCons/Node/PythonTests.py
+++ b/src/engine/SCons/Node/PythonTests.py
@@ -64,6 +64,11 @@ class ValueTestCase(unittest.TestCase):
v2.build()
assert v2.built_value == 'faked', v2.built_value
+ v3 = SCons.Node.Python.Value(b'\x00\x0F', name='name')
+ v3.executor = fake_executor()
+ v3.build()
+ assert v3.built_value == 'faked', v3.built_value
+
def test_read(self):
"""Test the Value.read() method
"""
diff --git a/test/CacheDir/value_dependencies/SConstruct b/test/CacheDir/value_dependencies/SConstruct
index 649648b..7b7e596 100644
--- a/test/CacheDir/value_dependencies/SConstruct
+++ b/test/CacheDir/value_dependencies/SConstruct
@@ -11,7 +11,7 @@ def scan(node, env, path):
# SCons.Node.Python.Value.
sample_dir = env.fs.Dir('dir2')
env.Depends(sample_dir, env.Value('c'))
- return [sample_dir, env.Value('d')]
+ return [sample_dir, env.Value('d'), env.Value(b'\x03\x0F', name='name3')]
scanner = Scanner(function=scan, node_class=SCons.Node.Node)
builder = Builder(action=b, source_scanner=scanner)
@@ -22,9 +22,11 @@ env.Append(BUILDERS={'B': builder})
# Create a node and a directory that each depend on an instance of
# SCons.Node.Python.Value.
sample_dir = env.fs.Dir('dir1')
-env.Depends(sample_dir, env.Value('a'))
+env.Depends(sample_dir,
+ [env.Value('a'), env.Value(b'\x01\x0F', name='name1')])
sample_file = env.fs.File('testfile')
-env.Depends(sample_file, env.Value('b'))
+env.Depends(sample_file,
+ [env.Value('b'), env.Value(b'\x02\x0F', name='name2')])
env.B(target='File1.out', source=[sample_dir, sample_file])