From fe463276d72663e9939dce5202fee7789fee0f1e Mon Sep 17 00:00:00 2001 From: Jon Shallow Date: Fri, 15 Sep 2023 15:36:06 +0100 Subject: [PATCH] CMakeLists.txt: Create .so files using the ABI configure.ac: Report the ABI version. --- CMakeLists.txt | 7 +++++++ configure.ac | 13 ++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6ce90fef..48568140 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,8 @@ project( LANGUAGES CXX C) set(LIBCOAP_API_VERSION 3) +set(LIBCOAP_ABI_VERSION 3.1.0) + set(COAP_LIBRARY_NAME "coap-${LIBCOAP_API_VERSION}") option( @@ -75,6 +77,9 @@ if(${CMAKE_VERSION} VERSION_GREATER "3.20.0") cmake_policy(SET CMP0115 OLD) # Supresses libcoap configuration warning endif() +set_target_properties(${COAP_LIBRARY_NAME} PROPERTIES SOVERSION ${LIBCOAP_API_VERSION}) +set_target_properties(${COAP_LIBRARY_NAME} PROPERTIES VERSION ${LIBCOAP_ABI_VERSION}) + # # options to tweak the library # @@ -590,6 +595,8 @@ message(STATUS "libcoap Configuration Summary:") message(STATUS "") message(STATUS "PACKAGE VERSION..................${PACKAGE_VERSION}") message(STATUS "PACKAGE SOURCE...................${LIBCOAP_PACKAGE_BUILD}") +message(STATUS "LIBRARY API VERSION..............${LIBCOAP_API_VERSION}") +message(STATUS "LIBRARY ABI VERSION..............${LIBCOAP_ABI_VERSION}") message(STATUS "ENABLE_DTLS:.....................${ENABLE_DTLS}") message(STATUS "ENABLE_TCP:......................${ENABLE_TCP}") message(STATUS "ENABLE_IPV4:.....................${ENABLE_IPV4}") diff --git a/configure.ac b/configure.ac index 37176413..dd4d090a 100644 --- a/configure.ac +++ b/configure.ac @@ -150,6 +150,16 @@ AC_SUBST(LIBCOAP_SO_VERSION) # Defining the API Version LIBCOAP_API_VERSION=3 + +# calculate the ABI version +m4_pattern_allow(LT_TEMP) +LT_TEMP=$LT_LIBCOAP_CURRENT +LT_TEMP=`expr $LT_TEMP - $LT_LIBCOAP_AGE` +if [ "$LT_TEMP" != "LIBCOAP_API_VERSION" ] ; then + AC_MSG_ERROR([==> API version does not match base ABI version.]) +fi +LIBCOAP_ABI_VERSION=$LT_TEMP.$LT_LIBCOAP_AGE.$LT_LIBCOAP_REVISION +AC_SUBST(LIBCOAP_ABI_VERSION) AC_SUBST(LIBCOAP_API_VERSION) # Define a numeric version string @@ -1163,8 +1173,9 @@ AC_MSG_RESULT([ libcoap Configuration Summary: libcoap package version : "$PACKAGE_VERSION" libcoap package source : "$LIBCOAP_BUILD" - libcoap library version : "$LIBCOAP_SO_VERSION" libcoap API version : "$LIBCOAP_API_VERSION" + libcoap ABI version : "$LIBCOAP_ABI_VERSION" + libcoap libtool SO version : "$LIBCOAP_SO_VERSION" libcoap DTLS lib extn : "$LIBCOAP_DTLS_LIB_EXTENSION_NAME" host system : "$host"]); if test "x$enable_server_mode" = "xyes"; then