1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- From 49b1c8df7e4ff3a441d831f926d87920952025bf Mon Sep 17 00:00:00 2001
- From: James Hilliard <james.hilliard1@gmail.com>
- Date: Sat, 2 May 2020 20:43:36 -0600
- Subject: [PATCH] Allow overriding g-ir-scanner and g-ir-compiler binaries.
- This is useful when one needs to force meson to use wrappers for cross
- compilation.
- Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
- [james.hilliard1@gmail.com: backport and largely adapt upstream commit
- 1e073c4c1bd7de06bc74d84e3807c9b210e57a22, as the version in master has
- undergone haevy refactorisation]
- ---
- mesonbuild/modules/gnome.py | 34 +++++++++++++++++++++-------------
- 1 file changed, 21 insertions(+), 13 deletions(-)
- diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
- index a00005588..b6d7cc141 100644
- --- a/mesonbuild/modules/gnome.py
- +++ b/mesonbuild/modules/gnome.py
- @@ -32,7 +32,7 @@ from ..mesonlib import (
- MachineChoice, MesonException, OrderedSet, Popen_safe, extract_as_list,
- join_args, unholder,
- )
- -from ..dependencies import Dependency, PkgConfigDependency, InternalDependency
- +from ..dependencies import Dependency, PkgConfigDependency, InternalDependency, ExternalProgram
- from ..interpreterbase import noKwargs, permittedKwargs, FeatureNew, FeatureNewKwargs
-
- # gresource compilation is broken due to the way
- @@ -735,21 +735,29 @@ class GnomeModule(ExtensionModule):
- # these utilities via pkg-config, so it would be best to use the
- # results from pkg-config when possible.
- gi_util_dirs_check = [state.environment.get_build_dir(), state.environment.get_source_dir()]
- - giscanner = self.interpreter.find_program_impl('g-ir-scanner')
- - if giscanner.found():
- - giscanner_path = giscanner.get_command()[0]
- - if not any(x in giscanner_path for x in gi_util_dirs_check):
- - giscanner = self.gir_dep.get_pkgconfig_variable('g_ir_scanner', {})
- + giscanner_bin = state.environment.lookup_binary_entry(MachineChoice.HOST, 'g-ir-scanner')
- + if giscanner_bin is not None:
- + giscanner = ExternalProgram.from_entry('g-ir-scanner', giscanner_bin)
- else:
- - giscanner = self.gir_dep.get_pkgconfig_variable('g_ir_scanner', {})
- + giscanner = self.interpreter.find_program_impl('g-ir-scanner')
- + if giscanner.found():
- + giscanner_path = giscanner.get_command()[0]
- + if not any(x in giscanner_path for x in gi_util_dirs_check):
- + giscanner = self.gir_dep.get_pkgconfig_variable('g_ir_scanner', {})
- + else:
- + giscanner = self.gir_dep.get_pkgconfig_variable('g_ir_scanner', {})
-
- - gicompiler = self.interpreter.find_program_impl('g-ir-compiler')
- - if gicompiler.found():
- - gicompiler_path = gicompiler.get_command()[0]
- - if not any(x in gicompiler_path for x in gi_util_dirs_check):
- - gicompiler = self.gir_dep.get_pkgconfig_variable('g_ir_compiler', {})
- + gicompiler_bin = state.environment.lookup_binary_entry(MachineChoice.HOST, 'g-ir-compiler')
- + if gicompiler_bin is not None:
- + gicompiler = ExternalProgram.from_entry('g-ir-compiler', gicompiler_bin)
- else:
- - gicompiler = self.gir_dep.get_pkgconfig_variable('g_ir_compiler', {})
- + gicompiler = self.interpreter.find_program_impl('g-ir-compiler')
- + if gicompiler.found():
- + gicompiler_path = gicompiler.get_command()[0]
- + if not any(x in gicompiler_path for x in gi_util_dirs_check):
- + gicompiler = self.gir_dep.get_pkgconfig_variable('g_ir_compiler', {})
- + else:
- + gicompiler = self.gir_dep.get_pkgconfig_variable('g_ir_compiler', {})
-
- ns = kwargs.pop('namespace')
- nsversion = kwargs.pop('nsversion')
- --
- 2.25.1
|