meson: Use pkgconfig-native for the native tools

QT relies on host compilers such mas mocc. Modify meson to use
pkgconfig-native instead of pkgconfig in such cases.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
This commit is contained in:
Ricardo Ribalda Delgado 2017-05-23 10:48:31 +02:00 committed by Armin Kuster
parent 2eed84ca1e
commit 9be0ac6e72
2 changed files with 56 additions and 1 deletions

View File

@ -0,0 +1,52 @@
diff --git a/mesonbuild/dependencies.py b/mesonbuild/dependencies.py
index da73a57b7ecd..22100f69c580 100644
--- a/mesonbuild/dependencies.py
+++ b/mesonbuild/dependencies.py
@@ -65,7 +65,7 @@ class Dependency():
def need_threads(self):
return False
- def get_pkgconfig_variable(self, variable_name):
+ def get_pkgconfig_variable(self, variable_name, use_native=False):
raise MesonException('Tried to get a pkg-config variable from a non-pkgconfig dependency.')
class InternalDependency(Dependency):
@@ -177,8 +177,12 @@ class PkgConfigDependency(Dependency):
return s.format(self.__class__.__name__, self.name, self.is_found,
self.version_reqs)
- def _call_pkgbin(self, args):
- p, out = Popen_safe([self.pkgbin] + args, env=os.environ)[0:2]
+ def _call_pkgbin(self, args, use_native=False):
+ if use_native:
+ pkgbin = [self.pkgbin + "-native"]
+ else:
+ pkgbin = [self.pkgbin]
+ p, out = Popen_safe(pkgbin + args, env=os.environ)[0:2]
return (p.returncode, out.strip())
def _set_cargs(self):
@@ -212,8 +216,8 @@ class PkgConfigDependency(Dependency):
self.is_libtool = True
self.libs.append(lib)
- def get_pkgconfig_variable(self, variable_name):
- ret, out = self._call_pkgbin(['--variable=' + variable_name, self.name])
+ def get_pkgconfig_variable(self, variable_name, use_native=False):
+ ret, out = self._call_pkgbin(['--variable=' + variable_name, self.name], use_native=use_native)
variable = ''
if ret != 0:
if self.required:
@@ -933,10 +937,10 @@ class QtBaseDependency(Dependency):
corekwargs = {'required': 'false', 'silent': 'true'}
core = PkgConfigDependency(self.qtpkgname + 'Core', env, corekwargs)
# Used by self.compilers_detect()
- self.bindir = core.get_pkgconfig_variable('host_bins')
+ self.bindir = core.get_pkgconfig_variable('host_bins', use_native=True)
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')

View File

@ -4,7 +4,10 @@ SUMMARY = "A high performance build system"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
SRC_URI = "git://github.com/mesonbuild/meson.git"
SRC_URI = " \
git://github.com/mesonbuild/meson.git \
file://native_bindir.patch \
"
SRCREV = "3d4bfdcb22314ea7db45a5b075f8b2a9c1498aab"