aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/modules/gnome.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/modules/gnome.py')
-rw-r--r--mesonbuild/modules/gnome.py40
1 files changed, 5 insertions, 35 deletions
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
index 1f4f140..4cfbe26 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
@@ -325,36 +325,6 @@ class GnomeModule(ExtensionModule):
mlog.bold('https://github.com/mesonbuild/meson/issues/1387'),
once=True)
- def _get_dep(self, state: 'ModuleState', depname: str, native: bool = False,
- required: bool = True) -> Dependency:
- kwargs = {'native': native, 'required': required}
- # FIXME: Even if we fix the function, mypy still can't figure out what's
- # going on here. And we really dont want to call interpreter
- # implementations of meson functions anyway.
- return self.interpreter.func_dependency(state.current_node, [depname], kwargs) # type: ignore
-
- def _get_native_binary(self, state: 'ModuleState', name: str, depname: str,
- varname: str, required: bool = True) -> T.Union[ExternalProgram, OverrideProgram, 'build.Executable']:
- # Look in overrides in case glib/gtk/etc are built as subproject
- prog = self.interpreter.program_from_overrides([name], [])
- if prog is not None:
- return prog
-
- # Look in machine file
- prog_list = state.environment.lookup_binary_entry(MachineChoice.HOST, name)
- if prog_list is not None:
- return ExternalProgram.from_entry(name, prog_list)
-
- # Check if pkgconfig has a variable
- dep = self._get_dep(state, depname, native=True, required=False)
- if dep.found() and dep.type_name == 'pkgconfig':
- value = dep.get_pkgconfig_variable(varname, [], None)
- if value:
- return ExternalProgram(name, [value])
-
- # Normal program lookup
- return state.find_program(name, required=required)
-
@typed_kwargs(
'gnome.post_install',
KwargInfo('glib_compile_schemas', bool, default=False),
@@ -369,7 +339,7 @@ class GnomeModule(ExtensionModule):
datadir_abs = os.path.join(state.environment.get_prefix(), state.environment.get_datadir())
if kwargs['glib_compile_schemas'] and not self.install_glib_compile_schemas:
self.install_glib_compile_schemas = True
- prog = self._get_native_binary(state, 'glib-compile-schemas', 'gio-2.0', 'glib_compile_schemas')
+ prog = state.find_tool('glib-compile-schemas', 'gio-2.0', 'glib_compile_schemas')
schemasdir = os.path.join(datadir_abs, 'glib-2.0', 'schemas')
script = state.backend.get_executable_serialisation([prog, schemasdir])
script.skip_if_destdir = True
@@ -377,7 +347,7 @@ class GnomeModule(ExtensionModule):
for d in kwargs['gio_querymodules']:
if d not in self.install_gio_querymodules:
self.install_gio_querymodules.append(d)
- prog = self._get_native_binary(state, 'gio-querymodules', 'gio-2.0', 'gio_querymodules')
+ prog = state.find_tool('gio-querymodules', 'gio-2.0', 'gio_querymodules')
moduledir = os.path.join(state.environment.get_prefix(), d)
script = state.backend.get_executable_serialisation([prog, moduledir])
script.skip_if_destdir = True
@@ -798,9 +768,9 @@ class GnomeModule(ExtensionModule):
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 = self._get_dep(state, 'gobject-introspection-1.0')
- self.giscanner = self._get_native_binary(state, 'g-ir-scanner', 'gobject-introspection-1.0', 'g_ir_scanner')
- self.gicompiler = self._get_native_binary(state, 'g-ir-compiler', 'gobject-introspection-1.0', 'g_ir_compiler')
+ 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')
return self.gir_dep, self.giscanner, self.gicompiler
@functools.lru_cache(maxsize=None)