From 04abc6b6c1d987ec79264272328c2ff9ba898bda Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Thu, 3 Oct 2024 13:39:30 +0100 Subject: [PATCH] build: Check for gobject-introspection-1.0 as well as g-ir-scanner Both are needed in practice to build the GIR files. Signed-off-by: Philip Withnall Fixes: #3488 --- meson.build | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/meson.build b/meson.build index 748831ac5..777524178 100644 --- a/meson.build +++ b/meson.build @@ -2605,9 +2605,18 @@ if enable_systemtap stp_cdata.set('LT_REVISION', micro_version) endif -# introspection -gir_scanner = find_program('g-ir-scanner', required: get_option('introspection'), version: '>= 1.80.0') -enable_gir = get_option('introspection').allowed() and gir_scanner.found() and meson.can_run_host_binaries() +# Introspection +# +# We depend on g-ir-scanner from gobject-introspection-1.0 to scan our source +# to build GIR files. We then use gi-compile-repository from the local build +# tree to build the typelibs (rather than using g-ir-compiler from +# gobject-introspection). However, we use Meson’s gnome.generate_gir() function, +# which adds a hard dependency on gobject-introspection-1.0, so we’d better +# check for that here. +gobject_introspection_required_version = '>= 1.80.0' +gir_scanner = find_program('g-ir-scanner', required: get_option('introspection'), version: gobject_introspection_required_version) +gobject_introspection = dependency('gobject-introspection-1.0', required: get_option('introspection'), version: gobject_introspection_required_version) +enable_gir = get_option('introspection').allowed() and gir_scanner.found() and gobject_introspection.found() and meson.can_run_host_binaries() if get_option('introspection').enabled() and not meson.can_run_host_binaries() error('Running binaries on the build host needs to be supported to build with -Dintrospection=enabled')