基于cmake为项目自动获取git分支tag的版本号和commitid
warning:
这篇文章距离上次修改已过180天,其中的内容可能已经有所变动。
要使用CMake自动获取Git分支的标签版本号和提交ID,你可以使用Git
命令行工具和CMake的execute_process
指令。以下是一个简单的CMake脚本示例,它将获取当前分支的最新标签和最新提交ID。
# 查找Git可执行文件的位置
find_package(Git)
# 确保Git可用
if(NOT GIT_FOUND)
message(FATAL_ERROR "Git must be installed to get version information.")
endif()
# 定义函数来获取Git标签和提交ID
function(get_git_tag_and_commit_id VERSION_VAR COMMIT_ID_VAR)
# 获取最新的标签
execute_process(
COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=0
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE ${VERSION_VAR}
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# 获取最新的提交ID
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE ${COMMIT_ID_VAR}
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endfunction()
# 调用函数,获取版本号和提交ID
get_git_tag_and_commit_id(PROJECT_VERSION PROJECT_COMMIT_ID)
# 打印结果
message(STATUS "Version: ${PROJECT_VERSION}")
message(STATUS "Commit ID: ${PROJECT_COMMIT_ID}")
在CMakeLists.txt中使用上述代码,它会自动获取当前Git仓库的最新标签和最新提交ID,并将它们存储在变量PROJECT_VERSION
和PROJECT_COMMIT_ID
中。然后,你可以在CMake配置中使用这些变量,例如在安装头文件中定义版本号。
评论已关闭