summaryrefslogtreecommitdiff
path: root/cmake/Modules/GenerateVersion.cmake
blob: 9b5304ad53939e32324cd24f5ce22519a832d998 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Always run during 'make'

if(VERSION_EXTRA)
	set(VERSION_GITHASH "${VERSION_STRING}")
else()
	execute_process(COMMAND git describe --tag --dirty
		WORKING_DIRECTORY "${GENERATE_VERSION_SOURCE_DIR}"
		OUTPUT_VARIABLE VERSION_GITHASH OUTPUT_STRIP_TRAILING_WHITESPACE
		ERROR_QUIET)

	if(VERSION_GITHASH)
		message(STATUS "*** Detected Git version ${VERSION_GITHASH} ***")
	else()
		execute_process(COMMAND git describe --always --tag --dirty
			WORKING_DIRECTORY "${GENERATE_VERSION_SOURCE_DIR}"
			OUTPUT_VARIABLE VERSION_GITHASH OUTPUT_STRIP_TRAILING_WHITESPACE
			ERROR_QUIET)
		if(VERSION_GITHASH)
			set(VERSION_GITHASH "${VERSION_STRING}-${VERSION_GITHASH}")
			message(STATUS "*** Detected shallow Git version ${VERSION_GITHASH} ***")
		else()
			set(VERSION_GITHASH "${VERSION_STRING}")
		endif()
	endif()
endif()

configure_file(
	${GENERATE_VERSION_SOURCE_DIR}/cmake_config_githash.h.in
	${GENERATE_VERSION_BINARY_DIR}/cmake_config_githash.h)