aboutsummaryrefslogtreecommitdiff
path: root/backends.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-06-02 16:01:29 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2013-06-02 16:01:29 +0300
commita51036fd7de1dcb3620a05e737a82488b12c95d7 (patch)
tree6a91c7e757770b745ea2fab05f4b048ca058d93d /backends.py
parented5528ba18c9df82dbe4f6947b9040d21a7ffb21 (diff)
downloadmeson-a51036fd7de1dcb3620a05e737a82488b12c95d7.zip
meson-a51036fd7de1dcb3620a05e737a82488b12c95d7.tar.gz
meson-a51036fd7de1dcb3620a05e737a82488b12c95d7.tar.bz2
Reworked configure file generation.
Diffstat (limited to 'backends.py')
-rwxr-xr-xbackends.py21
1 files changed, 13 insertions, 8 deletions
diff --git a/backends.py b/backends.py
index 6684aea..7bea10a 100755
--- a/backends.py
+++ b/backends.py
@@ -57,16 +57,21 @@ def do_mesondefine(line, confdata):
if len(arr) != 2:
raise interpreter.InvalidArguments('#mesondefine does not contain exactly two tokens.')
varname = arr[1]
- v = confdata.get(varname, False)
+ try:
+ v = confdata.get(varname)
+ except KeyError:
+ return '/* undef %s */\n' % varname
+ if isinstance(v, nodes.BoolStatement):
+ v = v.get_value()
if isinstance(v, bool):
- value= v
- elif isinstance(v, nodes.BoolStatement):
- value = v.get_value()
+ if v:
+ return '#define %s\n' % varname
+ else:
+ return '#undef %s\n' % varname
+ elif isinstance(v, int):
+ return '#define %s %d\n' % (varname, v)
else:
- raise interpreter.InvalidArguments('#mesondefine argument "%s" is not boolean.' % varname)
- if value:
- return '#define %s\n' % varname
- return '/* undef %s */\n' % varname
+ raise interpreter.InvalidArguments('#mesondefine argument "%s" is of unknown type.' % varname)
def do_conf_file(src, dst, confdata):
data = open(src).readlines()