diff options
Diffstat (limited to 'meta/recipes-devtools/meson')
-rw-r--r-- | meta/recipes-devtools/meson/meson/0003-native_bindir.patch | 109 | ||||
-rw-r--r-- | meta/recipes-devtools/meson/meson_0.44.0.bb | 1 |
2 files changed, 110 insertions, 0 deletions
diff --git a/meta/recipes-devtools/meson/meson/0003-native_bindir.patch b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch new file mode 100644 index 0000000000..8911dd6b34 --- /dev/null +++ b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch | |||
@@ -0,0 +1,109 @@ | |||
1 | From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> | ||
2 | Date: Wed, 15 Nov 2017 15:05:01 +0100 | ||
3 | Subject: [PATCH] native_bindir | ||
4 | |||
5 | Some libraries, like QT, have pre-processors that convert their input | ||
6 | files into something that the cross-compiler can process. We find the | ||
7 | path of those pre-processors via pkg-config-native instead of | ||
8 | pkg-config. | ||
9 | |||
10 | This path forces the use of pkg-config-native for host_bins arguments. | ||
11 | |||
12 | There are some discussions upstream to merge this patch, but I presonaly believe | ||
13 | that is is OE only. https://github.com/mesonbuild/meson/issues/1849#issuecomment-303730323 | ||
14 | |||
15 | Upstream-Status: Inappropriate [OE specific] | ||
16 | Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> | ||
17 | --- | ||
18 | mesonbuild/dependencies/base.py | 14 +++++++++----- | ||
19 | mesonbuild/dependencies/ui.py | 6 +++--- | ||
20 | 2 files changed, 12 insertions(+), 8 deletions(-) | ||
21 | |||
22 | diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py | ||
23 | index 0ef33722f196..b3f7e7c06822 100644 | ||
24 | --- a/mesonbuild/dependencies/base.py | ||
25 | +++ b/mesonbuild/dependencies/base.py | ||
26 | @@ -130,7 +130,7 @@ class Dependency: | ||
27 | def need_threads(self): | ||
28 | return False | ||
29 | |||
30 | - def get_pkgconfig_variable(self, variable_name, kwargs): | ||
31 | + def get_pkgconfig_variable(self, variable_name, kwargs, use_native=False): | ||
32 | raise DependencyException('{!r} is not a pkgconfig dependency'.format(self.name)) | ||
33 | |||
34 | def get_configtool_variable(self, variable_name): | ||
35 | @@ -149,7 +149,7 @@ class InternalDependency(Dependency): | ||
36 | self.sources = sources | ||
37 | self.ext_deps = ext_deps | ||
38 | |||
39 | - def get_pkgconfig_variable(self, variable_name, kwargs): | ||
40 | + def get_pkgconfig_variable(self, variable_name, kwargs, use_native=False): | ||
41 | raise DependencyException('Method "get_pkgconfig_variable()" is ' | ||
42 | 'invalid for an internal dependency') | ||
43 | |||
44 | @@ -414,10 +414,14 @@ class PkgConfigDependency(ExternalDependency): | ||
45 | return s.format(self.__class__.__name__, self.name, self.is_found, | ||
46 | self.version_reqs) | ||
47 | |||
48 | - def _call_pkgbin(self, args, env=None): | ||
49 | + def _call_pkgbin(self, args, env=None, use_native=False): | ||
50 | if not env: | ||
51 | env = os.environ | ||
52 | - p, out = Popen_safe([self.pkgbin] + args, env=env)[0:2] | ||
53 | + if use_native: | ||
54 | + pkgbin = [self.pkgbin + "-native"] | ||
55 | + else: | ||
56 | + pkgbin = [self.pkgbin] | ||
57 | + p, out = Popen_safe(pkgbin + args, env=env)[0:2] | ||
58 | return p.returncode, out.strip() | ||
59 | |||
60 | def _convert_mingw_paths(self, args): | ||
61 | @@ -499,7 +503,7 @@ class PkgConfigDependency(ExternalDependency): | ||
62 | self.is_libtool = True | ||
63 | self.link_args.append(lib) | ||
64 | |||
65 | - def get_pkgconfig_variable(self, variable_name, kwargs): | ||
66 | + def get_pkgconfig_variable(self, variable_name, kwargs, use_native=False): | ||
67 | options = ['--variable=' + variable_name, self.name] | ||
68 | |||
69 | if 'define_variable' in kwargs: | ||
70 | @@ -512,7 +516,7 @@ class PkgConfigDependency(ExternalDependency): | ||
71 | |||
72 | options = ['--define-variable=' + '='.join(definition)] + options | ||
73 | |||
74 | - ret, out = self._call_pkgbin(options) | ||
75 | + ret, out = self._call_pkgbin(options, use_native=use_native) | ||
76 | variable = '' | ||
77 | if ret != 0: | ||
78 | if self.required: | ||
79 | diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py | ||
80 | index 1db518c12477..4ed1d041f6f4 100644 | ||
81 | --- a/mesonbuild/dependencies/ui.py | ||
82 | +++ b/mesonbuild/dependencies/ui.py | ||
83 | @@ -239,7 +239,7 @@ class QtBaseDependency(ExternalDependency): | ||
84 | self.bindir = self.get_pkgconfig_host_bins(core) | ||
85 | if not self.bindir: | ||
86 | # If exec_prefix is not defined, the pkg-config file is broken | ||
87 | - prefix = core.get_pkgconfig_variable('exec_prefix', {}) | ||
88 | + prefix = core.get_pkgconfig_variable('exec_prefix', {}, use_native=True) | ||
89 | if prefix: | ||
90 | self.bindir = os.path.join(prefix, 'bin') | ||
91 | |||
92 | @@ -359,7 +359,7 @@ class Qt4Dependency(QtBaseDependency): | ||
93 | applications = ['moc', 'uic', 'rcc', 'lupdate', 'lrelease'] | ||
94 | for application in applications: | ||
95 | try: | ||
96 | - return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application, {})) | ||
97 | + return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application, {}, use_native=True)) | ||
98 | except MesonException: | ||
99 | pass | ||
100 | |||
101 | @@ -369,7 +369,7 @@ class Qt5Dependency(QtBaseDependency): | ||
102 | QtBaseDependency.__init__(self, 'qt5', env, kwargs) | ||
103 | |||
104 | def get_pkgconfig_host_bins(self, core): | ||
105 | - return core.get_pkgconfig_variable('host_bins', {}) | ||
106 | + return core.get_pkgconfig_variable('host_bins', {}, use_native=True) | ||
107 | |||
108 | |||
109 | # There are three different ways of depending on SDL2: | ||
diff --git a/meta/recipes-devtools/meson/meson_0.44.0.bb b/meta/recipes-devtools/meson/meson_0.44.0.bb index 9b4c7e6ab1..d9c691c7f8 100644 --- a/meta/recipes-devtools/meson/meson_0.44.0.bb +++ b/meta/recipes-devtools/meson/meson_0.44.0.bb | |||
@@ -8,6 +8,7 @@ SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/${BP}.tar | |||
8 | file://0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch \ | 8 | file://0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch \ |
9 | file://0002-gobject-introspection-determine-g-ir-scanner-and-g-i.patch \ | 9 | file://0002-gobject-introspection-determine-g-ir-scanner-and-g-i.patch \ |
10 | file://0001-Linker-rules-move-cross_args-in-front-of-output_args.patch \ | 10 | file://0001-Linker-rules-move-cross_args-in-front-of-output_args.patch \ |
11 | file://0003-native_bindir.patch \ | ||
11 | " | 12 | " |
12 | SRC_URI[md5sum] = "26a7ca93ec9cea5facb365664261f9c6" | 13 | SRC_URI[md5sum] = "26a7ca93ec9cea5facb365664261f9c6" |
13 | SRC_URI[sha256sum] = "50f9b12b77272ef6ab064d26b7e06667f07fa9f931e6a20942bba2216ba4281b" | 14 | SRC_URI[sha256sum] = "50f9b12b77272ef6ab064d26b7e06667f07fa9f931e6a20942bba2216ba4281b" |