FindGit¶
查找 Git 分布式版本控制系统
find_package(Git [<version>] [...])
导入的目标¶
当 CMAKE_ROLE 为 PROJECT 时,本模块提供以下 导入目标:
Git::Git3.14 版新增。
封装 Git 命令行客户端可执行文件的目标。它可以在
生成器表达式以及add_custom_target()和add_custom_command()等命令中使用。此目标仅在找到 Git 时可用。
结果变量¶
此模块定义了以下变量
Git_FOUND3.3 版本中新增。
一个布尔值,指示是否找到了 (请求版本) 的 Git。
Git_VERSION版本 4.2 中添加。
找到的 Git 版本。
缓存变量¶
以下缓存变量也可以设置
GIT_EXECUTABLE指向
git命令行客户端可执行文件的路径。
已弃用变量¶
以下变量提供用于向后兼容性
GIT_FOUND自版本 4.2 起已弃用: 使用
Git_FOUND,它的值相同。一个布尔值,指示是否找到了 (请求版本) 的 Git。
GIT_VERSION_STRING自版本 4.2 起已弃用: 使用
Git_VERSION,它的值相同。找到的 Git 版本。
示例¶
查找 Git 并从项目存储库检索最新提交
find_package(Git)
if(Git_FOUND)
execute_process(
COMMAND ${GIT_EXECUTABLE} --no-pager log -n 1 HEAD "--pretty=format:%h %s"
OUTPUT_VARIABLE output
RESULT_VARIABLE result
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(result EQUAL 0)
message(STATUS "Last Git commit: ${output}")
endif()
endif()