aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2021-10-22 18:17:38 +0200
committerEven Rouault <even.rouault@spatialys.com>2021-10-22 18:17:38 +0200
commit5a47650a5bdbffe5a877164857d40ae28babf6eb (patch)
tree68d18b7db1052f59a547113b7d983efb2de23f52
parent01d503cb23b4cffe4435c1e915c4d0661bb16d74 (diff)
downloadPROJ-5a47650a5bdbffe5a877164857d40ae28babf6eb.tar.gz
PROJ-5a47650a5bdbffe5a877164857d40ae28babf6eb.zip
CMake: align the VERSION of the library with libtool practices
Currently (at least as of 8.1.1) we don't have the same .so.x.y.z numbers for the libtool and cmake builds (the y and z are swapped for the cmake build). While only the SONAME (the .x part) mostly matters, it is probably better to stick with the libtool convention to determine the y and z. This patch should make it easier by setting explicitly each of the current, revision, age and computing automatically x = current - age y = age z = revision
-rw-r--r--CMakeLists.txt9
-rw-r--r--HOWTO-RELEASE3
2 files changed, 8 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4d561680..1f05465a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -111,8 +111,13 @@ message(STATUS "Configuring PROJ:")
################################################################################
include(ProjVersion)
proj_version(MAJOR 8 MINOR 2 PATCH 0)
-set(PROJ_API_VERSION "22")
-set(PROJ_BUILD_VERSION "23.0.1")
+# Use libtool convention to build the CMake's VERSION and SOVERSION
+# See https://github.com/pvanhoof/dir-examples#cmake-in-the-cmake-example
+set(PROJ_LIBTOOL_CURRENT 23)
+set(PROJ_LIBTOOL_REVISION 0)
+set(PROJ_LIBTOOL_AGE 1)
+math(EXPR PROJ_API_VERSION "${PROJ_LIBTOOL_CURRENT} - ${PROJ_LIBTOOL_AGE}")
+set(PROJ_BUILD_VERSION "${PROJ_API_VERSION}.${PROJ_LIBTOOL_AGE}.${PROJ_LIBTOOL_REVISION}")
################################################################################
# Build features and variants
diff --git a/HOWTO-RELEASE b/HOWTO-RELEASE
index cf3565c2..9005fd4b 100644
--- a/HOWTO-RELEASE
+++ b/HOWTO-RELEASE
@@ -51,8 +51,7 @@ the steps below to determine the next ABI version number:
Update the following files with the new ABI version number:
- `src/Makefile.am` Update -version-info
- - `CMakeLists.txt`: Update PROJ_BUILD_VERSION (cur:rev:age) and
- PROJ_API_VERSION (current-age)
+ - `CMakeLists.txt`: Update PROJ_LIBTOOL_CURRENT, PROJ_LIBTOOL_REVISON and PROJ_LIBTOOL_AGE
*Commit the changes to master.*