meson: Use x.y soname versioning

Now that we identify ABI breakages, provide incremental releases which
can support backwards compatible linkage across release points that have
a compatible ABI.

Introduction of this commit does not convey that libcamera now has a
stable API, but that patch releases with a common minor number
(0.minor.patch) may potentially be used by applications without
recompilation and linkage against new releases.

Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Kieran Bingham 2023-05-01 12:38:12 +01:00
parent bbb77cc59b
commit 8da938b007

View file

@ -56,15 +56,13 @@ if libcamera_version != project_version
libcamera_git_version += '-nvm'
endif
# Until we make ABI compatible releases, the full libcamera version is used as
# the soname. No ABI/API compatibility is guaranteed between releases (x.y.z).
#
# When automatic ABI based detection is used to increment the version, this
# will bump the minor number (x.y).
# The major and minor libcamera version components are used as the soname.
# No ABI/API compatibility is guaranteed between releases (x.y).
#
# When we declare a stable ABI/API we will provide a 1.0 release and the
# soversion at that point will be the 'major' release value (x).
libcamera_soversion = libcamera_version
semver = libcamera_version.split('.')
libcamera_soversion = semver[0] + '.' + semver[1]
summary({ 'Sources': libcamera_git_version, }, section : 'Versions')