summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2012-08-14 12:18:45 +0100
committerJosé Fonseca <jfonseca@vmware.com>2012-08-14 12:19:56 +0100
commitea8dcfc90d5abbf699cd64be4dccd1e69fe82d75 (patch)
treeb455ea19ab8b015cf925605da801f8cf11886b0f
parent605f964d5cc7016fc74e0563829fa794da845c20 (diff)
downloadexternal_mesa3d-ea8dcfc90d5abbf699cd64be4dccd1e69fe82d75.zip
external_mesa3d-ea8dcfc90d5abbf699cd64be4dccd1e69fe82d75.tar.gz
external_mesa3d-ea8dcfc90d5abbf699cd64be4dccd1e69fe82d75.tar.bz2
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.
-rw-r--r--scons/custom.py4
-rw-r--r--scons/source_list.py5
2 files changed, 8 insertions, 1 deletions
diff --git a/scons/custom.py b/scons/custom.py
index cc953bd..43e7727 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 8111f43..e16d1f9 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