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']
|
escape = env['ESCAPE']
|
||||||
def subst(matchobj):
|
def subst(matchobj):
|
||||||
key = matchobj.group(1)
|
key = matchobj.group(1)
|
||||||
val = env.get(key)
|
if key not in env:
|
||||||
if val is None:
|
|
||||||
return matchobj.group(0)
|
return matchobj.group(0)
|
||||||
else:
|
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 = re.sub(r'^CONFIG_(\w+)=.*', subst, template, flags=re.M)
|
||||||
config_file.write(config)
|
config_file.write(config)
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in a new issue