diff options
author | marha <marha@users.sourceforge.net> | 2012-08-17 10:54:15 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2012-08-17 10:54:15 +0200 |
commit | 5d9b8cf0e4054e774f906cde9dd6b61ceca72d44 (patch) | |
tree | 2a15e0622fdb009a0aac84019dce232a245f2e0b /mesalib/scons/custom.py | |
parent | 4aac32998c2b173b84aec0b020aa086fef4b1423 (diff) | |
download | vcxsrv-5d9b8cf0e4054e774f906cde9dd6b61ceca72d44.tar.gz vcxsrv-5d9b8cf0e4054e774f906cde9dd6b61ceca72d44.tar.bz2 vcxsrv-5d9b8cf0e4054e774f906cde9dd6b61ceca72d44.zip |
fontconfig mesa git update 17 Aug 2012
Diffstat (limited to 'mesalib/scons/custom.py')
-rw-r--r-- | mesalib/scons/custom.py | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/mesalib/scons/custom.py b/mesalib/scons/custom.py index 43e7727aa..277c05b67 100644 --- a/mesalib/scons/custom.py +++ b/mesalib/scons/custom.py @@ -236,8 +236,13 @@ def parse_source_list(env, filename, names=None): 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']) + cur_srcdir = env.Dir('.').srcnode().abspath + top_srcdir = env.Dir('#').abspath + top_builddir = os.path.join(top_srcdir, env['build_dir']) + + # Populate the symbol table of the Makefile parser. + parser.add_symbol('top_srcdir', top_srcdir) + parser.add_symbol('top_builddir', top_builddir) sym_table = parser.parse(src.abspath) @@ -253,7 +258,21 @@ def parse_source_list(env, filename, names=None): src_lists = {} for sym in symbols: val = sym_table[sym] - src_lists[sym] = [f for f in val.split(' ') if f] + srcs = [] + for f in val.split(): + if f: + # Process source paths + if f.startswith(top_builddir + '/src'): + # Automake puts build output on a `src` subdirectory, bue + # SCons does no, so strip it here. + f = top_builddir + f[len(top_builddir + '/src'):] + if f.startswith(cur_srcdir + '/'): + # Prefer relative source paths, as absolute files tend to + # cause duplicate actions. + f = f[len(cur_srcdir + '/'):] + srcs.append(f) + + src_lists[sym] = srcs # if names are given, concatenate the lists if names: |