summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Scanner
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-03-05 08:51:01 (GMT)
committerSteven Knight <knight@baldmt.com>2004-03-05 08:51:01 (GMT)
commitbb42c27bfa1a4208fc3cdc7b583b8093305fc4c0 (patch)
tree40bbe3ce2769d5fc3c9b201a13a59f5c6ebf12e7 /src/engine/SCons/Scanner
parentc6a5a383c8771988bc829ef90111afc4db03cc5f (diff)
downloadSCons-bb42c27bfa1a4208fc3cdc7b583b8093305fc4c0.zip
SCons-bb42c27bfa1a4208fc3cdc7b583b8093305fc4c0.tar.gz
SCons-bb42c27bfa1a4208fc3cdc7b583b8093305fc4c0.tar.bz2
Refactor path-substitution logic into an Environment method.
Diffstat (limited to 'src/engine/SCons/Scanner')
-rw-r--r--src/engine/SCons/Scanner/CTests.py5
-rw-r--r--src/engine/SCons/Scanner/FortranTests.py5
-rw-r--r--src/engine/SCons/Scanner/ProgTests.py5
-rw-r--r--src/engine/SCons/Scanner/ScannerTests.py4
-rw-r--r--src/engine/SCons/Scanner/__init__.py10
5 files changed, 20 insertions, 9 deletions
diff --git a/src/engine/SCons/Scanner/CTests.py b/src/engine/SCons/Scanner/CTests.py
index 253af88..abb72a4 100644
--- a/src/engine/SCons/Scanner/CTests.py
+++ b/src/engine/SCons/Scanner/CTests.py
@@ -182,6 +182,11 @@ class DummyEnvironment:
def subst(self, arg):
return arg
+ def subst_path(self, path):
+ if type(path) != type([]):
+ path = [path]
+ return map(self.subst, path)
+
def has_key(self, key):
return self.Dictionary().has_key(key)
diff --git a/src/engine/SCons/Scanner/FortranTests.py b/src/engine/SCons/Scanner/FortranTests.py
index a719765..e69f99e 100644
--- a/src/engine/SCons/Scanner/FortranTests.py
+++ b/src/engine/SCons/Scanner/FortranTests.py
@@ -163,6 +163,11 @@ class DummyEnvironment:
def subst(self, arg):
return arg
+ def subst_path(self, path):
+ if type(path) != type([]):
+ path = [path]
+ return map(self.subst, path)
+
def deps_match(self, deps, headers):
scanned = map(os.path.normpath, map(str, deps))
expect = map(os.path.normpath, headers)
diff --git a/src/engine/SCons/Scanner/ProgTests.py b/src/engine/SCons/Scanner/ProgTests.py
index 9f178f8..4e10488 100644
--- a/src/engine/SCons/Scanner/ProgTests.py
+++ b/src/engine/SCons/Scanner/ProgTests.py
@@ -73,6 +73,11 @@ class DummyEnvironment:
def subst(self, s):
return s
+ def subst_path(self, path):
+ if type(path) != type([]):
+ path = [path]
+ return map(self.subst, path)
+
def deps_match(deps, libs):
deps=map(str, deps)
deps.sort()
diff --git a/src/engine/SCons/Scanner/ScannerTests.py b/src/engine/SCons/Scanner/ScannerTests.py
index 3d72bd2..169c74c 100644
--- a/src/engine/SCons/Scanner/ScannerTests.py
+++ b/src/engine/SCons/Scanner/ScannerTests.py
@@ -35,6 +35,10 @@ class DummyEnvironment(UserDict.UserDict):
self.data.update(kw)
def subst(self, strSubst):
return strSubst
+ def subst_path(self, path):
+ if type(path) != type([]):
+ path = [path]
+ return map(self.subst, path)
class FindPathDirsTestCase(unittest.TestCase):
def test_FindPathDirs(self):
diff --git a/src/engine/SCons/Scanner/__init__.py b/src/engine/SCons/Scanner/__init__.py
index 4bf8b6c..dc9abc3 100644
--- a/src/engine/SCons/Scanner/__init__.py
+++ b/src/engine/SCons/Scanner/__init__.py
@@ -55,15 +55,7 @@ class FindPathDirs:
except KeyError:
return ()
- if not SCons.Util.is_List(path):
- path = [path]
- r = []
- for p in path:
- if SCons.Util.is_String(p):
- p = env.subst(p)
- r.append(p)
-
- return tuple(self.fs.Rsearchall(r,
+ return tuple(self.fs.Rsearchall(env.subst_path(path),
must_exist = 0,
clazz = SCons.Node.FS.Dir,
cwd = dir))