20 lines
879 B
CMake
20 lines
879 B
CMake
set(commit unknown)
|
|
set(dirty -1)
|
|
if(GIT)
|
|
execute_process(COMMAND "${GIT}" -C "${SOURCE}" rev-parse --short=12 HEAD
|
|
OUTPUT_VARIABLE head RESULT_VARIABLE failed OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
|
|
if(failed EQUAL 0 AND NOT head STREQUAL "")
|
|
set(commit ${head})
|
|
execute_process(COMMAND "${GIT}" -C "${SOURCE}" status --porcelain --untracked-files=no
|
|
OUTPUT_VARIABLE changes RESULT_VARIABLE failed ERROR_QUIET)
|
|
if(failed EQUAL 0 AND changes STREQUAL "")
|
|
set(dirty 0)
|
|
elseif(failed EQUAL 0)
|
|
set(dirty 1)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
file(WRITE "${OUTPUT}.new" "#pragma once\n#define APS5_TRACE_COMMIT \"${commit}\"\n#define APS5_TRACE_DIRTY ${dirty}\n")
|
|
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${OUTPUT}.new" "${OUTPUT}")
|
|
file(REMOVE "${OUTPUT}.new")
|