summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node/__init__.py
diff options
context:
space:
mode:
authorGary Oberbrunner <garyo@oberbrunner.com>2013-11-02 20:27:42 (GMT)
committerGary Oberbrunner <garyo@oberbrunner.com>2013-11-02 20:27:42 (GMT)
commitcc202cdc15cd156c458ad9a2f94b2e9145be3ec2 (patch)
tree69c4681b26c8c9d2e94d7c7d24bbe764ec19e4ad /src/engine/SCons/Node/__init__.py
parent6660a1b75c021994ccf352bb5314935d533b7994 (diff)
parent54eaf41e5eadd05c73b0ad21223f73c4ed47684f (diff)
downloadSCons-cc202cdc15cd156c458ad9a2f94b2e9145be3ec2.zip
SCons-cc202cdc15cd156c458ad9a2f94b2e9145be3ec2.tar.gz
SCons-cc202cdc15cd156c458ad9a2f94b2e9145be3ec2.tar.bz2
Merge pull request #88: various usability enhancements
* Allow multiple --debug= values * Add support for a readonly cache (--cache-readonly) * Always print stats if requested * Generally try harder to print out a message on build errors
Diffstat (limited to 'src/engine/SCons/Node/__init__.py')
-rw-r--r--src/engine/SCons/Node/__init__.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py
index c114281..d353245 100644
--- a/src/engine/SCons/Node/__init__.py
+++ b/src/engine/SCons/Node/__init__.py
@@ -58,6 +58,10 @@ from SCons.Debug import Trace
def classname(obj):
return str(obj.__class__).split('.')[-1]
+# Set to false if we're doing a dry run. There's more than one of these
+# little treats
+do_store_info = True
+
# Node states
#
# These are in "priority" order, so that the maximum value for any
@@ -215,6 +219,7 @@ class Node(object):
self.env = None
self.state = no_state
self.precious = None
+ self.pseudo = False
self.noclean = 0
self.nocache = 0
self.cached = 0 # is this node pulled from cache?
@@ -386,6 +391,13 @@ class Node(object):
self.clear()
+ if self.pseudo:
+ if self.exists():
+ raise SCons.Errors.UserError("Pseudo target " + str(self) + " must not exist")
+ else:
+ if not self.exists() and do_store_info:
+ SCons.Warnings.warn(SCons.Warnings.TargetNotBuiltWarning,
+ "Cannot find target " + str(self) + " after building")
self.ninfo.update(self)
def visited(self):
@@ -789,6 +801,10 @@ class Node(object):
"""Set the Node's precious value."""
self.precious = precious
+ def set_pseudo(self, pseudo = True):
+ """Set the Node's precious value."""
+ self.pseudo = pseudo
+
def set_noclean(self, noclean = 1):
"""Set the Node's noclean value."""
# Make sure noclean is an integer so the --debug=stree