diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index b6c9aebbdb49..c9eae36d8467 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -789,10 +789,13 @@ def get_devenv(self) -> T.Optional[build.EnvironmentVariables]: def _get_gir_dep(self, state: 'ModuleState') -> T.Tuple[Dependency, T.Union[build.Executable, 'ExternalProgram', 'OverrideProgram'], T.Union[build.Executable, 'ExternalProgram', 'OverrideProgram']]: - if not self.gir_dep: - self.gir_dep = state.dependency('gobject-introspection-1.0') - self.giscanner = state.find_tool('g-ir-scanner', 'gobject-introspection-1.0', 'g_ir_scanner') - self.gicompiler = state.find_tool('g-ir-compiler', 'gobject-introspection-1.0', 'g_ir_compiler') + if not self.gir_dep or not self.gir_dep.found(): + for (dep, req) in [('gobject-introspection-no-typelibs-1.0', False), ('gobject-introspection-1.0', True)]: + self.gir_dep = state.dependency(dep, required=req) + self.giscanner = state.find_tool('g-ir-scanner', dep, 'g_ir_scanner', required=req) + self.gicompiler = state.find_tool('g-ir-compiler', dep, 'g_ir_compiler', required=req) + if self.gir_dep.found(): + break return self.gir_dep, self.giscanner, self.gicompiler @functools.lru_cache(maxsize=None)