summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Scanner
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2001-12-15 00:23:46 (GMT)
committerSteven Knight <knight@baldmt.com>2001-12-15 00:23:46 (GMT)
commitaf3987ad4663708a4f9d10b661971fd7b29a9f0d (patch)
tree9de48645f9d229266078ede22a78fcd740f705b6 /src/engine/SCons/Scanner
parent0d14a2ff1774d42dc855aa9aab94791df3f55157 (diff)
downloadSCons-af3987ad4663708a4f9d10b661971fd7b29a9f0d.zip
SCons-af3987ad4663708a4f9d10b661971fd7b29a9f0d.tar.gz
SCons-af3987ad4663708a4f9d10b661971fd7b29a9f0d.tar.bz2
Add BuildDir(), Export(), and Install() functionality (courtesy Charles Crain).
Diffstat (limited to 'src/engine/SCons/Scanner')
-rw-r--r--src/engine/SCons/Scanner/C.py6
-rw-r--r--src/engine/SCons/Scanner/CTests.py6
2 files changed, 9 insertions, 3 deletions
diff --git a/src/engine/SCons/Scanner/C.py b/src/engine/SCons/Scanner/C.py
index 8ad7e00..a5aa02d 100644
--- a/src/engine/SCons/Scanner/C.py
+++ b/src/engine/SCons/Scanner/C.py
@@ -96,7 +96,7 @@ def scan(filename, env, args = [SCons.Node.FS.default_fs, ()]):
fs, cpppath = args
- try:
+ if fs.File(filename, fs.Top).exists():
file = open(filename)
contents = file.read()
file.close()
@@ -109,9 +109,9 @@ def scan(filename, env, args = [SCons.Node.FS.default_fs, ()]):
source_dir = (fs.Dir(dir, fs.Top),)
else:
source_dir = ( fs.Top, )
+
return (SCons.Util.find_files(angle_includes, cpppath + source_dir,
fs.File)
+ SCons.Util.find_files(quote_includes, source_dir + cpppath,
fs.File))
- except (IOError, OSError):
- return []
+ return []
diff --git a/src/engine/SCons/Scanner/CTests.py b/src/engine/SCons/Scanner/CTests.py
index bc30fa4..c9cc5ea 100644
--- a/src/engine/SCons/Scanner/CTests.py
+++ b/src/engine/SCons/Scanner/CTests.py
@@ -29,6 +29,7 @@ import unittest
import sys
import os
import os.path
+import SCons.Node.FS
test = TestCmd.TestCmd(workdir = '')
@@ -176,6 +177,11 @@ class CScannerTestCase5(unittest.TestCase):
env = DummyEnvironment([])
s = SCons.Scanner.C.CScan()
deps = s.instance(env).scan(test.workpath('f3.cpp'), env)
+
+ # Make sure exists() gets called on the file node being
+ # scanned, essential for cooperation with BuildDir functionality.
+ assert SCons.Node.FS.default_fs.File(test.workpath('f3.cpp')).created
+
headers = ['f1.h', 'f2.h', 'f3.h', 'fi.h', 'fj.h',
'd1/f1.h', 'd1/f2.h', 'd1/f3.h']
deps_match(self, deps, map(test.workpath, headers))