summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node/Python.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-05-14 03:08:46 (GMT)
committerSteven Knight <knight@baldmt.com>2004-05-14 03:08:46 (GMT)
commit86c11822b8f41dff8ec28e4ee8a8afeec9bfaa5f (patch)
treef4e261a94be38bdc1beff13b857c54b169113baf /src/engine/SCons/Node/Python.py
parente2ed7aef1547812fa9ce49ae726ae1815158936d (diff)
downloadSCons-86c11822b8f41dff8ec28e4ee8a8afeec9bfaa5f.zip
SCons-86c11822b8f41dff8ec28e4ee8a8afeec9bfaa5f.tar.gz
SCons-86c11822b8f41dff8ec28e4ee8a8afeec9bfaa5f.tar.bz2
Make the saved info opaque to the .sconsign subsystem. Lots of other cleanup.
Diffstat (limited to 'src/engine/SCons/Node/Python.py')
-rw-r--r--src/engine/SCons/Node/Python.py33
1 files changed, 15 insertions, 18 deletions
diff --git a/src/engine/SCons/Node/Python.py b/src/engine/SCons/Node/Python.py
index 312be5c..a2537ae 100644
--- a/src/engine/SCons/Node/Python.py
+++ b/src/engine/SCons/Node/Python.py
@@ -30,7 +30,6 @@ Python nodes.
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import SCons.Node
-import time
class Value(SCons.Node.Node):
"""A class for Python variables, typically passed on the command line
@@ -39,7 +38,6 @@ class Value(SCons.Node.Node):
def __init__(self, value):
SCons.Node.Node.__init__(self)
self.value = value
- self.timestamp = time.time()
def __str__(self):
return repr(self.value)
@@ -48,20 +46,7 @@ class Value(SCons.Node.Node):
"""A "builder" for Values."""
pass
- def current(self, calc):
- """If all of our children were up-to-date, then this
- Value was up-to-date, too."""
- # Allow the children to calculate their signatures.
- calc.bsig(self)
- state = 0
- for kid in self.children(None):
- s = kid.get_state()
- if s and (not state or s > state):
- state = s
- if state == 0 or state == SCons.Node.up_to_date:
- return 1
- else:
- return 0
+ current = SCons.Node.Node.children_are_up_to_date
def is_under(self, dir):
# Make Value nodes get built regardless of
@@ -77,5 +62,17 @@ class Value(SCons.Node.Node):
contents = contents + kid.get_contents()
return contents
- def get_timestamp(self):
- return self.timestamp
+ def calc_csig(self, calc):
+ """Because we're a Python value node and don't have a real
+ timestamp, we get to ignore the calculator and just use the
+ value contents."""
+ try:
+ self.binfo
+ except:
+ self.binfo = self.new_binfo()
+ try:
+ return self.binfo.csig
+ except AttributeError:
+ self.binfo.csig = self.get_contents()
+ self.store_info(self.binfo)
+ return self.binfo.csig