meson: add options to disable gobject cast checks and glib asserts
authorTim-Philipp Müller <tim@centricular.com>
Sat, 18 Aug 2018 20:15:23 +0000 (21:15 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 18 Aug 2018 20:15:23 +0000 (21:15 +0100)
... and define G_DISABLE_DEPRECATED for development versions,
like we do in autotools.

meson.build
meson_options.txt

index 97ac896..6f720e3 100644 (file)
@@ -14,6 +14,7 @@ gst_version_micro = version_arr[2].to_int()
 else
   gst_version_nano = 0
 endif
+gst_version_is_dev = gst_version_minor % 2 == 1 and gst_version_micro < 90
 
 have_cxx = add_languages('cpp', required : false)
 
@@ -228,6 +229,24 @@ foreach extra_arg : warning_c_flags
   endif
 endforeach
 
+# Define G_DISABLE_DEPRECATED for development versions
+if gst_version_is_dev
+  message('Disabling deprecated GLib API')
+  add_project_arguments('-DG_DISABLE_DEPRECATED', language: 'c')
+endif
+
+cast_checks = get_option('gobject-cast-checks')
+if cast_checks.disabled() or (cast_checks.auto() and not gst_version_is_dev)
+  message('Disabling GLib cast checks')
+  add_project_arguments('-DG_DISABLE_CAST_CHECKS', language: 'c')
+endif
+
+glib_asserts = get_option('glib-asserts')
+if glib_asserts.disabled() or (glib_asserts.auto() and not gst_version_is_dev)
+  message('Disabling GLib asserts')
+  add_project_arguments('-DG_DISABLE_ASSERT', language: 'c')
+endif
+
 presetdir = join_paths(get_option('datadir'), 'gstreamer-' + api_version, 'presets')
 
 pkgconfig = import('pkgconfig')
index 31c860a..c72110a 100644 (file)
@@ -18,10 +18,16 @@ option('mpeg2dec', type : 'feature', value : 'auto', description : 'MPEG 2 video
 option('sidplay', type : 'feature', value : 'auto', description : 'Commodore 64 audio decoder plugin')
 option('x264', type : 'feature', value : 'auto', description : 'H.264 video encoder plugin')
 
-# Common options
+# Common feature options
 option('nls', type : 'feature', value : 'auto', yield: true,
        description : 'Enable native language support (translations)')
 option('orc', type : 'feature', value : 'auto', yield : true)
+option('gobject-cast-checks', type : 'feature', value : 'auto', yield : true,
+       description: 'Enable run-time GObject cast checks (auto = enabled for development, disabled for stable releases')
+option('glib-asserts', type : 'feature', value : 'enabled', yield : true,
+       description: 'Enable GLib assertion (auto = enabled for development, disabled for stable releases')
+
+# Common options
 option('package-name', type : 'string', yield : true,
        description : 'package name to use in plugins')
 option('package-origin', type : 'string', value : 'Unknown package origin', yield: true,