aboutsummaryrefslogtreecommitdiff
path: root/backends.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-05-24 22:21:48 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2013-05-24 22:21:48 +0300
commit6ff098bea6c2722b659d8f8b03604fc365950045 (patch)
treec66bd65f826c2b8b984aa4e6d5f9d20618970865 /backends.py
parent4bbc75427a87b27a6d8533ab9d6150b256cc41be (diff)
downloadmeson-6ff098bea6c2722b659d8f8b03604fc365950045.zip
meson-6ff098bea6c2722b659d8f8b03604fc365950045.tar.gz
meson-6ff098bea6c2722b659d8f8b03604fc365950045.tar.bz2
Store configuration values in an object rather than global variables.
Diffstat (limited to 'backends.py')
-rwxr-xr-xbackends.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/backends.py b/backends.py
index 0ea9356..1abfdc2 100755
--- a/backends.py
+++ b/backends.py
@@ -31,12 +31,12 @@ else:
def ninja_quote(text):
return text.replace(' ', '$ ')
-def do_replacement(regex, line, variables):
+def do_replacement(regex, line, confdata):
match = re.search(regex, line)
while match:
varname = match.group(1)
- if varname in variables:
- var = variables[varname]
+ if varname in confdata.keys():
+ var = confdata.get(varname)
if isinstance(var, str):
pass
elif isinstance(var, nodes.StringStatement):
@@ -49,12 +49,12 @@ def do_replacement(regex, line, variables):
match = re.search(regex, line)
return line
-def do_mesondefine(line, variables):
+def do_mesondefine(line, confdata):
arr = line.split()
if len(arr) != 2:
raise interpreter.InvalidArguments('#mesondefine does not contain exactly two tokens.')
varname = arr[1]
- v = variables.get(varname, False)
+ v = confdata.get(varname, False)
if isinstance(v, bool):
value= v
elif isinstance(v, nodes.BoolStatement):
@@ -65,15 +65,15 @@ def do_mesondefine(line, variables):
return '#define %s\n' % varname
return '/* undef %s */\n' % varname
-def do_conf_file(src, dst, variables):
+def do_conf_file(src, dst, confdata):
data = open(src).readlines()
regex = re.compile('@(.*?)@')
result = []
for line in data:
if line.startswith('#mesondefine'):
- line = do_mesondefine(line, variables)
+ line = do_mesondefine(line, confdata)
else:
- line = do_replacement(regex, line, variables)
+ line = do_replacement(regex, line, confdata)
result.append(line)
dst_tmp = dst + '~'
open(dst_tmp, 'w').writelines(result)
@@ -209,7 +209,8 @@ class Backend():
cf.get_subdir())
os.makedirs(outdir, exist_ok=True)
outfile = os.path.join(outdir, cf.get_target_name())
- do_conf_file(infile, outfile, self.interpreter.get_variables())
+ confdata = cf.get_configuration_data()
+ do_conf_file(infile, outfile, confdata)
class NinjaBuildElement():
def __init__(self, outfilenames, rule, infilenames):