diff options
author | Alan Antonuk <alan.antonuk@gmail.com> | 2021-04-02 06:28:05 +0000 |
---|---|---|
committer | Alan Antonuk <alan.antonuk@gmail.com> | 2021-04-01 23:40:05 -0700 |
commit | 188d1be3e3498c5843b8f9fc439b828c64af57fd (patch) | |
tree | 7b9699e5a71248c9a06453220331b704ef5d2bdb | |
parent | d5bbafae56ddcc3fcbef49b35271b7abab8c2621 (diff) | |
download | rabbitmq-c-188d1be3e3498c5843b8f9fc439b828c64af57fd.tar.gz |
cmake: use modern version of project() command
This also gets rid of a non-top-level project command that probably
shouldn't be used.
Signed-off-by: GitHub <noreply@github.com>
-rw-r--r-- | CMakeLists.txt | 35 | ||||
-rw-r--r-- | cmake/VersionFunctions.cmake | 21 | ||||
-rw-r--r-- | librabbitmq/CMakeLists.txt | 2 |
3 files changed, 33 insertions, 25 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 473642a..2b330f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,15 +4,6 @@ if(${CMAKE_VERSION} VERSION_LESS 3.12) cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}) endif() -project(rabbitmq-c "C") - -set(CMAKE_C_STANDARD 90) -set(CMAKE_C_STANDARD_REQUIRED ON) -set(CMAKE_C_EXTENSIONS ON) - -set(CMAKE_C_VISIBILITY_PRESET hidden) -set(CMAKE_VISIBILITY_INLINES_HIDDEN ON) - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) # Follow all steps below in order to calculate new ABI version when updating the library @@ -27,23 +18,21 @@ set(RMQ_SOVERSION_CURRENT 9) set(RMQ_SOVERSION_REVISION 1) set(RMQ_SOVERSION_AGE 5) -math(EXPR RMQ_SOVERSION_MAJOR "${RMQ_SOVERSION_CURRENT} - ${RMQ_SOVERSION_AGE}") -math(EXPR RMQ_SOVERSION_MINOR "${RMQ_SOVERSION_AGE}") -math(EXPR RMQ_SOVERSION_PATCH "${RMQ_SOVERSION_REVISION}") - -set(RMQ_VERSION ${RMQ_SOVERSION_MAJOR}.${RMQ_SOVERSION_MINOR}.${RMQ_SOVERSION_PATCH}) -set(RMQ_SOVERSION ${RMQ_SOVERSION_MAJOR}) +include(VersionFunctions) +get_library_version(VERSION) +compute_soversion(${RMQ_SOVERSION_CURRENT} ${RMQ_SOVERSION_REVISION} ${RMQ_SOVERSION_AGE} RMQ_VERSION RMQ_SOVERSION) -file(STRINGS librabbitmq/amqp.h _API_VERSION_MAJOR REGEX "^#define AMQP_VERSION_MAJOR [0-9]+$") -file(STRINGS librabbitmq/amqp.h _API_VERSION_MINOR REGEX "^#define AMQP_VERSION_MINOR [0-9]+$") -file(STRINGS librabbitmq/amqp.h _API_VERSION_PATCH REGEX "^#define AMQP_VERSION_PATCH [0-9]+$") +project(rabbitmq-c + VERSION ${VERSION} + DESCRIPTION "C RabbitMQ AMQP client library" + LANGUAGES C) -string(REGEX MATCH "[0-9]+" _API_VERSION_MAJOR ${_API_VERSION_MAJOR}) -string(REGEX MATCH "[0-9]+" _API_VERSION_MINOR ${_API_VERSION_MINOR}) -string(REGEX MATCH "[0-9]+" _API_VERSION_PATCH ${_API_VERSION_PATCH}) +set(CMAKE_C_STANDARD 90) +set(CMAKE_C_STANDARD_REQUIRED ON) +set(CMAKE_C_EXTENSIONS ON) -# VERSION to match what is in autotools -set(VERSION ${_API_VERSION_MAJOR}.${_API_VERSION_MINOR}.${_API_VERSION_PATCH}) +set(CMAKE_C_VISIBILITY_PRESET hidden) +set(CMAKE_VISIBILITY_INLINES_HIDDEN ON) set(default_build_type "Release") if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) diff --git a/cmake/VersionFunctions.cmake b/cmake/VersionFunctions.cmake new file mode 100644 index 0000000..27ec3a7 --- /dev/null +++ b/cmake/VersionFunctions.cmake @@ -0,0 +1,21 @@ +function(get_library_version VERSION_ARG) + file(STRINGS librabbitmq/amqp.h _API_VERSION_MAJOR REGEX "^#define AMQP_VERSION_MAJOR [0-9]+$") + file(STRINGS librabbitmq/amqp.h _API_VERSION_MINOR REGEX "^#define AMQP_VERSION_MINOR [0-9]+$") + file(STRINGS librabbitmq/amqp.h _API_VERSION_PATCH REGEX "^#define AMQP_VERSION_PATCH [0-9]+$") + + string(REGEX MATCH "[0-9]+" _API_VERSION_MAJOR ${_API_VERSION_MAJOR}) + string(REGEX MATCH "[0-9]+" _API_VERSION_MINOR ${_API_VERSION_MINOR}) + string(REGEX MATCH "[0-9]+" _API_VERSION_PATCH ${_API_VERSION_PATCH}) + + # VERSION to match what is in autotools + set(${VERSION_ARG} ${_API_VERSION_MAJOR}.${_API_VERSION_MINOR}.${_API_VERSION_PATCH} PARENT_SCOPE) +endfunction() + +function(compute_soversion CURRENT REVISION AGE VERSION SOVERSION) + math(EXPR MAJOR "${CURRENT} - ${AGE}") + math(EXPR MINOR "${AGE}") + math(EXPR PATCH "${REVISION}") + + set(${VERSION} ${MAJOR}.${MINOR}.${PATCH} PARENT_SCOPE) + set(${SOVERSION} ${MAJOR} PARENT_SCOPE) +endfunction()
\ No newline at end of file diff --git a/librabbitmq/CMakeLists.txt b/librabbitmq/CMakeLists.txt index d8dcd26..ba9edf4 100644 --- a/librabbitmq/CMakeLists.txt +++ b/librabbitmq/CMakeLists.txt @@ -1,5 +1,3 @@ -project(librabbitmq "C") - if (REGENERATE_AMQP_FRAMING) set(AMQP_CODEGEN_PY "${CMAKE_CURRENT_BINARY_DIR}/amqp_codegen.py") set(CODEGEN_PY "${CMAKE_CURRENT_BINARY_DIR}/codegen.py") |