aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/modules
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2019-09-16 10:27:11 -0400
committerXavier Claessens <xclaesse@gmail.com>2019-09-17 11:56:46 -0400
commit5d0ced220c56a7599913c9e249b85f0d6a060821 (patch)
tree1f1e12600006ab661390677344571dcb4a69b397 /mesonbuild/modules
parent7e2c54c0a38788380c7f05dff3244faaa76e0220 (diff)
downloadmeson-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.py11
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', []))