diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2018-04-06 21:07:54 -0400 |
---|---|---|
committer | Xavier Claessens <xavier.claessens@collabora.com> | 2018-04-07 21:35:47 -0400 |
commit | da0f0f02e5463fa04bcb475a108485362a70e261 (patch) | |
tree | e4cb36dbcf114bcc9586b8455ae2d3184baede45 | |
parent | 142f51a7b5c2defc760a57918fb0357477538356 (diff) | |
download | meson-da0f0f02e5463fa04bcb475a108485362a70e261.zip meson-da0f0f02e5463fa04bcb475a108485362a70e261.tar.gz meson-da0f0f02e5463fa04bcb475a108485362a70e261.tar.bz2 |
pkgconfig generator: Remove duplicates in required versions
-rw-r--r-- | mesonbuild/modules/pkgconfig.py | 8 | ||||
-rw-r--r-- | test cases/common/51 pkgconfig-gen/dependencies/meson.build | 4 |
2 files changed, 8 insertions, 4 deletions
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 ['>=', '<=', '!=', '==', '=', '>', '<']: diff --git a/test cases/common/51 pkgconfig-gen/dependencies/meson.build b/test cases/common/51 pkgconfig-gen/dependencies/meson.build index d13f009..640115a 100644 --- a/test cases/common/51 pkgconfig-gen/dependencies/meson.build +++ b/test cases/common/51 pkgconfig-gen/dependencies/meson.build @@ -11,6 +11,7 @@ pkgg.generate(exposed_lib) # Declare a few different Dependency objects pc_dep = dependency('libfoo', version : '>=1.0') +pc_dep_dup = dependency('libfoo', version : '>= 1.0') notfound_dep = dependency('notfound', required : false) threads_dep = dependency('threads') custom_dep = declare_dependency(link_args : ['-lcustom'], compile_args : ['-DCUSTOM']) @@ -24,9 +25,10 @@ custom2_dep = declare_dependency(link_args : ['-lcustom2'], compile_args : ['-DC # - Having custom_dep in libraries and libraries_private should only add it in Libs # - Having custom2_dep in libraries_private should not add its Cflags # - Having pc_dep in libraries_private should add it in Requires.private +# - pc_dep_dup is the same library and same version, should be ignored # - notfound_dep is not required so it shouldn't appear in the pc file. pkgg.generate(libraries : [main_lib, exposed_lib, threads_dep , custom_dep], - libraries_private : [custom_dep, custom2_dep, pc_dep, notfound_dep], + libraries_private : [custom_dep, custom2_dep, pc_dep, pc_dep_dup, notfound_dep], version : '1.0', name : 'dependency-test', filebase : 'dependency-test', |