linuxOS_AP06/app/rkadk/version/Version.cmake

61 lines
2.3 KiB
CMake
Raw Normal View History

2025-06-03 04:28:32 +00:00
# ----------------------------------------------------------------------------
# Create git version information
# ----------------------------------------------------------------------------
set(VERSION_CNT 0)
set(VERSION_MAX_CNT 5)
set(VERSION_INFO "\"unknown rkadk version for missing VCS info\"")
set(BUILD_INFO "\"unknown rkadk build info\"")
if(EXISTS "${PROJECT_SOURCE_DIR}/.git")
find_package(Git)
if(GIT_FOUND)
# get current version info
set(GIT_LOG_FORMAT "git-%h %cd")
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --oneline --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_INFO ${EXEC_OUT})
message(STATUS "git current version:")
message(STATUS "${VERSION_INFO}")
string(REPLACE "\"" "\\\"" VERSION_INFO ${VERSION_INFO})
set(VERSION_INFO "\"${VERSION_INFO}\"")
else()
message(STATUS "git ret ${EXEC_RET}")
message(STATUS "${EXEC_ERROR}")
endif()
# get version build info
execute_process(COMMAND ${GIT_EXECUTABLE} config user.name
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(BUILD_AUTHOR ${EXEC_OUT})
string(SUBSTRING ${BUILD_AUTHOR} 0 3 BUILD_AUTHOR)
string(TIMESTAMP BUILD_TIME "%Y-%m-%d %H:%M:%S")
set(BUILD_INFO "built ${BUILD_TIME}")
set(BUILD_INFO "\"${BUILD_INFO}\"")
message(STATUS "${BUILD_INFO}")
else()
message(STATUS "git ret ${EXEC_RET}")
message(STATUS "${EXEC_ERROR}")
endif()
configure_file(
"${PROJECT_SOURCE_DIR}/version/version.in"
"${PROJECT_SOURCE_DIR}/include/version.h"
)
endif()
endif(EXISTS "${PROJECT_SOURCE_DIR}/.git")