summaryrefslogtreecommitdiff
path: root/clutter
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2018-07-11 00:20:55 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2018-07-11 00:24:07 +0100
commit0809e7b4c0c2db46a99749a9dff8ae5ef3549dbd (patch)
tree41467d43842d4b9e72dd8d294b50a4f53c4f038c /clutter
parentfe9131ade5a6a38cfe950f3b636f4fea8a1c78e1 (diff)
downloadclutter-0809e7b4c0c2db46a99749a9dff8ae5ef3549dbd.tar.gz
meson: Add more Requires to pkg-config files
Meson-generated pkg-config files are seeded from the shared library object, but that will use the Requires.private field for the library dependencies. Since Clutter exposes types from other libraries, the dependencies should go into the Requires field, to avoid under-linking of dependent projects. Additionally, per-backend pkg-config files should have their own dependencies expressed into the Requires field, if they expose types from those dependencies in the public API.
Diffstat (limited to 'clutter')
-rw-r--r--clutter/meson.build57
1 files changed, 39 insertions, 18 deletions
diff --git a/clutter/meson.build b/clutter/meson.build
index 8a157809a..7c8094c11 100644
--- a/clutter/meson.build
+++ b/clutter/meson.build
@@ -389,7 +389,9 @@ if enabled_backends.contains('x11') or
'cogl/clutter-stage-cogl.c',
]
- backend_pc_files += 'clutter-cogl-@0@'.format(clutter_api_version)
+ backend_pc_files += [
+ [ 'clutter-cogl-@0@'.format(clutter_api_version), [], ],
+ ]
endif
cogl_dep = dependency('cogl-1.0')
@@ -469,15 +471,15 @@ if enabled_backends.contains('x11')
)
backend_pc_files += [
- 'clutter-x11-@0@'.format(clutter_api_version),
- 'clutter-glx-@0@'.format(clutter_api_version),
+ [ 'clutter-x11-@0@'.format(clutter_api_version), x11_deps ],
+ [ 'clutter-glx-@0@'.format(clutter_api_version), x11_deps ],
]
endif
if enabled_backends.contains('gdk')
- backend_deps += [
- dependency('gdk-3.0', version: gdk_req_version)
- ]
+ gdk_dep = dependency('gdk-3.0', version: gdk_req_version)
+
+ backend_deps += gdk_dep
backend_sources += [
'gdk/clutter-backend-gdk.c',
@@ -488,7 +490,9 @@ if enabled_backends.contains('gdk')
'gdk/clutter-stage-gdk.c',
]
- backend_pc_files += 'clutter-gdk-@0@'.format(clutter_api_version)
+ backend_pc_files += [
+ [ 'clutter-gdk-@0@'.format(clutter_api_version), gdk_dep ],
+ ]
install_headers([
'gdk/clutter-gdk.h',
@@ -505,7 +509,9 @@ if enabled_backends.contains('win32')
'win32/clutter-stage-win32.c',
]
- backend_pc_files += 'clutter-win32-@0@'.format(clutter_api_version)
+ backend_pc_files += [
+ [ 'clutter-win32-@0@'.format(clutter_api_version), [] ],
+ ]
install_headers([
'win32/clutter-win32.h',
@@ -534,7 +540,9 @@ if enabled_backends.contains('cex100')
error('libgdl.h is not available')
endif
- backend_pc_files += 'clutter-cex100-@0@'.format(clutter_api_version)
+ backend_pc_files += [
+ [ 'clutter-cex100-@0@'.format(clutter_api_version), [] ],
+ ]
subdir('cex100')
backend_sources += [
@@ -565,13 +573,15 @@ if enabled_backends.contains('wayland')
error('Cogl compiled without Wayland support')
endif
- backend_deps += [
+ wayland_deps = [
dependency('wayland-client'),
dependency('wayland-cursor'),
dependency('xkbcommon'),
dependency('gdk-pixbuf-2.0'),
]
+ backend_deps += wayland_deps
+
backend_sources += [
'wayland/clutter-backend-wayland.c',
'wayland/clutter-stage-wayland.c',
@@ -586,7 +596,9 @@ if enabled_backends.contains('wayland')
install_dir: join_paths(clutter_full_includedir, 'wayland'),
)
- backend_pc_files += 'clutter-wayland-@0@'.format(clutter_api_version)
+ backend_pc_files += [
+ [ 'clutter-wayland-@0@'.format(clutter_api_version), wayland_deps ],
+ ]
enable_wayland_compositor = get_option('wayland_compositor')
if enable_wayland_compositor
@@ -594,7 +606,9 @@ if enabled_backends.contains('wayland')
'wayland/clutter-wayland-surface.c',
]
- backend_pc_files += 'clutter-wayland-compositor-@0@'.format(clutter_api_version)
+ backend_pc_files += [
+ [ 'clutter-wayland-compositor-@0@'.format(clutter_api_version), wayland_deps ],
+ ]
install_headers([
'wayland/clutter-wayland-compositor.h',
@@ -618,7 +632,9 @@ if enabled_backends.contains('mir')
'mir/clutter-device-manager-mir.c',
]
- backend_pc_files += 'clutter-mir-@0@'.format(clutter_api_version)
+ backend_pc_files += [
+ [ 'clutter-mir-@0@'.format(clutter_api_version), [] ],
+ ]
install_headers([
'mir/clutter-mir.h',
@@ -636,7 +652,9 @@ if enabled_backends.contains('quartz')
'osx/clutter-device-manager-osx.c',
]
- backend_pc_files += 'clutter-osx-@0@'.format(clutter_api_version)
+ backend_pc_files += [
+ [ 'clutter-osx-@0@'.format(clutter_api_version), [] ],
+ ]
install_headers([
'osx/clutter-osx.h',
@@ -716,7 +734,7 @@ libclutter = library(
clutter_enums,
clutter_marshal,
],
- dependencies: clutter_deps + backend_deps,
+ dependencies: clutter_deps + backend_deps + [mathlib_dep],
include_directories: [
root_inc,
clutter_inc,
@@ -767,14 +785,16 @@ libclutter_dep = declare_dependency(
link_with: libclutter,
sources: [ clutter_enums[1], libclutter_gir, ],
include_directories: root_inc,
- dependencies: clutter_deps,
+ dependencies: clutter_deps + [mathlib_dep],
)
pkgconf_files = [
- 'clutter-@0@'.format(clutter_api_version),
+ [ 'clutter-@0@'.format(clutter_api_version), clutter_deps ],
] + backend_pc_files
foreach pkg: pkgconf_files
+ pkg_name = pkg[0]
+ pkg_deps = pkg[1]
pkgconf.generate(
libraries: libclutter,
name: 'Clutter',
@@ -784,7 +804,8 @@ foreach pkg: pkgconf_files
'apiversion=@0@'.format(clutter_api_version),
'backends=@0@'.format(','.join(enabled_backends)),
],
- filebase: pkg,
+ requires: pkg_deps,
+ filebase: pkg_name,
subdirs: clutter_api_name,
install_dir: join_paths(clutter_libdir, 'pkgconfig'),
)