[cmake]: Improve version history record

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I86cc8e9b4788e2d0a3f296f127e7e938c0b0cde4
This commit is contained in:
Herman Chen
2020-09-12 11:10:47 +08:00
parent 95670aa475
commit d733a62fba

View File

@@ -185,7 +185,7 @@ endif(GCC)
# Create git version information
# ----------------------------------------------------------------------------
set(VERSION_CNT 0)
set(VERSION_MAX_CNT 10)
set(VERSION_MAX_CNT 9)
set(VERSION_INFO "\"unknown mpp version for missing VCS info\"")
foreach (CNT RANGE ${VERSION_MAX_CNT})
set(VERSION_HISTORY_${CNT} "NULL")
@@ -219,33 +219,26 @@ if(EXISTS "${PROJECT_SOURCE_DIR}/.git")
set(GIT_LOG_FORMAT "%h author: %<|(30)%an %cd %s %d")
# get history version information
execute_process(COMMAND ${GIT_EXECUTABLE} log -${VERSION_MAX_CNT} --oneline --date=short --pretty=format:${GIT_LOG_FORMAT}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
OUTPUT_VARIABLE EXEC_OUT
ERROR_VARIABLE EXEC_ERROR
RESULT_VARIABLE EXEC_RET
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE)
# setup logs
message(STATUS "git version history:")
foreach (CNT RANGE ${VERSION_MAX_CNT})
execute_process(COMMAND ${GIT_EXECUTABLE} log HEAD~${CNT} -1 --oneline --date=short --pretty=format:${GIT_LOG_FORMAT}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
OUTPUT_VARIABLE EXEC_OUT
ERROR_VARIABLE EXEC_ERROR
RESULT_VARIABLE EXEC_RET
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE)
if (NOT EXEC_RET)
set(VERSION_HISTORY ${EXEC_OUT})
string(REPLACE "\n" ";" VERSION_HISTORY ${VERSION_HISTORY})
list(LENGTH VERSION_HISTORY VERSION_CNT)
message(STATUS "${VERSION_CNT} git history:")
# setup logs
set(CNT 0)
foreach(VERSION_LOG ${VERSION_HISTORY})
message(STATUS ${VERSION_LOG})
if (NOT EXEC_RET)
set(VERSION_LOG ${EXEC_OUT})
string(REPLACE "\"" "\\\"" VERSION_LOG ${VERSION_LOG})
message(STATUS ${VERSION_LOG})
set(VERSION_HISTORY_${CNT} "\"${VERSION_LOG}\"")
math(EXPR CNT "${CNT}+1")
endforeach(VERSION_LOG)
else()
message(STATUS "git ret ${EXEC_RET}")
message(STATUS "${EXEC_ERROR}")
endif()
math(EXPR VERSION_CNT "${VERSION_CNT}+1")
endif()
endforeach(CNT)
message(STATUS "total ${VERSION_CNT} git version recorded")
endif()
# add git hooks