mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-12 16:21:13 +00:00
66 lines
2.6 KiB
CMake
66 lines
2.6 KiB
CMake
################################################################################
|
|
# Copyright (C) 2018-2021 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH #
|
|
# #
|
|
# This software is distributed under the terms of the #
|
|
# GNU Lesser General Public Licence (LGPL) version 3, #
|
|
# copied verbatim in the file "LICENSE" #
|
|
################################################################################
|
|
|
|
include_guard(GLOBAL)
|
|
|
|
if(NOT DEFINED ${GIT_EXECUTABLE})
|
|
find_program(GIT_EXECUTABLE NAMES git)
|
|
endif()
|
|
|
|
# get_git_version([DEFAULT_VERSION version] [DEFAULT_DATE date] [OUTVAR_PREFIX prefix])
|
|
#
|
|
# Sets variables #prefix#_VERSION, #prefix#_GIT_VERSION, #prefix#_DATE, #prefix#_GIT_DATE
|
|
function(get_git_version)
|
|
cmake_parse_arguments(ARGS "" "DEFAULT_VERSION;DEFAULT_DATE;OUTVAR_PREFIX" "" ${ARGN})
|
|
|
|
if(NOT ARGS_OUTVAR_PREFIX)
|
|
set(ARGS_OUTVAR_PREFIX PROJECT)
|
|
endif()
|
|
|
|
if(GIT_EXECUTABLE AND EXISTS ${CMAKE_SOURCE_DIR}/.git)
|
|
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --dirty --match "v*"
|
|
OUTPUT_VARIABLE ${ARGS_OUTVAR_PREFIX}_GIT_VERSION
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
)
|
|
if(${ARGS_OUTVAR_PREFIX}_GIT_VERSION)
|
|
# cut first two characters "v-"
|
|
string(SUBSTRING ${${ARGS_OUTVAR_PREFIX}_GIT_VERSION} 1 -1 ${ARGS_OUTVAR_PREFIX}_GIT_VERSION)
|
|
endif()
|
|
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%cd
|
|
OUTPUT_VARIABLE ${ARGS_OUTVAR_PREFIX}_GIT_DATE
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
)
|
|
endif()
|
|
|
|
if(NOT ${ARGS_OUTVAR_PREFIX}_GIT_VERSION)
|
|
if(ARGS_DEFAULT_VERSION)
|
|
set(${ARGS_OUTVAR_PREFIX}_GIT_VERSION ${ARGS_DEFAULT_VERSION})
|
|
else()
|
|
set(${ARGS_OUTVAR_PREFIX}_GIT_VERSION 0.0.0.0)
|
|
endif()
|
|
endif()
|
|
|
|
if(NOT ${ARGS_OUTVAR_PREFIX}_GIT_DATE)
|
|
if(ARGS_DEFAULT_DATE)
|
|
set(${ARGS_OUTVAR_PREFIX}_GIT_DATE ${ARGS_DEFAULT_DATE})
|
|
else()
|
|
set(${ARGS_OUTVAR_PREFIX}_GIT_DATE "Thu Jan 1 00:00:00 1970 +0000")
|
|
endif()
|
|
endif()
|
|
|
|
string(REGEX MATCH "^([^-]*)" blubb ${${ARGS_OUTVAR_PREFIX}_GIT_VERSION})
|
|
|
|
# return values
|
|
set(${ARGS_OUTVAR_PREFIX}_VERSION ${CMAKE_MATCH_0} PARENT_SCOPE)
|
|
set(${ARGS_OUTVAR_PREFIX}_DATE ${${ARGS_OUTVAR_PREFIX}_GIT_DATE} PARENT_SCOPE)
|
|
set(${ARGS_OUTVAR_PREFIX}_GIT_VERSION ${${ARGS_OUTVAR_PREFIX}_GIT_VERSION} PARENT_SCOPE)
|
|
set(${ARGS_OUTVAR_PREFIX}_GIT_DATE ${${ARGS_OUTVAR_PREFIX}_GIT_DATE} PARENT_SCOPE)
|
|
endfunction()
|