summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorSimon McVittie <smcv@collabora.com>2021-09-10 18:32:00 +0100
committerSimon Ser <contact@emersion.fr>2021-10-28 12:46:06 +0000
commit0cdd2a5c54771d18dc3ec9d690b7fbb754b90dfd (patch)
tree7b6efb9a6b34c3a7b3a1220d1c687175ff1f7e0a /meson.build
parentfceabb7e9e167e1100c244bb4f460c8a346a5478 (diff)
downloadwayland-0cdd2a5c54771d18dc3ec9d690b7fbb754b90dfd.tar.gz
build: Include the Wayland minor version in libraries' ABI versions
The ABI of a shared library on Linux is given by a major version, which is part of the SONAME and is incremented (rarely) on incompatible changes, and a minor version, which is part of the basename of the regular file to which the SONAME provides a symlink. Until now, the ABI minor version was hard-coded, which means we can't tell which of a pair of Wayland libraries is newer (and therefore likely to have more symbols and/or fewer bugs). libwayland-egl already had ABI major version 1, so we can use the "marketing" version number as the ABI major.minor version number directly, so Wayland 1.19.90 would produce libwayland-egl.so.1 -> libwayland-egl.so.1.19.90. libwayland-cursor and libwayland-server have ABI major version 0, and OS distributions don't like it when there's a SONAME bump for no good reason, so use their existing ABI major version together with the "marketing" minor version: libwayland-cursor.so.0 -> libwayland-cursor.so.0.19.90. If the Wayland major version number is incremented to 2, we'll have to rethink this, so add some error() to break the build if/when that happens. Assuming that Wayland 2.0 would involve breaking changes, the best way would probably to bump all the SONAMEs to libwayland-foo.so.2. Resolves: https://gitlab.freedesktop.org/wayland/wayland/-/issues/175 Signed-off-by: Simon McVittie <smcv@collabora.com>
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build1
1 files changed, 1 insertions, 0 deletions
diff --git a/meson.build b/meson.build
index 5cd978f..acc3d78 100644
--- a/meson.build
+++ b/meson.build
@@ -8,6 +8,7 @@ project(
'buildtype=debugoptimized'
]
)
+wayland_version = meson.project_version().split('.')
config_h = configuration_data()
config_h.set_quoted('PACKAGE', meson.project_name())