From 0658549fb1a840d04672631cf646b65a3ba9924e Mon Sep 17 00:00:00 2001 From: Elia Zammuto Date: Sun, 29 Jan 2023 17:38:29 +0100 Subject: [PATCH] Get version from cmakefiles --- CMakeLists.txt | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7717f122bb2..ae56fb74bf4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,17 +16,39 @@ find_package(Git) if(GIT_EXECUTABLE) MESSAGE("${CMAKE_CURRENT_SOURCE_DIR}") get_filename_component(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY) - # Generate a git-describe version string from Git repository tags + #Get current Branch execute_process( - COMMAND ${GIT_EXECUTABLE} describe --tags --dirty + COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD + #WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE GIT_DESCRIBE_BRANCH + RESULT_VARIABLE GIT_DESCRIBE_ERROR_CODE + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + # Gather current commit + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD #WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE GIT_DESCRIBE_VERSION RESULT_VARIABLE GIT_DESCRIBE_ERROR_CODE OUTPUT_STRIP_TRAILING_WHITESPACE ) + # Check if Dirty + execute_process( + COMMAND ${GIT_EXECUTABLE} diff --quiet --exit-code + #WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + RESULT_VARIABLE GIT_IS_DIRTY + OUTPUT_STRIP_TRAILING_WHITESPACE + ) if(NOT GIT_DESCRIBE_ERROR_CODE) - set(PROJECT_VERSION ${GIT_DESCRIBE_VERSION}) - MESSAGE(Sunshine Version: ${GIT_DESCRIBE_VERSION}) + MESSAGE(Sunshine Branch: ${GIT_DESCRIBE_BRANCH}) + if(NOT GIT_DESCRIBE_BRANCH STREQUAL "master") + set(PROJECT_VERSION ${PROJECT_VERSION}-g${GIT_DESCRIBE_VERSION}) + MESSAGE(Sunshine Version: ${GIT_DESCRIBE_VERSION}) + endif() + if(GIT_IS_DIRTY) + set(PROJECT_VERSION ${PROJECT_VERSION}-dirty) + MESSAGE(Git tree is dirty!) + endif() else() MESSAGE(ERROR ": Got git error while fetching tags: ${GIT_DESCRIBE_ERROR_CODE}") endif()