75 lines
3.8 KiB
Diff
75 lines
3.8 KiB
Diff
|
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
|
||
|
|