You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.3 KiB
35 lines
1.3 KiB
find_package(Git) |
|
|
|
if(NOT GIT_FOUND OR NOT EXISTS "${PROJECT_SOURCE_DIR}/.git") |
|
return() |
|
endif() |
|
|
|
# Update submodules as needed |
|
option(GIT_SUBMODULE "Check submodules during build" ON) |
|
if(NOT GIT_SUBMODULE) |
|
return() |
|
endif() |
|
|
|
message(STATUS "Submodule update") |
|
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive |
|
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" |
|
RESULT_VARIABLE GIT_SUBMODULE_RESULT) |
|
if(NOT GIT_SUBMODULE_RESULT EQUAL "0") |
|
message(FATAL_ERROR "git submodule update --init failed with ${GIT_SUBMODULE_RESULT}, please checkout submodules") |
|
endif() |
|
|
|
# Fetch the necessary git variables |
|
execute_process(COMMAND ${GIT_EXECUTABLE} describe --always --tags |
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} |
|
OUTPUT_VARIABLE APP_VERSION_STR |
|
OUTPUT_STRIP_TRAILING_WHITESPACE) |
|
|
|
execute_process(COMMAND ${GIT_EXECUTABLE} describe --abbrev=0 |
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} |
|
OUTPUT_VARIABLE REL_VERSION |
|
OUTPUT_STRIP_TRAILING_WHITESPACE) |
|
|
|
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%aI ${REL_VERSION} |
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} |
|
OUTPUT_VARIABLE REL_DATE |
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|