diff --git a/CMakeLists.txt b/CMakeLists.txt index 36532d1544195c46c27f18297d0d82c16d1e8d31..3fe16ca68deb862550e1f0bf3bd4bc2124e48a92 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,8 +10,17 @@ include(CheckNotInSources) #----------------- Main configuration ----------------- #------------------------------------------------------ -project (Pastis - VERSION 0.3.0) +# custom variable allowing to define version suffixes such as -rc*, -beta*, ... +set(PASTIS_VERSION "0.3.0") + +# deduce PASTIS_SHORT_VERSION using regex +string(REGEX MATCH "^[0-9]+\.[0-9]+\.[0-9]+" PASTIS_SHORT_VERSION ${PASTIS_VERSION}) +if("${PASTIS_SHORT_VERSION}" STREQUAL "") + message(FATAL_ERROR "Unable to compute short version from PASTIS_VERSION=${PASTIS_VERSION}") +endif() + +# set project version as PASTIS_SHORT_VERSION +project (Pastis VERSION ${PASTIS_SHORT_VERSION}) #------------------------------------------------------ @@ -24,23 +33,23 @@ set(PASTIS_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}") # Add new build types message("* Adding build types...") -SET(CMAKE_CXX_FLAGS_COVERAGE +set(CMAKE_CXX_FLAGS_COVERAGE "-g -Wall -O0 --coverage" CACHE STRING "Flags used by the C++ compiler during coverage builds." FORCE ) -SET(CMAKE_C_FLAGS_COVERAGE +set(CMAKE_C_FLAGS_COVERAGE "-g -Wall -O0 --coverage" CACHE STRING "Flags used by the C compiler during coverage builds." FORCE ) -SET(CMAKE_EXE_LINKER_FLAGS_COVERAGE +set(CMAKE_EXE_LINKER_FLAGS_COVERAGE "--coverage" CACHE STRING "Flags used for linking binaries during coverage builds." FORCE ) -SET(CMAKE_SHARED_LINKER_FLAGS_COVERAGE +set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE "--coverage" CACHE STRING "Flags used by the shared libraries linker during coverage builds." FORCE ) -MARK_AS_ADVANCED( +mark_as_advanced( CMAKE_CXX_FLAGS_COVERAGE CMAKE_C_FLAGS_COVERAGE CMAKE_EXE_LINKER_FLAGS_COVERAGE diff --git a/cmake/GetPastisGitRevision.cmake b/cmake/GetPastisGitRevision.cmake index f3b6919e5260de92352cb3dee838c56b5226dc7c..470ed7191af9c6e51010a8c47969fe63813007ad 100644 --- a/cmake/GetPastisGitRevision.cmake +++ b/cmake/GetPastisGitRevision.cmake @@ -6,7 +6,7 @@ find_package(Git QUIET) if(GIT_FOUND) execute_process( - COMMAND "${GIT_EXECUTABLE}" describe "--abbrev=0" + COMMAND "${GIT_EXECUTABLE}" describe "--abbrev=0" "--match=v[0-9]*" WORKING_DIRECTORY "${PASTIS_SOURCE_DIR}" OUTPUT_VARIABLE PASTIS_GIT_TAG RESULT_VARIABLE FOUND_PASTIS_GIT_INFO @@ -45,12 +45,10 @@ else() unset(HAS_PASTIS_GIT_INFO) endif() -string(FIND "${PASTIS_GIT_TAG}" "${CMAKE_PASTIS_VERSION}" FOUND_VERSION_SUBSTR) - if(FOUND_PASTIS_GIT_INFO EQUAL 0) - if("${FOUND_VERSION_SUBSTR}" STREQUAL "-1") + if(NOT("${PASTIS_GIT_TAG}" STREQUAL "v${PASTIS_VERSION}")) message("") - message ("###### CMake code version ${CMAKE_PASTIS_VERSION} and") + message ("###### CMake code version ${PASTIS_VERSION} and") message ("###### git revision info ${PASTIS_GIT_TAG} do not match!") message("") endif() @@ -65,5 +63,3 @@ endif() configure_file("${PASTIS_SOURCE_DIR}/src/utils/pastis_git_revision.hpp.in" "${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision" @ONLY) - - diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 5152bf5285ece836b5e8137755ab4935b434913e..045c6d879715b130dedf6b8135e3fb4ed9421483 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -51,7 +51,7 @@ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision.hpp add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/pastis_git_revision PRE_BUILD - COMMAND ${CMAKE_COMMAND} -DCMAKE_PASTIS_VERSION=${Pastis_VERSION} -DPASTIS_SOURCE_DIR=${PASTIS_SOURCE_DIR} -P ${PASTIS_SOURCE_DIR}/cmake/GetPastisGitRevision.cmake + COMMAND ${CMAKE_COMMAND} -DPASTIS_VERSION=${PASTIS_VERSION} -DPASTIS_SOURCE_DIR=${PASTIS_SOURCE_DIR} -P ${PASTIS_SOURCE_DIR}/cmake/GetPastisGitRevision.cmake COMMENT "Check pastis git status" VERBATIM ) diff --git a/src/utils/pastis_version.hpp.in b/src/utils/pastis_version.hpp.in index 2d9bd821530f46102f493b795bbc9c2bbf2dc27a..f07da441fa893ebc7da844dfde6379c040c71af2 100644 --- a/src/utils/pastis_version.hpp.in +++ b/src/utils/pastis_version.hpp.in @@ -1,6 +1,6 @@ #ifndef PASTIS_VERSION_HPP #define PASTIS_VERSION_HPP -#define PASTIS_VERSION "@Pastis_VERSION@" +#define PASTIS_VERSION "@PASTIS_VERSION@" #endif // PASTIS_VERSION_HPP