summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Scanner/Prog.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/SCons/Scanner/Prog.py')
-rw-r--r--src/engine/SCons/Scanner/Prog.py14
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)