meson: Convert common options to feature options
authorNirbheek Chauhan <nirbheek@centricular.com>
Wed, 25 Jul 2018 11:52:20 +0000 (17:22 +0530)
committerNirbheek Chauhan <nirbheek@centricular.com>
Fri, 27 Jul 2018 13:18:46 +0000 (18:48 +0530)
These are necessary for gst-build to set options correctly. The
remaining automagic option is cgroup support in examples.

https://bugzilla.gnome.org/show_bug.cgi?id=795107

meson.build
meson_options.txt

index 228b256..91551c8 100644 (file)
@@ -1,6 +1,6 @@
 project('gst-rtsp-server', 'c',
   version : '1.15.0.1',
-  meson_version : '>= 0.46.0',
+  meson_version : '>= 0.47',
   default_options : ['warning_level=1', 'buildtype=debugoptimized'])
 
 gst_version = meson.project_version()
@@ -115,9 +115,9 @@ gstapp_dep = dependency('gstreamer-app-1.0', version : gst_req,
 gstnet_dep = dependency('gstreamer-net-1.0', version : gst_req,
   fallback : ['gstreamer', 'gst_net_dep'])
 
-gir = find_program('g-ir-scanner', required : false)
+gir = find_program('g-ir-scanner', required : get_option('introspection'))
 gnome = import('gnome')
-build_gir = gir.found() and not meson.is_cross_build() and get_option('introspection')
+build_gir = gir.found() and not meson.is_cross_build()
 gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \
     'g_setenv("GST_REGISTRY_1.0", "@0@", TRUE);'.format(meson.current_build_dir() + '/gir_empty_registry.reg') + \
     'g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);' + \
@@ -128,7 +128,7 @@ subdir('gst')
 if get_option('tests')
   subdir('tests')
 endif
-if get_option('examples')
+if not get_option('examples').disabled()
   subdir('examples')
 endif
 subdir('pkgconfig')
index c8c5282..eb6f20f 100644 (file)
@@ -1,5 +1,5 @@
-option('introspection', type : 'boolean', value : true, yield : true,
-        description : 'Generate gobject-introspection bindings')
+option('introspection', type : 'feature', value : 'auto', yield : true,
+       description : 'Generate gobject-introspection bindings')
 option('package-name', type : 'string', yield : true,
        description : 'package name to use in plugins')
 option('package-origin', type : 'string',
@@ -7,5 +7,5 @@ option('package-origin', type : 'string',
        description : 'package origin URL to use in plugins')
 option('tests', type : 'boolean', value : true,
        description : 'Build and enable unit tests')
-option('examples', type : 'boolean', value : true, yield : true,
+option('examples', type : 'feature', value : 'auto', yield : true,
        description : 'Build the examples')