blob: 41c654d33250389ff600037c6e5ff9ccb045825c (
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
FIND_PROGRAM(GIT_EXECUTABLE NAMES git git.exe DOC "git command line client")
FIND_PROGRAM(DATE_EXECUTABLE NAMES date DOC "unix date command")
get_filename_component(SOURCE_DIR ${SRC} PATH)
if (GIT_EXECUTABLE)
EXECUTE_PROCESS(
COMMAND ${GIT_EXECUTABLE} log "--format=%ct" # output as unix timestamp
WORKING_DIRECTORY "${SOURCE_DIR}"
OUTPUT_VARIABLE GIT_OUTPUT_DATE
ERROR_VARIABLE GIT_ERROR
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE
)
if(NOT GIT_OUTPUT_DATE)
message(STATUS "Cannot determine current git commit - git error: '${GIT_ERROR}'")
set(GIT_OUTPUT_DATE "0000000000")
else()
EXECUTE_PROCESS(
COMMAND ${GIT_EXECUTABLE} log "--format='%h'"
WORKING_DIRECTORY "${SOURCE_DIR}"
OUTPUT_VARIABLE GIT_OUTPUT_HASH
ERROR_VARIABLE GIT_ERROR
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE
)
if(NOT GIT_OUTPUT_HASH)
message(STATUS "Cannot determine current git commit - git error: '${GIT_ERROR}'")
set(GIT_OUTPUT_HASH "xdevxgitxnotxfound")
endif(NOT GIT_OUTPUT_HASH)
endif(NOT GIT_OUTPUT_DATE)
else()
message(STATUS "git not found, cannot record git commit")
set(GIT_OUTPUT_DATE "0000000000") # To match length of android versionCode
set(GIT_OUTPUT_HASH "xdevxgitxnotxfound")
endif(GIT_EXECUTABLE)
string(REGEX MATCH "^[0-9]+" VERSION_NUM ${GIT_OUTPUT_DATE} )
EXECUTE_PROCESS(
COMMAND ${DATE_EXECUTABLE} "+%y%m%d%H%M" "-d \@${VERSION_NUM}" # output as unix timestamp
WORKING_DIRECTORY "${SOURCE_DIR}"
OUTPUT_VARIABLE DATE_CONVERT_OUTPUT
ERROR_VARIABLE DATE_CONVERT_ERROR
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE
)
if(NOT DATE_CONVERT_ERROR)
string(REGEX MATCH "[0-9]+" VERSION_CODE ${DATE_CONVERT_OUTPUT})
else(NOT DATE_CONVERT_ERROR)
message(FATAL_ERROR "Date convert not working\nError message:\n${DATE_CONVERT_ERROR}")
endif(NOT DATE_CONVERT_ERROR)
string(REGEX MATCH "[a-z0-9]+" VERSION ${GIT_OUTPUT_HASH} )
if (STRIP_M)
set(VERSION ${VERSION_CODE})
endif()
set(NAVIT_VARIANT "-")
set(GIT_VERSION VERSION)
set(${NAME} ${VERSION})
message (STATUS "Git commit: ${VERSION}")
message (STATUS "Git date: ${VERSION_CODE}")
CONFIGURE_FILE(${SRC} ${DST} @ONLY)
|