[libgweather/ebassi/gtk4: 42/56] build: Add option to disable introspection
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgweather/ebassi/gtk4: 42/56] build: Add option to disable introspection
- Date: Wed, 13 Oct 2021 12:02:16 +0000 (UTC)
commit f9736304c73282ccf1f5c3d8e6d1443fc3189799
Author: Emmanuele Bassi <ebassi gnome org>
Date: Tue Oct 12 12:44:19 2021 +0100
build: Add option to disable introspection
When building libgweather as a subproject or as a Flatpak module we may
want to disable generating the introspection data if we know we're only
ever going to consume the C API.
Disabling introspection will disable the documentation and the VAPI file
generation as a side effect.
doc/meson.build | 2 +-
libgweather/meson.build | 53 +++++++++++++++++++++++++++++++------------------
meson.build | 10 ++--------
meson_options.txt | 2 ++
4 files changed, 39 insertions(+), 28 deletions(-)
---
diff --git a/doc/meson.build b/doc/meson.build
index 6a98ba80..7e18715b 100644
--- a/doc/meson.build
+++ b/doc/meson.build
@@ -1,4 +1,4 @@
-if get_option('gtk_doc')
+if get_option('gtk_doc') and get_option('introspection')
dependency('gi-docgen', version: '>= 2021.6',
fallback: ['gi-docgen', 'dummy_dep'],
)
diff --git a/libgweather/meson.build b/libgweather/meson.build
index 68518676..a534bfd6 100644
--- a/libgweather/meson.build
+++ b/libgweather/meson.build
@@ -176,24 +176,39 @@ lib_libgweather = shared_library('gweather-3',
install: true,
)
-gweather_gir = gnome.generate_gir(lib_libgweather,
- sources: introspection_sources,
- dependencies: deps_libgweather,
- nsversion: '3.0',
- namespace: 'GWeather',
- includes: ['GObject-2.0', 'Gtk-3.0'],
- symbol_prefix: 'gweather',
- identifier_prefix: 'GWeather',
- export_packages: 'gweather-3.0',
- header: 'libgweather/gweather.h',
- extra_args: [
- '--warn-all',
- '--quiet',
- '-DGWEATHER_COMPILATION',
- ],
- fatal_warnings: get_option('werror'),
- install: true,
-)
+g_ir_scanner = find_program('g-ir-scanner', required: get_option('introspection'))
+build_gir = get_option('introspection') and g_ir_scanner.found() and not meson.is_cross_build()
+
+enable_vala = get_option('enable_vala')
+vapigen = find_program('vapigen', required: enable_vala == 'true')
+if enable_vala == 'auto' or enable_vala == 'true'
+ build_vapi = vapigen.found() and get_option('introspection')
+else
+ build_vapi = false
+endif
+
+if build_gir
+ gweather_gir = gnome.generate_gir(lib_libgweather,
+ sources: introspection_sources,
+ dependencies: deps_libgweather,
+ nsversion: '3.0',
+ namespace: 'GWeather',
+ includes: ['GObject-2.0', 'Gtk-3.0'],
+ symbol_prefix: 'gweather',
+ identifier_prefix: 'GWeather',
+ export_packages: 'gweather-3.0',
+ header: 'libgweather/gweather.h',
+ extra_args: [
+ '--warn-all',
+ '--quiet',
+ '-DGWEATHER_COMPILATION',
+ ],
+ fatal_warnings: get_option('werror'),
+ install: true,
+ )
+else
+ gweather_gir = []
+endif
libgweather_dep = declare_dependency(
sources: [gweather_enum_types[1], gweather_gir],
@@ -204,7 +219,7 @@ libgweather_dep = declare_dependency(
],
)
-if enable_vala
+if build_vapi and build_gir
gnome.generate_vapi('gweather-3.0',
sources: gweather_gir[0],
packages: ['gobject-2.0', 'gtk+-3.0'],
diff --git a/meson.build b/meson.build
index eca7b9d2..136dcdc4 100644
--- a/meson.build
+++ b/meson.build
@@ -65,13 +65,6 @@ else
endif
endif
-enable_vala = get_option('enable_vala')
-if enable_vala == 'auto'
- enable_vala = find_program('vapigen', required: false).found()
-else
- enable_vala = enable_vala != 'false'
-endif
-
gen_locations_variant = find_program('build-aux/meson/gen_locations_variant.py')
subdir('data')
@@ -114,7 +107,8 @@ summary({
'Debug': get_option('debug'),
'Optimization': get_option('optimization'),
'Glade catalog': enable_glade_catalog,
- 'Generate VAPI': enable_vala,
+ 'Introspection': build_gir,
+ 'Generate VAPI': build_vapi,
'API reference': get_option('gtk_doc'),
},
section: 'Build',
diff --git a/meson_options.txt b/meson_options.txt
index 19b2c6a7..5385be0b 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -8,3 +8,5 @@ option('enable_vala', type: 'combo', choices : ['true', 'false', 'auto'], value
description: 'Install vala bindings')
option('gtk_doc', type: 'boolean', value: false,
description: 'Whether to generate the API reference')
+option('introspection', type: 'boolean', value: true,
+ description: 'Whether to generate introspection data')
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]