diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-12-03 22:53:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-03 22:53:44 +0200 |
commit | 018deb48feee88a1de73f8bcaea4d944dade7827 (patch) | |
tree | 684c53ed5a3938ddb5eaa00e6731b6e5a0aba350 /mesonbuild/dependencies/base.py | |
parent | 312bc2ca810e333e7d8dd42e55ae9bd348757a07 (diff) | |
parent | f8aab2f011afc93767a487cb68e856e21f9786d8 (diff) | |
download | meson-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.py | 18 |
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: |