diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2019-09-16 10:27:11 -0400 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2019-09-17 11:56:46 -0400 |
commit | 5d0ced220c56a7599913c9e249b85f0d6a060821 (patch) | |
tree | 1f1e12600006ab661390677344571dcb4a69b397 /mesonbuild/modules | |
parent | 7e2c54c0a38788380c7f05dff3244faaa76e0220 (diff) | |
download | meson-5d0ced220c56a7599913c9e249b85f0d6a060821.zip meson-5d0ced220c56a7599913c9e249b85f0d6a060821.tar.gz meson-5d0ced220c56a7599913c9e249b85f0d6a060821.tar.bz2 |
pkgconfig: Fix ordering of public libraries
The main library must come before extra libraries, because they are
likely to be dependencies of the main library that get promoted from
private to public. This was causing static link issues with glib-2.0.pc.
Diffstat (limited to 'mesonbuild/modules')
-rw-r--r-- | mesonbuild/modules/pkgconfig.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py index 60d4b3f..ce5f5e0 100644 --- a/mesonbuild/modules/pkgconfig.py +++ b/mesonbuild/modules/pkgconfig.py @@ -388,10 +388,15 @@ class PkgConfigModule(ExtensionModule): raise mesonlib.MesonException('URL is not a string.') conflicts = mesonlib.stringlistify(kwargs.get('conflicts', [])) - deps = DependenciesHelper(filebase) + # Prepend the main library to public libraries list. This is required + # so dep.add_pub_libs() can handle dependency ordering correctly and put + # extra libraries after the main library. + libraries = mesonlib.extract_as_list(kwargs, 'libraries') if mainlib: - deps.add_pub_libs(mainlib) - deps.add_pub_libs(kwargs.get('libraries', [])) + libraries = [mainlib] + libraries + + deps = DependenciesHelper(filebase) + deps.add_pub_libs(libraries) deps.add_priv_libs(kwargs.get('libraries_private', [])) deps.add_pub_reqs(kwargs.get('requires', [])) deps.add_priv_reqs(kwargs.get('requires_private', [])) |