summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Kravets <me@ikravets.com>2018-11-19 23:21:45 (GMT)
committerIvan Kravets <me@ikravets.com>2018-11-19 23:21:45 (GMT)
commit037c8733cf74d9404a73d8ef6c5549a1d7684f25 (patch)
treea7c819fcc4da475d6fbad844bbfe74b72e38776f
parent1ec74bcc6f5a17217cfa7067a18d172ed224b876 (diff)
downloadSCons-037c8733cf74d9404a73d8ef6c5549a1d7684f25.zip
SCons-037c8733cf74d9404a73d8ef6c5549a1d7684f25.tar.gz
SCons-037c8733cf74d9404a73d8ef6c5549a1d7684f25.tar.bz2
Handle CWD when searching for a file
-rw-r--r--src/engine/SCons/Scanner/C.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/engine/SCons/Scanner/C.py b/src/engine/SCons/Scanner/C.py
index ede74b9..37bf244 100644
--- a/src/engine/SCons/Scanner/C.py
+++ b/src/engine/SCons/Scanner/C.py
@@ -29,7 +29,6 @@ This module implements the dependency scanner for C/C++ code.
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
-
import SCons.Node.FS
import SCons.Scanner
import SCons.Util
@@ -47,20 +46,22 @@ class SConsCPPScanner(SCons.cpp.PreProcessor):
def __init__(self, *args, **kw):
SCons.cpp.PreProcessor.__init__(self, *args, **kw)
self.missing = []
- self._known_paths = tuple()
+ self._known_paths = []
def initialize_result(self, fname):
self.result = SCons.Util.UniqueList([fname])
def find_include_file(self, t):
keyword, quote, fname = t
- result = SCons.Node.FS.find_file(
- fname, self._known_paths + self.searchpath[quote])
+ paths = tuple(self._known_paths) + self.searchpath[quote]
+ if quote == '"':
+ paths = (self.current_file.dir, ) + paths
+ result = SCons.Node.FS.find_file(fname, paths)
if result:
result_path = result.get_abspath()
for p in self.searchpath[quote]:
if result_path.startswith(p.get_abspath()):
- self._known_paths.add(p)
+ self._known_paths.append(p)
break
else:
self.missing.append((fname, self.current_file))