build: reduce sub-dependencies of libweston
authorPekka Paalanen <pekka.paalanen@collabora.com>
Thu, 17 Oct 2019 13:32:34 +0000 (16:32 +0300)
committerPekka Paalanen <pekka.paalanen@collabora.com>
Thu, 24 Oct 2019 10:29:33 +0000 (13:29 +0300)
Make the libweston dependency objects pull in only those secondary dependencies
that are actually used in the API. This way in-tree users of libweston link to
fewer libraries needlessly, and it matches better what external users get via
pkg-config.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
libweston/meson.build

index 0f715f26ff871fde5bc49ff731e7bf47de4a2d3d..8dbb625d1fe03d5a341502fbd35d2d3f5822fd7d 100644 (file)
@@ -82,31 +82,37 @@ lib_weston = shared_library(
        dependencies: deps_libweston
 )
 
+deps_for_libweston_users = [
+       dep_wayland_server,
+       dep_pixman,
+       dep_xkbcommon,
+]
+
 # For external users, like Weston.
 dep_libweston_public = declare_dependency(
        link_with: lib_weston,
        include_directories: public_inc,
-       dependencies: deps_libweston
+       dependencies: deps_for_libweston_users
 )
 
 # For internal users, like the backends.
 dep_libweston_private = declare_dependency(
        link_with: lib_weston,
        include_directories: [ include_directories('.'), public_inc ],
-       dependencies: deps_libweston
+       dependencies: deps_for_libweston_users
 )
 
 # XXX: We should be able to use dep_libweston_private.partial_dependency() instead
 # of this, but a Meson bug makes it not work. It will be fixed with
 # https://github.com/mesonbuild/meson/pull/5167
 # in hopefully Meson 0.51.
+dep_libweston_private_h_deps = []
+foreach d : deps_for_libweston_users
+       dep_libweston_private_h_deps += d.partial_dependency(compile_args: true)
+endforeach
 dep_libweston_private_h = declare_dependency(
        include_directories: [ include_directories('.'), public_inc ],
-       dependencies: [
-               dep_pixman.partial_dependency(compile_args: true),
-               dep_xkbcommon.partial_dependency(compile_args: true),
-               dep_wayland_server.partial_dependency(compile_args: true)
-       ]
+       dependencies: dep_libweston_private_h_deps
 )
 
 pkgconfig.generate(
@@ -115,7 +121,7 @@ pkgconfig.generate(
        name: 'libweston API',
        version: version_weston,
        description: 'Header files for libweston compositors development',
-       requires_private: [ dep_wayland_server, dep_pixman, dep_xkbcommon ],
+       requires_private: deps_for_libweston_users,
        subdirs: dir_include_libweston
 )