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.
This commit is contained in:
@@ -235,6 +235,10 @@ def parse_source_list(env, filename, names=None):
|
|||||||
# parse the source list file
|
# parse the source list file
|
||||||
parser = source_list.SourceListParser()
|
parser = source_list.SourceListParser()
|
||||||
src = env.File(filename).srcnode()
|
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)
|
sym_table = parser.parse(src.abspath)
|
||||||
|
|
||||||
if names:
|
if names:
|
||||||
|
@@ -13,6 +13,7 @@ The goal is to allow Makefile's and SConscript's to share source listing.
|
|||||||
|
|
||||||
class SourceListParser(object):
|
class SourceListParser(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
self.symbol_table = {}
|
||||||
self._reset()
|
self._reset()
|
||||||
|
|
||||||
def _reset(self, filename=None):
|
def _reset(self, filename=None):
|
||||||
@@ -20,7 +21,6 @@ class SourceListParser(object):
|
|||||||
|
|
||||||
self.line_no = 1
|
self.line_no = 1
|
||||||
self.line_cont = ''
|
self.line_cont = ''
|
||||||
self.symbol_table = {}
|
|
||||||
|
|
||||||
def _error(self, msg):
|
def _error(self, msg):
|
||||||
raise RuntimeError('%s:%d: %s' % (self.filename, self.line_no, msg))
|
raise RuntimeError('%s:%d: %s' % (self.filename, self.line_no, msg))
|
||||||
@@ -125,3 +125,6 @@ class SourceListParser(object):
|
|||||||
raise
|
raise
|
||||||
|
|
||||||
return self.symbol_table
|
return self.symbol_table
|
||||||
|
|
||||||
|
def add_symbol(self, name, value):
|
||||||
|
self.symbol_table[name] = value
|
||||||
|
Reference in New Issue
Block a user