aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2016-09-02 16:39:16 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2016-09-02 18:52:45 +0100
commit00e5962aaada57215eaf32879041f92004e011d8 (patch)
tree6bbd52914314fe881e5ef092d1716346e2622410 /mesonbuild/interpreter.py
parentc8213aaf1e3503855377e1372e1a7bbb19c5463d (diff)
downloadmeson-00e5962aaada57215eaf32879041f92004e011d8.zip
meson-00e5962aaada57215eaf32879041f92004e011d8.tar.gz
meson-00e5962aaada57215eaf32879041f92004e011d8.tar.bz2
Add support to integer modulo operator
Having support for the '%' operator makes it easier to implement even/odd version checks, like: enable_debug = get_option('enable-debug') if enable_debug == 'auto' if minor_version % 2 == 0 enable_debug = 'minimum' else enable_debug = 'yes' endif endif which would be impossible without resorting to less obvious long-hand forms like: a - (b * (a / b))
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index ac95e15..535a3f0 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -2595,6 +2595,10 @@ class Interpreter():
if not isinstance(l, int) or not isinstance(r, int):
raise InvalidCode('Division works only with integers.')
return l // r
+ elif cur.operation == 'mod':
+ if not isinstance(l, int) or not isinstance(r, int):
+ raise InvalidCode('Modulo works only with integers.')
+ return l % r
else:
raise InvalidCode('You broke me.')