diff options
author | Ivan Kravets <me@ikravets.com> | 2018-11-19 23:21:45 (GMT) |
---|---|---|
committer | Ivan Kravets <me@ikravets.com> | 2018-11-19 23:21:45 (GMT) |
commit | 037c8733cf74d9404a73d8ef6c5549a1d7684f25 (patch) | |
tree | a7c819fcc4da475d6fbad844bbfe74b72e38776f | |
parent | 1ec74bcc6f5a17217cfa7067a18d172ed224b876 (diff) | |
download | SCons-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.py | 11 |
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)) |