diff options
author | Aleksey Filippov <alekseyf@google.com> | 2018-02-24 22:19:32 +0000 |
---|---|---|
committer | Aleksey Filippov <alekseyf@google.com> | 2018-02-24 23:41:08 +0000 |
commit | d6b5d7fe9f5c4aa231d3640daf342406e5c7be15 (patch) | |
tree | 4620eb3563fc793c7c1b0b140639f34741b7e00b /mesonbuild/modules/pkgconfig.py | |
parent | be6cedb491481b7882133f8533b69443ce9cd469 (diff) | |
download | meson-d6b5d7fe9f5c4aa231d3640daf342406e5c7be15.zip meson-d6b5d7fe9f5c4aa231d3640daf342406e5c7be15.tar.gz meson-d6b5d7fe9f5c4aa231d3640daf342406e5c7be15.tar.bz2 |
Add library with generated_pc and PkgConfigDependency support to pkgconfig.generate()
Diffstat (limited to 'mesonbuild/modules/pkgconfig.py')
-rw-r--r-- | mesonbuild/modules/pkgconfig.py | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py index 5ff26ec..2f4dfae 100644 --- a/mesonbuild/modules/pkgconfig.py +++ b/mesonbuild/modules/pkgconfig.py @@ -44,10 +44,30 @@ class DependenciesHelper: self.priv_reqs += reqs def add_pub_reqs(self, reqs): - self.pub_reqs += mesonlib.stringlistify(reqs) + self.pub_reqs += self._process_reqs(reqs) def add_priv_reqs(self, reqs): - self.priv_reqs += mesonlib.stringlistify(reqs) + self.priv_reqs += self._process_reqs(reqs) + + def _process_reqs(self, reqs): + '''Returns string names of requirements''' + processed_reqs = [] + for obj in mesonlib.listify(reqs, unholder=True): + if hasattr(obj, 'generated_pc'): + processed_reqs.append(obj.generated_pc) + elif hasattr(obj, 'pcdep'): + pcdeps = mesonlib.listify(obj.pcdep) + processed_reqs += [i.name for i in pcdeps] + elif isinstance(obj, dependencies.PkgConfigDependency): + if obj.found(): + processed_reqs.append(obj.name) + elif isinstance(obj, str): + processed_reqs.append(obj) + else: + raise mesonlib.MesonException('requires argument not a string, ' + 'library with pkgconfig-generated file ' + 'or pkgconfig-dependency object.') + return processed_reqs def add_cflags(self, cflags): self.cflags += mesonlib.stringlistify(cflags) |