scons: Fix source lists parsing on Windows.
/ vs \ mismatch was causing .objs to be put in the source tree, causing breakeage when doing different build types in the same tree (eg., debug vs release). Fix this by normalizing everything to / slashes. It's probably a good idea to purge all .objs from source tree to prevent issues completely.
This commit is contained in:
parent
60315e3eaf
commit
0642437606
|
@ -240,6 +240,11 @@ def parse_source_list(env, filename, names=None):
|
|||
top_srcdir = env.Dir('#').abspath
|
||||
top_builddir = os.path.join(top_srcdir, env['build_dir'])
|
||||
|
||||
# Normalize everything to / slashes
|
||||
cur_srcdir = cur_srcdir.replace('\\', '/')
|
||||
top_srcdir = top_srcdir.replace('\\', '/')
|
||||
top_builddir = top_builddir.replace('\\', '/')
|
||||
|
||||
# Populate the symbol table of the Makefile parser.
|
||||
parser.add_symbol('top_srcdir', top_srcdir)
|
||||
parser.add_symbol('top_builddir', top_builddir)
|
||||
|
@ -263,8 +268,8 @@ def parse_source_list(env, filename, names=None):
|
|||
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.
|
||||
# Automake puts build output on a `src` subdirectory, but
|
||||
# SCons does not, 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
|
||||
|
|
Loading…
Reference in New Issue