| 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 |
| |