aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHemmo Nieminen <hemmo.nieminen@iki.fi>2017-12-17 21:06:06 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2017-12-17 21:06:06 +0200
commitd232a80e90a9bd4e7c677c695a9c230ac1ec8361 (patch)
treef0ea383bc6cce320e7e68d3d1817bae1e5ca03d1
parent202b2fedf300f62b8c1c3b52cd5320845038d85e (diff)
downloadmeson-d232a80e90a9bd4e7c677c695a9c230ac1ec8361.zip
meson-d232a80e90a9bd4e7c677c695a9c230ac1ec8361.tar.gz
meson-d232a80e90a9bd4e7c677c695a9c230ac1ec8361.tar.bz2
Allow value 'if-release' for b_ndebug project option. (#1896)
When set, NDEBUG will be automatically defined for for release builds but not for other build types.
-rw-r--r--docs/markdown/snippets/if-release.md7
-rw-r--r--mesonbuild/compilers/compilers.py7
2 files changed, 10 insertions, 4 deletions
diff --git a/docs/markdown/snippets/if-release.md b/docs/markdown/snippets/if-release.md
new file mode 100644
index 0000000..96e12ef
--- /dev/null
+++ b/docs/markdown/snippets/if-release.md
@@ -0,0 +1,7 @@
+## b_ndebug : if-release
+
+The value `if-release` can be given for the `b_ndebug` project option.
+
+This will make the `NDEBUG` pre-compiler macro to be defined for release
+type builds as if the `b_ndebug` project option had had the value `true`
+defined for it.
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 011c222..4079d0f 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -224,9 +224,8 @@ base_options = {'b_pch': coredata.UserBooleanOption('b_pch', 'Use precompiled he
'b_colorout': coredata.UserComboOption('b_colorout', 'Use colored output',
['auto', 'always', 'never'],
'always'),
- 'b_ndebug': coredata.UserBooleanOption('b_ndebug',
- 'Disable asserts',
- False),
+ 'b_ndebug': coredata.UserComboOption('b_ndebug', 'Disable asserts',
+ ['true', 'false', 'if-release'], 'false'),
'b_staticpic': coredata.UserBooleanOption('b_staticpic',
'Build static libraries as position independent',
True),
@@ -313,7 +312,7 @@ def get_base_compile_args(options, compiler):
except KeyError:
pass
try:
- if options['b_ndebug'].value:
+ if options['b_ndebug'].value == 'true' or (options['b_ndebug'].value == 'if-release' and options['buildtype'] == 'release'):
args += ['-DNDEBUG']
except KeyError:
pass