[OE-core] [PATCH 9/9] meson: Port pkgconfig-native patch to 0.44.0

2018-01-04 Thread Alexander Kanavin
From: Ricardo Ribalda Delgado 

The update to 0.44.0 did not add this patch required for qt builds.

Signed-off-by: Ricardo Ribalda Delgado 
Signed-off-by: Alexander Kanavin 
---
 .../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 000..8911dd6b34e
--- /dev/null
+++ b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
@@ -0,0 +1,109 @@
+From: Ricardo Ribalda Delgado 
+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 
+---
+ 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:

[OE-core] [PATCH 9/9] meson: Port pkgconfig-native patch to 0.44.0

2017-12-21 Thread Alexander Kanavin
From: Ricardo Ribalda Delgado 

The update to 0.44.0 did not add this patch required for qt builds.

Signed-off-by: Ricardo Ribalda Delgado 
Signed-off-by: Alexander Kanavin 
---
 .../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 000..8911dd6b34e
--- /dev/null
+++ b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
@@ -0,0 +1,109 @@
+From: Ricardo Ribalda Delgado 
+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 
+---
+ 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: