34 lines
No EOL
849 B
CMake
34 lines
No EOL
849 B
CMake
execute_process(
|
|
COMMAND git rev-parse --short HEAD
|
|
WORKING_DIRECTORY ${SOURCE_DIR}
|
|
OUTPUT_VARIABLE GIT_HASH_SHORT
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
execute_process(
|
|
COMMAND git rev-parse HEAD
|
|
WORKING_DIRECTORY ${SOURCE_DIR}
|
|
OUTPUT_VARIABLE GIT_HASH_LONG
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
# Check for uncommitted changes
|
|
execute_process(
|
|
COMMAND git diff-index --quiet HEAD --
|
|
WORKING_DIRECTORY ${SOURCE_DIR}
|
|
RESULT_VARIABLE GIT_DIRTY
|
|
)
|
|
|
|
# If GIT_DIRTY is non-zero, there are local modifications
|
|
if(NOT GIT_DIRTY EQUAL 0)
|
|
set(GIT_HASH_SHORT "${GIT_HASH_SHORT}+")
|
|
set(GIT_HASH_LONG "${GIT_HASH_LONG}+")
|
|
endif()
|
|
|
|
file(WRITE ${OUTPUT_FILE}
|
|
"#ifndef GIT_VERSION_H
|
|
#define GIT_VERSION_H
|
|
#define GIT_COMMIT_HASH_SHORT \"${GIT_HASH_SHORT}\"
|
|
#define GIT_COMMIT_HASH_LONG \"${GIT_HASH_LONG}\"
|
|
#endif
|
|
") |