From ad87802d6e01e97946de20b6c2fa28aed184ed20 Mon Sep 17 00:00:00 2001 From: Arnaud Pouliquen Date: Tue, 13 Apr 2021 17:26:20 +0200 Subject: [PATCH] Rework the version management PROJECT_VERSION* variables are recognized by cmake. Rename the PROJECT_VER* variables used for the version. Create a version file to make it easier to find and update the version. Signed-off-by: Arnaud Pouliquen --- VERSION | 3 +++ cmake/options.cmake | 18 ++++++++++++++---- lib/CMakeLists.txt | 4 ++-- lib/config.h | 8 ++++---- 4 files changed, 23 insertions(+), 10 deletions(-) create mode 100644 VERSION diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..d6a0f3a --- /dev/null +++ b/VERSION @@ -0,0 +1,3 @@ +VERSION_MAJOR = 0 +VERSION_MINOR = 1 +VERSION_PATCH = 0 diff --git a/cmake/options.cmake b/cmake/options.cmake index 25c7c96..4b86616 100644 --- a/cmake/options.cmake +++ b/cmake/options.cmake @@ -1,7 +1,17 @@ -set (PROJECT_VER_MAJOR 0) -set (PROJECT_VER_MINOR 1) -set (PROJECT_VER_PATCH 0) -set (PROJECT_VER 0.1.0) +file(READ ${CMAKE_SOURCE_DIR}/VERSION ver) + +string(REGEX MATCH "VERSION_MAJOR = ([0-9]*)" _ ${ver}) +set(PROJECT_VERSION_MAJOR ${CMAKE_MATCH_1}) + +string(REGEX MATCH "VERSION_MINOR = ([0-9]*)" _ ${ver}) +set(PROJECT_VERSION_MINOR ${CMAKE_MATCH_1}) + +string(REGEX MATCH "VERSION_PATCH = ([0-9]*)" _ ${ver}) +set(PROJECT_VERSION_PATCH ${CMAKE_MATCH_1}) + +set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}) + +message(STATUS "libmetal version: ${PROJECT_VERSION} (${CMAKE_SOURCE_DIR})") if (NOT DEFINED CMAKE_BUILD_TYPE) set (CMAKE_BUILD_TYPE Debug) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 0a93487..121e0c6 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -83,8 +83,8 @@ else (WITH_ZEPHYR) endif (PROJECT_EC_FLAGS) set_target_properties (${_lib} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}" - VERSION "${PROJECT_VER}" - SOVERSION "${PROJECT_VER_MAJOR}" + VERSION "${PROJECT_VERSION}" + SOVERSION "${PROJECT_VERSION_MAJOR}" ) endif (WITH_SHARED_LIB) diff --git a/lib/config.h b/lib/config.h index 6cc739c..7661a13 100644 --- a/lib/config.h +++ b/lib/config.h @@ -17,16 +17,16 @@ extern "C" { #endif /** Library major version number. */ -#define METAL_VER_MAJOR @PROJECT_VER_MAJOR@ +#define METAL_VER_MAJOR @PROJECT_VERSION_MAJOR@ /** Library minor version number. */ -#define METAL_VER_MINOR @PROJECT_VER_MINOR@ +#define METAL_VER_MINOR @PROJECT_VERSION_MINOR@ /** Library patch level. */ -#define METAL_VER_PATCH @PROJECT_VER_PATCH@ +#define METAL_VER_PATCH @PROJECT_VERSION_PATCH@ /** Library version string. */ -#define METAL_VER "@PROJECT_VER@" +#define METAL_VER "@PROJECT_VERSION@" /** System type (linux, generic, ...). */ #define METAL_SYSTEM "@PROJECT_SYSTEM@"