diff options
author | José Fonseca <jfonseca@vmware.com> | 2012-08-14 12:18:45 +0100 |
---|---|---|
committer | José Fonseca <jfonseca@vmware.com> | 2012-08-14 12:19:56 +0100 |
commit | ea8dcfc90d5abbf699cd64be4dccd1e69fe82d75 (patch) | |
tree | b455ea19ab8b015cf925605da801f8cf11886b0f /scons | |
parent | 605f964d5cc7016fc74e0563829fa794da845c20 (diff) |
scons: Populate top_srcdir and top_builddir variables when reading Makefiles.sources.
This is not entirely correct, as scons doesn't put binaries in a
"src" subdirectory, but doesn't seem to be a problem for now.
Diffstat (limited to 'scons')
-rw-r--r-- | scons/custom.py | 4 | ||||
-rw-r--r-- | scons/source_list.py | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/scons/custom.py b/scons/custom.py index cc953bd999a..43e7727aa42 100644 --- a/scons/custom.py +++ b/scons/custom.py @@ -235,6 +235,10 @@ def parse_source_list(env, filename, names=None): # parse the source list file parser = source_list.SourceListParser() src = env.File(filename).srcnode() + + parser.add_symbol('top_srcdir', env.Dir('#').abspath) + parser.add_symbol('top_builddir', env['build_dir']) + sym_table = parser.parse(src.abspath) if names: diff --git a/scons/source_list.py b/scons/source_list.py index 8111f43184f..e16d1f9b6d2 100644 --- a/scons/source_list.py +++ b/scons/source_list.py @@ -13,6 +13,7 @@ The goal is to allow Makefile's and SConscript's to share source listing. class SourceListParser(object): def __init__(self): + self.symbol_table = {} self._reset() def _reset(self, filename=None): @@ -20,7 +21,6 @@ class SourceListParser(object): self.line_no = 1 self.line_cont = '' - self.symbol_table = {} def _error(self, msg): raise RuntimeError('%s:%d: %s' % (self.filename, self.line_no, msg)) @@ -125,3 +125,6 @@ class SourceListParser(object): raise return self.symbol_table + + def add_symbol(self, name, value): + self.symbol_table[name] = value |