From 142f51a7b5c2defc760a57918fb0357477538356 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Fri, 6 Apr 2018 21:05:53 -0400 Subject: pkgconfig generator: Fix crash when passing a SharedModule --- mesonbuild/modules/pkgconfig.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'mesonbuild/modules') diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py index c587f84..6e4f3df 100644 --- a/mesonbuild/modules/pkgconfig.py +++ b/mesonbuild/modules/pkgconfig.py @@ -87,6 +87,7 @@ class DependenciesHelper: processed_reqs = [] processed_cflags = [] for obj in libs: + shared_library_only = getattr(obj, 'shared_library_only', False) if hasattr(obj, 'pcdep'): pcdeps = mesonlib.listify(obj.pcdep) for d in pcdeps: @@ -105,7 +106,7 @@ class DependenciesHelper: if obj.found(): processed_libs += obj.get_link_args() processed_cflags += obj.get_compile_args() - elif isinstance(obj, build.SharedLibrary) and obj.shared_library_only: + elif isinstance(obj, build.SharedLibrary) and shared_library_only: # Do not pull dependencies for shared libraries because they are # only required for static linking. Adding private requires has # the side effect of exposing their cflags, which is the -- cgit v1.1 From da0f0f02e5463fa04bcb475a108485362a70e261 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Fri, 6 Apr 2018 21:07:54 -0400 Subject: pkgconfig generator: Remove duplicates in required versions --- mesonbuild/modules/pkgconfig.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'mesonbuild/modules') diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py index 6e4f3df..11fa80d 100644 --- a/mesonbuild/modules/pkgconfig.py +++ b/mesonbuild/modules/pkgconfig.py @@ -133,9 +133,11 @@ class DependenciesHelper: def add_version_reqs(self, name, version_reqs): if version_reqs: - vreqs = self.version_reqs.get(name, []) - vreqs += mesonlib.stringlistify(version_reqs) - self.version_reqs[name] = vreqs + if name not in self.version_reqs: + self.version_reqs[name] = set() + # We could have '>=1.0' or '>= 1.0', remove spaces to normalize + new_vreqs = [s.replace(' ', '') for s in mesonlib.stringlistify(version_reqs)] + self.version_reqs[name].update(new_vreqs) def split_version_req(self, s): for op in ['>=', '<=', '!=', '==', '=', '>', '<']: -- cgit v1.1