Meson: Add glib_checks and glib_asserts options

In cases where performance are critical it can be useful to disable
checks and asserts. GStreamer has those options too, using the same name
and setting them yielding means we can set those options on the main
project (e.g. gst-build) and glib will inherit the same value when built
as subproject.
This commit is contained in:
Xavier Claessens 2020-04-08 15:14:31 -04:00
parent 1a3a1865eb
commit be3728b9fa
4 changed files with 27 additions and 5 deletions

View File

@ -178,8 +178,6 @@ G_DISABLE_ASSERT:
extends: .build
image: $FEDORA_IMAGE
stage: build
variables:
CPPFLAGS: "-DG_DISABLE_ASSERT"
script:
- meson ${MESON_COMMON_OPTIONS}
--werror
@ -187,6 +185,7 @@ G_DISABLE_ASSERT:
-Ddtrace=true
-Dfam=true
-Dinstalled_tests=true
-Dglib_assert=false
_build
- ninja -C _build
- bash -x ./.gitlab-ci/run-tests.sh

View File

@ -5,9 +5,10 @@ GLib's configure options and corresponding macros
none
--buildtype={debug,debugoptimized} [debugoptimized is the default]
-DG_ENABLE_DEBUG -g
Available to define yourself:
-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS
-Dglib_asserts=false
-DG_DISABLE_ASSERT
-Dglib_checks=false
-DG_DISABLE_CHECKS
Besides these, there are some local feature specific options, but my main
focus here is to concentrate on macros that affect overall GLib behaviour

View File

@ -233,6 +233,16 @@ elif get_option('optimization') in ['2', '3', 's']
message('Disabling cast checks')
endif
if not get_option('glib_assert')
glib_debug_cflags += ['-DG_DISABLE_ASSERT']
message('Disabling GLib asserts')
endif
if not get_option('glib_checks')
glib_debug_cflags += ['-DG_DISABLE_CHECKS']
message('Disabling GLib checks')
endif
add_project_arguments(glib_debug_cflags, language: 'c')
# check for header files

View File

@ -94,3 +94,15 @@ option('oss_fuzz',
type : 'feature',
value : 'disabled',
description : 'Indicate oss-fuzz build environment')
option('glib_assert',
type : 'boolean',
value : true,
yield : true,
description : 'Enable GLib assertion (see docs/macros.txt)')
option('glib_checks',
type : 'boolean',
value : true,
yield : true,
description : 'Enable GLib checks such as API guards (see docs/macros.txt)')