diff options
author | Stefan Zimmermann <zimmermann.code@gmail.com> | 2014-03-31 16:24:42 (GMT) |
---|---|---|
committer | Stefan Zimmermann <zimmermann.code@gmail.com> | 2014-03-31 16:24:42 (GMT) |
commit | cffcd3c38568d3f82ff83916bbbd1b129373558c (patch) | |
tree | ff268c97886e3cc905115185a35405b3fd83348a /src/engine/SCons/Node/FS.py | |
parent | ea1890249923aab9cda388b2d22b566dbb7b8949 (diff) | |
parent | d4f8c6e320484c106446918c37affdddacd5c7a3 (diff) | |
download | SCons-cffcd3c38568d3f82ff83916bbbd1b129373558c.zip SCons-cffcd3c38568d3f82ff83916bbbd1b129373558c.tar.gz SCons-cffcd3c38568d3f82ff83916bbbd1b129373558c.tar.bz2 |
Merged with [default]
Diffstat (limited to 'src/engine/SCons/Node/FS.py')
-rw-r--r-- | src/engine/SCons/Node/FS.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py index 2d155ad..a537ca8 100644 --- a/src/engine/SCons/Node/FS.py +++ b/src/engine/SCons/Node/FS.py @@ -2780,7 +2780,7 @@ class File(Base): if not hasattr(self.attributes, 'keep_targetinfo'): # Cache some required values, before releasing # stuff like env, executor and builder... - self.changed() + self.changed(allowcache=True) self.get_contents_sig() self.get_build_env() # Now purge unneeded stuff to free memory... @@ -3024,7 +3024,8 @@ class File(Base): SCons.Node.Node.built(self) - if not hasattr(self.attributes, 'keep_targetinfo'): + if (not SCons.Node.interactive and + not hasattr(self.attributes, 'keep_targetinfo')): # Ensure that the build infos get computed and cached... self.store_info() # ... then release some more variables. @@ -3035,7 +3036,7 @@ class File(Base): self.scanner_paths = None - def changed(self, node=None): + def changed(self, node=None, allowcache=False): """ Returns if the node is up-to-date with respect to the BuildInfo stored last time it was built. @@ -3043,6 +3044,8 @@ class File(Base): For File nodes this is basically a wrapper around Node.changed(), but we allow the return value to get cached after the reference to the Executor got released in release_target_info(). + + @see: Node.changed() """ if node is None: try: @@ -3051,7 +3054,8 @@ class File(Base): pass has_changed = SCons.Node.Node.changed(self, node) - self._memo['changed'] = has_changed + if allowcache: + self._memo['changed'] = has_changed return has_changed def changed_content(self, target, prev_ni): |