summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2001-09-24 14:16:04 (GMT)
committerSteven Knight <knight@baldmt.com>2001-09-24 14:16:04 (GMT)
commitcf97a90442df5f8b835bb81aa5139e142baaf446 (patch)
tree38b6a16f2ac93941a08d32dc22c6991a15bc0bc8 /src/engine/SCons/Node
parent6d2e37c6e4552fc39dc01fd69d0e4dd8d8edf356 (diff)
downloadSCons-cf97a90442df5f8b835bb81aa5139e142baaf446.zip
SCons-cf97a90442df5f8b835bb81aa5139e142baaf446.tar.gz
SCons-cf97a90442df5f8b835bb81aa5139e142baaf446.tar.bz2
Enhance Builders to take any type of node as input.
Diffstat (limited to 'src/engine/SCons/Node')
-rw-r--r--src/engine/SCons/Node/FS.py6
-rw-r--r--src/engine/SCons/Node/FSTests.py5
-rw-r--r--src/engine/SCons/Node/__init__.py10
3 files changed, 19 insertions, 2 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index ee06089..2595766 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -214,6 +214,9 @@ class Dir(Node):
self.abspath = self.path = name
self.entries['..'] = None
+ def __str__(self):
+ return self.path
+
def up(self):
return self.entries['..']
@@ -258,6 +261,9 @@ class File(Node):
self.path = os.path.join(directory.path, name)
self.parent = directory
+ def __str__(self):
+ return self.path
+
def root(self):
return self.parent.root()
diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py
index 87c6ed8..94ec5b0 100644
--- a/src/engine/SCons/Node/FSTests.py
+++ b/src/engine/SCons/Node/FSTests.py
@@ -41,6 +41,8 @@ class FSTestCase(unittest.TestCase):
dir = fileSys.Dir(lpath)
assert dir.path == path, "Dir.path %s != expected path %s" % \
(dir.path, path)
+ assert str(dir) == path, "str(dir) %s != expected path %s" % \
+ (str(dir), path)
assert dir.abspath == abspath, "Dir.abspath %s != expected abs. path %s" % \
(dir.abspath, path)
assert dir.up().path == up_path, "Dir.up().path %s != expected parent path %s" % \
@@ -62,12 +64,14 @@ class FSTestCase(unittest.TestCase):
f1 = fs.File('f1', directory = d1)
assert f1.path == 'd1/f1', "f1.path %s != d1/f1" % f1.path
+ assert str(f1) == 'd1/f1', "str(f1) %s != d1/f1" % str(f1)
try:
f2 = fs.File('f1/f2', directory = d1)
except TypeError, x:
node = x.args[0]
assert node.path == 'd1/f1', "node.path %s != d1/f1" % node.path
+ assert str(node) == 'd1/f1', "str(node) %s != d1/f1" % str(node)
assert node.__class__.__name__ == 'File'
except:
raise
@@ -77,6 +81,7 @@ class FSTestCase(unittest.TestCase):
except TypeError, x:
node = x.args[0]
assert node.path == 'd1/f1', "node.path %s != d1/f1" % node.path
+ assert str(node) == 'd1/f1', "str(node) %s != d1/f1" % str(node)
assert node.__class__.__name__ == 'File'
except:
raise
diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py
index ce8e225..8609c57 100644
--- a/src/engine/SCons/Node/__init__.py
+++ b/src/engine/SCons/Node/__init__.py
@@ -8,18 +8,24 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+import string
+
+
+
class Node:
"""The base Node class, for entities that we know how to
build, or use to build other Nodes.
"""
def __init__(self):
- self.depends = []
self.sources = []
+ self.depends = []
+ self.derived = 0
self.env = None
def build(self):
- self.builder.execute(target = self.path, source = self.sources)
+ sources_str = string.join(map(lambda x: str(x), self.sources))
+ self.builder.execute(target = str(self), source = sources_str)
def builder_set(self, builder):
self.builder = builder