aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/modules
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2022-02-28 12:04:27 -0500
committerXavier Claessens <xclaesse@gmail.com>2022-04-04 09:17:34 -0400
commit7954a4c9cbf8355d8c8ea9b3d98df45d9f96f66e (patch)
tree9323406b7184b8e1b02588499fcd0d080b16116a /mesonbuild/modules
parent105bbaabdda4656194e97729f67bba9c0f6c8ae1 (diff)
downloadmeson-7954a4c9cbf8355d8c8ea9b3d98df45d9f96f66e.zip
meson-7954a4c9cbf8355d8c8ea9b3d98df45d9f96f66e.tar.gz
meson-7954a4c9cbf8355d8c8ea9b3d98df45d9f96f66e.tar.bz2
wayland: Also lookup scanner in pkgconfig
This moves generally useful logic from GNOME module's _get_native_binary() into find_program() implementation. We could decide later to expose it as public API.
Diffstat (limited to 'mesonbuild/modules')
-rw-r--r--mesonbuild/modules/__init__.py6
-rw-r--r--mesonbuild/modules/gnome.py22
-rw-r--r--mesonbuild/modules/unstable_wayland.py4
3 files changed, 10 insertions, 22 deletions
diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py
index 71536c1..967c2b3 100644
--- a/mesonbuild/modules/__init__.py
+++ b/mesonbuild/modules/__init__.py
@@ -82,9 +82,11 @@ class ModuleState:
def find_program(self, prog: T.Union[str, T.List[str]], required: bool = True,
version_func: T.Optional[T.Callable[['ExternalProgram'], str]] = None,
wanted: T.Optional[str] = None, silent: bool = False,
- for_machine: MachineChoice = MachineChoice.HOST) -> 'ExternalProgram':
+ for_machine: MachineChoice = MachineChoice.HOST,
+ depname: T.Optional[str] = None, varname: T.Optional[str] = None) -> 'ExternalProgram':
return self._interpreter.find_program_impl(prog, required=required, version_func=version_func,
- wanted=wanted, silent=silent, for_machine=for_machine)
+ wanted=wanted, silent=silent, for_machine=for_machine,
+ depname=depname, varname=varname)
def test(self, args: T.Tuple[str, T.Union[build.Executable, build.Jar, 'ExternalProgram', mesonlib.File]],
workdir: T.Optional[str] = None,
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
index 8c63647..2e7b2a7 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
@@ -321,25 +321,9 @@ class GnomeModule(ExtensionModule):
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)
+ return state.find_program(name, for_machine=MachineChoice.BUILD,
+ required=required,
+ depname=depname, varname=varname)
@typed_kwargs(
'gnome.post_install',
diff --git a/mesonbuild/modules/unstable_wayland.py b/mesonbuild/modules/unstable_wayland.py
index c3e29f4..332d938 100644
--- a/mesonbuild/modules/unstable_wayland.py
+++ b/mesonbuild/modules/unstable_wayland.py
@@ -45,7 +45,9 @@ class WaylandModule(ExtensionModule):
)
def scan_xml(self, state, args, kwargs):
if self.scanner_bin is None:
- self.scanner_bin = state.find_program('wayland-scanner', for_machine=MachineChoice.BUILD)
+ self.scanner_bin = state.find_program('wayland-scanner',
+ for_machine=MachineChoice.BUILD,
+ depname='wayland-scanner')
scope = 'public' if kwargs['public'] else 'private'
sides = [i for i in ['client', 'server'] if kwargs[i]]