diff --git a/CMakeLists.txt b/CMakeLists.txt index 9bd4c1f01a..9076f955c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -111,13 +111,8 @@ message(STATUS "Configuring PROJ:") ################################################################################ include(ProjVersion) proj_version(MAJOR 9 MINOR 0 PATCH 0) -# 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 25) -set(PROJ_LIBTOOL_REVISION 0) -set(PROJ_LIBTOOL_AGE 0) -math(EXPR PROJ_API_VERSION "${PROJ_LIBTOOL_CURRENT} - ${PROJ_LIBTOOL_AGE}") -set(PROJ_BUILD_VERSION "${PROJ_API_VERSION}.${PROJ_LIBTOOL_AGE}.${PROJ_LIBTOOL_REVISION}") +set(PROJ_SOVERSION 25) +set(PROJ_BUILD_VERSION "${PROJ_SOVERSION}.${PROJ_VERSION}") ################################################################################ # Build features and variants diff --git a/HOWTO-RELEASE b/HOWTO-RELEASE index dfa7aa13d5..20bb91aa98 100644 --- a/HOWTO-RELEASE +++ b/HOWTO-RELEASE @@ -33,20 +33,10 @@ list. The PROJ PSC guidelines describes the rules for passing a motion. In case of a un-planned maintenance release, make sure that version numbers are properly updated: see 3.1 -Determine the ABI version number. It consists of "current:revision:age". Follow -the steps below to determine the values in CMakeLists.txt: - - - If the library source code has changed at all since the last update, - then increment PROJ_LIBTOOL_REVISION (c:r:a becomes c:r+1:a). - - - If any interfaces have been added, removed, or changed since the last - update, increment PROJ_LIBTOOL_CURRENT and set PROJ_LIBTOOL_REVISION to 0. - - - If any interfaces have been added since the last public release, then - increment PROJ_LIBTOOL_AGE. - - - If any interfaces have been removed since the last public release, then - set PROJ_LIBTOOL_AGE to 0. +For each release version, increment PROJ_SOVERSION in CMakeLists.txt if the +ABI is not backwards compatible, i.e. any interfaces have been removed, or +changed since the last release. See also: +https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B *Commit the changes to master.* diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake index 93b3f9ecf2..19cae0c771 100644 --- a/src/lib_proj.cmake +++ b/src/lib_proj.cmake @@ -402,21 +402,21 @@ target_include_directories(proj INTERFACE if(WIN32) set_target_properties(proj PROPERTIES - VERSION "${${PROJECT_NAME}_BUILD_VERSION}" + VERSION "${PROJ_VERSION}" OUTPUT_NAME "${PROJ_CORE_TARGET_OUTPUT_NAME}" ARCHIVE_OUTPUT_NAME proj CLEAN_DIRECT_OUTPUT 1) elseif(BUILD_FRAMEWORKS_AND_BUNDLE) set_target_properties(proj PROPERTIES - VERSION "${${PROJECT_NAME}_BUILD_VERSION}" + VERSION "${PROJ_VERSION}" INSTALL_NAME_DIR ${PROJ_INSTALL_NAME_DIR} CLEAN_DIRECT_OUTPUT 1) else() set_target_properties(proj PROPERTIES - VERSION "${${PROJECT_NAME}_BUILD_VERSION}" - SOVERSION "${${PROJECT_NAME}_API_VERSION}" + VERSION "${PROJ_BUILD_VERSION}" + SOVERSION "${PROJ_SOVERSION}" CLEAN_DIRECT_OUTPUT 1) endif()