* [PATCH] meson: Port pkgconfig-native patch to 0.44.0
@ 2017-12-18 14:24 Ricardo Ribalda Delgado
2017-12-18 14:33 ` ✗ patchtest: failure for " Patchwork
0 siblings, 1 reply; 2+ messages in thread
From: Ricardo Ribalda Delgado @ 2017-12-18 14:24 UTC (permalink / raw)
To: openembedded-core, Alexander Kanavin
The update to 0.44.0 did not add this patch required for qt builds.
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
---
This patch sits on top of Alexander Kanavin's "Introduce meson build
system v5" patchset.
.../meson/meson/0003-native_bindir.patch | 109 +++++++++++++++++++++
meta/recipes-devtools/meson/meson_0.44.0.bb | 1 +
2 files changed, 110 insertions(+)
create mode 100644 meta/recipes-devtools/meson/meson/0003-native_bindir.patch
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 000000000000..8911dd6b34e1
--- /dev/null
+++ b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
@@ -0,0 +1,109 @@
+From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
+Date: Wed, 15 Nov 2017 15:05:01 +0100
+Subject: [PATCH] native_bindir
+
+Some libraries, like QT, have pre-processors that convert their input
+files into something that the cross-compiler can process. We find the
+path of those pre-processors via pkg-config-native instead of
+pkg-config.
+
+This path forces the use of pkg-config-native for host_bins arguments.
+
+There are some discussions upstream to merge this patch, but I presonaly believe
+that is is OE only. https://github.com/mesonbuild/meson/issues/1849#issuecomment-303730323
+
+Upstream-Status: Inappropriate [OE specific]
+Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
+---
+ mesonbuild/dependencies/base.py | 14 +++++++++-----
+ mesonbuild/dependencies/ui.py | 6 +++---
+ 2 files changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py
+index 0ef33722f196..b3f7e7c06822 100644
+--- a/mesonbuild/dependencies/base.py
++++ b/mesonbuild/dependencies/base.py
+@@ -130,7 +130,7 @@ class Dependency:
+ def need_threads(self):
+ return False
+
+- def get_pkgconfig_variable(self, variable_name, kwargs):
++ def get_pkgconfig_variable(self, variable_name, kwargs, use_native=False):
+ raise DependencyException('{!r} is not a pkgconfig dependency'.format(self.name))
+
+ def get_configtool_variable(self, variable_name):
+@@ -149,7 +149,7 @@ class InternalDependency(Dependency):
+ self.sources = sources
+ self.ext_deps = ext_deps
+
+- def get_pkgconfig_variable(self, variable_name, kwargs):
++ def get_pkgconfig_variable(self, variable_name, kwargs, use_native=False):
+ raise DependencyException('Method "get_pkgconfig_variable()" is '
+ 'invalid for an internal dependency')
+
+@@ -414,10 +414,14 @@ class PkgConfigDependency(ExternalDependency):
+ return s.format(self.__class__.__name__, self.name, self.is_found,
+ self.version_reqs)
+
+- def _call_pkgbin(self, args, env=None):
++ def _call_pkgbin(self, args, env=None, use_native=False):
+ if not env:
+ env = os.environ
+- p, out = Popen_safe([self.pkgbin] + args, env=env)[0:2]
++ if use_native:
++ pkgbin = [self.pkgbin + "-native"]
++ else:
++ pkgbin = [self.pkgbin]
++ p, out = Popen_safe(pkgbin + args, env=env)[0:2]
+ return p.returncode, out.strip()
+
+ def _convert_mingw_paths(self, args):
+@@ -499,7 +503,7 @@ class PkgConfigDependency(ExternalDependency):
+ self.is_libtool = True
+ self.link_args.append(lib)
+
+- def get_pkgconfig_variable(self, variable_name, kwargs):
++ def get_pkgconfig_variable(self, variable_name, kwargs, use_native=False):
+ options = ['--variable=' + variable_name, self.name]
+
+ if 'define_variable' in kwargs:
+@@ -512,7 +516,7 @@ class PkgConfigDependency(ExternalDependency):
+
+ options = ['--define-variable=' + '='.join(definition)] + options
+
+- ret, out = self._call_pkgbin(options)
++ ret, out = self._call_pkgbin(options, use_native=use_native)
+ variable = ''
+ if ret != 0:
+ if self.required:
+diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py
+index 1db518c12477..4ed1d041f6f4 100644
+--- a/mesonbuild/dependencies/ui.py
++++ b/mesonbuild/dependencies/ui.py
+@@ -239,7 +239,7 @@ class QtBaseDependency(ExternalDependency):
+ self.bindir = self.get_pkgconfig_host_bins(core)
+ if not self.bindir:
+ # If exec_prefix is not defined, the pkg-config file is broken
+- prefix = core.get_pkgconfig_variable('exec_prefix', {})
++ prefix = core.get_pkgconfig_variable('exec_prefix', {}, use_native=True)
+ if prefix:
+ self.bindir = os.path.join(prefix, 'bin')
+
+@@ -359,7 +359,7 @@ class Qt4Dependency(QtBaseDependency):
+ applications = ['moc', 'uic', 'rcc', 'lupdate', 'lrelease']
+ for application in applications:
+ try:
+- return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application, {}))
++ return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application, {}, use_native=True))
+ except MesonException:
+ pass
+
+@@ -369,7 +369,7 @@ class Qt5Dependency(QtBaseDependency):
+ QtBaseDependency.__init__(self, 'qt5', env, kwargs)
+
+ def get_pkgconfig_host_bins(self, core):
+- return core.get_pkgconfig_variable('host_bins', {})
++ return core.get_pkgconfig_variable('host_bins', {}, use_native=True)
+
+
+ # 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 9b4c7e6ab10b..d9c691c7f8b8 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
file://0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch \
file://0002-gobject-introspection-determine-g-ir-scanner-and-g-i.patch \
file://0001-Linker-rules-move-cross_args-in-front-of-output_args.patch \
+ file://0003-native_bindir.patch \
"
SRC_URI[md5sum] = "26a7ca93ec9cea5facb365664261f9c6"
SRC_URI[sha256sum] = "50f9b12b77272ef6ab064d26b7e06667f07fa9f931e6a20942bba2216ba4281b"
--
2.15.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* ✗ patchtest: failure for meson: Port pkgconfig-native patch to 0.44.0
2017-12-18 14:24 [PATCH] meson: Port pkgconfig-native patch to 0.44.0 Ricardo Ribalda Delgado
@ 2017-12-18 14:33 ` Patchwork
0 siblings, 0 replies; 2+ messages in thread
From: Patchwork @ 2017-12-18 14:33 UTC (permalink / raw)
To: Ricardo Ribalda Delgado; +Cc: openembedded-core
== Series Details ==
Series: meson: Port pkgconfig-native patch to 0.44.0
Revision: 1
URL : https://patchwork.openembedded.org/series/10208/
State : failure
== Summary ==
Thank you for submitting this patch series to OpenEmbedded Core. This is
an automated response. Several tests have been executed on the proposed
series by patchtest resulting in the following failures:
* Issue Series does not apply on top of target branch [test_series_merge_on_head]
Suggested fix Rebase your series on top of targeted branch
Targeted branch master (currently at cf5c44ac61)
If you believe any of these test results are incorrect, please reply to the
mailing list (openembedded-core@lists.openembedded.org) raising your concerns.
Otherwise we would appreciate you correcting the issues and submitting a new
version of the patchset if applicable. Please ensure you add/increment the
version number when sending the new version (i.e. [PATCH] -> [PATCH v2] ->
[PATCH v3] -> ...).
---
Guidelines: https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-12-18 14:33 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-18 14:24 [PATCH] meson: Port pkgconfig-native patch to 0.44.0 Ricardo Ribalda Delgado
2017-12-18 14:33 ` ✗ patchtest: failure for " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox