mirror of
https://codeberg.org/armin/chromaflock.git
synced 2026-09-01 12:20:47 +02:00
47 lines
1.3 KiB
CMake
47 lines
1.3 KiB
CMake
cmake_minimum_required(VERSION 3.22)
|
|
|
|
set(ROOT_DIR "" CACHE STRING "ChromaFlock source root")
|
|
set(OUT_DIR "" CACHE STRING "Output directory for generated header")
|
|
|
|
execute_process(COMMAND git rev-parse --short HEAD
|
|
WORKING_DIRECTORY "${ROOT_DIR}"
|
|
OUTPUT_VARIABLE GIT_HASH
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
ERROR_QUIET)
|
|
if(NOT GIT_HASH)
|
|
set(GIT_HASH "unknown")
|
|
endif()
|
|
|
|
execute_process(COMMAND git rev-parse --abbrev-ref HEAD
|
|
WORKING_DIRECTORY "${ROOT_DIR}"
|
|
OUTPUT_VARIABLE GIT_BRANCH
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
ERROR_QUIET)
|
|
if(NOT GIT_BRANCH OR GIT_BRANCH STREQUAL "HEAD")
|
|
execute_process(COMMAND git describe --tags --always
|
|
WORKING_DIRECTORY "${ROOT_DIR}"
|
|
OUTPUT_VARIABLE GIT_BRANCH
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
ERROR_QUIET)
|
|
endif()
|
|
if(NOT GIT_BRANCH)
|
|
set(GIT_BRANCH "unknown")
|
|
endif()
|
|
|
|
execute_process(COMMAND git status --porcelain
|
|
WORKING_DIRECTORY "${ROOT_DIR}"
|
|
OUTPUT_VARIABLE GIT_STATUS
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
ERROR_QUIET)
|
|
if(GIT_STATUS STREQUAL "")
|
|
set(GIT_DIRTY 0)
|
|
else()
|
|
set(GIT_DIRTY 1)
|
|
endif()
|
|
|
|
set(CHROMAFLOCK_GIT_HASH "${GIT_HASH}")
|
|
set(CHROMAFLOCK_GIT_BRANCH "${GIT_BRANCH}")
|
|
set(CHROMAFLOCK_GIT_DIRTY ${GIT_DIRTY})
|
|
|
|
configure_file("${ROOT_DIR}/Source/BuildInfo.h.in"
|
|
"${OUT_DIR}/BuildInfo.h" @ONLY)
|