diff options
Diffstat (limited to 'src/engine/SCons/Scanner/Prog.py')
-rw-r--r-- | src/engine/SCons/Scanner/Prog.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/engine/SCons/Scanner/Prog.py b/src/engine/SCons/Scanner/Prog.py index 49e93a5..848f874 100644 --- a/src/engine/SCons/Scanner/Prog.py +++ b/src/engine/SCons/Scanner/Prog.py @@ -38,6 +38,15 @@ def ProgramScanner(**kw): ps = SCons.Scanner.Base(scan, "ProgramScanner", **kw) return ps +def _split_libs(env, libs): + """ + Substitute environment variables and split into list. + """ + libs = env.subst(libs) + if SCons.Util.is_String(libs): + libs = libs.split() + return libs + def scan(node, env, libpath = ()): """ This scanner scans program files for static-library @@ -51,9 +60,11 @@ def scan(node, env, libpath = ()): # There are no LIBS in this environment, so just return a null list: return [] if SCons.Util.is_String(libs): - libs = libs.split() + libs = _split_libs(env, libs) else: libs = SCons.Util.flatten(libs) + libs = map(lambda x: _split_libs(env, x) if SCons.Util.is_String(x) else x, libs) + libs = SCons.Util.flatten(libs) try: prefix = env['LIBPREFIXES'] @@ -83,7 +94,6 @@ def scan(node, env, libpath = ()): adjustixes = SCons.Util.adjustixes for lib in libs: if SCons.Util.is_String(lib): - lib = env.subst(lib) for pref, suf in pairs: l = adjustixes(lib, pref, suf) l = find_file(l, libpath, verbose=print_find_libs) |