aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/dependencies/base.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-12-03 22:53:44 +0200
committerGitHub <noreply@github.com>2017-12-03 22:53:44 +0200
commit018deb48feee88a1de73f8bcaea4d944dade7827 (patch)
tree684c53ed5a3938ddb5eaa00e6731b6e5a0aba350 /mesonbuild/dependencies/base.py
parent312bc2ca810e333e7d8dd42e55ae9bd348757a07 (diff)
parentf8aab2f011afc93767a487cb68e856e21f9786d8 (diff)
downloadmeson-018deb48feee88a1de73f8bcaea4d944dade7827.zip
meson-018deb48feee88a1de73f8bcaea4d944dade7827.tar.gz
meson-018deb48feee88a1de73f8bcaea4d944dade7827.tar.bz2
Merge pull request #2663 from inigomartinez/pkg-config-define-variable
dependencies: Allow pkg-config to define variables
Diffstat (limited to 'mesonbuild/dependencies/base.py')
-rw-r--r--mesonbuild/dependencies/base.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py
index cdeaf5e..f8469c5 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):
+ def get_pkgconfig_variable(self, variable_name, kwargs):
raise NotImplementedError('{!r} is not a pkgconfig dependency'.format(self.name))
def get_configtool_variable(self, variable_name):
@@ -491,8 +491,20 @@ class PkgConfigDependency(ExternalDependency):
self.is_libtool = True
self.link_args.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, kwargs):
+ options = ['--variable=' + variable_name, self.name]
+
+ if 'define_variable' in kwargs:
+ definition = kwargs.get('define_variable', [])
+ if not isinstance(definition, list):
+ raise MesonException('define_variable takes a list')
+
+ if len(definition) != 2 or not all(isinstance(i, str) for i in definition):
+ raise MesonException('define_variable must be made up of 2 strings for VARIABLENAME and VARIABLEVALUE')
+
+ options = ['--define-variable=' + '='.join(definition)] + options
+
+ ret, out = self._call_pkgbin(options)
variable = ''
if ret != 0:
if self.required: