From 0638c87f62b39a6cde6b588a546d7d49db727b27 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 22 Apr 2022 15:47:47 +0200 Subject: [PATCH] made version handling more robust --- CMakeLists.txt | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 48fb256e..9291e0db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,9 @@ cmake_minimum_required(VERSION 3.13) # set(CMAKE_VERBOSE TRUE) +set(OBSW_VERSION_MAJOR_IF_GIT_FAILS 0) +set(OBSW_VERSION_MINOR_IF_GIT_FAILS 0) +set(OBSW_VERSION_REVISION_IF_GIT_FAILS 0) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") @@ -44,20 +47,34 @@ include(EiveHelpers) pre_project_config() # Version handling -determine_version_with_git("--exclude" "docker_*") -set(GIT_INFO ${GIT_INFO} CACHE STRING "Version information retrieved with git describe") -list(GET GIT_INFO 1 OBSW_VERSION_MAJOR) -list(GET GIT_INFO 2 OBSW_VERSION_MINOR) -list(GET GIT_INFO 3 OBSW_VERSION_REVISION) -list(GET GIT_INFO 4 OBSW_VERSION_CST_GIT_SHA1) -if(NOT OBSW_VERSION_MAJOR) - set(OBSW_VERSION_MAJOR 0) +set(GIT_VER_HANDLING_OK FALSE) +if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git) + determine_version_with_git("--exclude" "docker_*") + set(GIT_INFO ${GIT_INFO} CACHE STRING "Version information retrieved with git describe") + if(GIT_INFO) + set(GIT_INFO ${GIT_INFO} CACHE STRING "Version information retrieved with git describe") + list(GET GIT_INFO 1 OBSW_VERSION_MAJOR) + list(GET GIT_INFO 2 OBSW_VERSION_MINOR) + list(GET GIT_INFO 3 OBSW_VERSION_REVISION) + list(GET GIT_INFO 4 OBSW_VERSION_CST_GIT_SHA1) + if(NOT OBSW_VERSION_MAJOR) + set(OBSW_VERSION_MAJOR ${OBSW_VERSION_MAJOR_IF_GIT_FAILS}) + endif() + if(NOT OBSW_VERSION_MINOR) + set(FSFW_SUBVERSION ${OBSW_VERSION_MINOR_IF_GIT_FAILS}) + endif() + if(NOT OBSW_VERSION_REVISION) + set(FSFW_REVISION ${OBSW_VERSION_REVISION_IF_GIT_FAILS}) + endif() + set(GIT_VER_HANDLING_OK TRUE) + else() + set(GIT_VER_HANDLING_OK FALSE) + endif() endif() -if(NOT OBSW_VERSION_MINOR) - set(OBSW_VERSION_MINOR 0) -endif() -if(NOT OBSW_VERSION_REVISION) - set(OBSW_VERSION_REVISION 0) +if(NOT GIT_VER_HANDLING_OK) + set(OBSW_VERSION_MAJOR ${OBSW_VERSION_MAJOR_IF_GIT_FAILS}) + set(OBSW_VERSION_MINOR ${OBSW_VERSION_MINOR_IF_GIT_FAILS}) + set(OBSW_VERSION_REVISION ${OBSW_VERSION_REVISION_IF_GIT_FAILS}) endif() # Check whether the user has already installed Catch2 first. This has to come before