mapnik-config: fix substitution of environment variables
Simply calling str(val) doesn't work, because if the value happens to be a SCons.Util.CLVar, it may contain not just plain strings, but also tuples appended by SCons.Environment.ParseFlags. For example "-isysroot /foo" becomes CLVar: [("-isysroot", "/foo")] CLVar.__str__ supports only string elements, nothing else.
This commit is contained in:
parent
b22d5d2fac
commit
39202f5ac0
1 changed files with 3 additions and 3 deletions
|
@ -59,11 +59,11 @@ def write_config(env, template_filename, config_filename):
|
|||
escape = env['ESCAPE']
|
||||
def subst(matchobj):
|
||||
key = matchobj.group(1)
|
||||
val = env.get(key)
|
||||
if val is None:
|
||||
if key not in env:
|
||||
return matchobj.group(0)
|
||||
else:
|
||||
return 'CONFIG_%s=%s' % (key, escape(str(val)))
|
||||
val = env.subst('$' + key)
|
||||
return 'CONFIG_%s=%s' % (key, escape(val))
|
||||
config = re.sub(r'^CONFIG_(\w+)=.*', subst, template, flags=re.M)
|
||||
config_file.write(config)
|
||||
try:
|
||||
|
|
Loading…
Reference in a new issue