FindSubversion¶
查找 Subversion 命令行客户端可执行文件(svn
),并提供从 Subversion 工作副本提取信息的命令。
find_package(Subversion [<version>] [...])
结果变量¶
此模块定义了以下变量
Subversion_FOUND
一个布尔值,指示是否找到(所请求版本的)Subversion 命令行客户端。为了向后兼容,
SUBVERSION_FOUND
变量也设置为相同的值。Subversion_VERSION_SVN
找到的
svn
命令行客户端的版本。
缓存变量¶
以下缓存变量也可以设置
Subversion_SVN_EXECUTABLE
svn
命令行客户端的路径。
命令¶
如果找到 Subversion 命令行客户端,此模块将提供以下命令:
- Subversion_WC_INFO¶
从指定目录下的 Subversion 工作副本提取信息。
Subversion_WC_INFO(<dir> <var-prefix> [IGNORE_SVN_FAILURE])
如果成功运行 Subversion 的
info
子命令在<dir>
上,此命令将定义以下变量;否则将生成SEND_ERROR
消息。<var-prefix>_WC_URL
仓库的 URL(在
<dir>
)。<var-prefix>_WC_ROOT
仓库的根 URL。
<var-prefix>_WC_REVISION
当前修订版本。
<var-prefix>_WC_LAST_CHANGED_AUTHOR
最后提交的作者。
<var-prefix>_WC_LAST_CHANGED_DATE
最后提交的日期。
<var-prefix>_WC_LAST_CHANGED_REV
最后提交的修订版本。
<var-prefix>_WC_INFO
命令
svn info <dir>
的输出。
选项包括
IGNORE_SVN_FAILURE
3.13 版本新增。
指定后,Subversion 操作的错误不会触发
SEND_ERROR
消息。如果发生错误,<var-prefix>_*
变量将保持未定义。
- Subversion_WC_LOG¶
检索给定位置的 Subversion 工作副本的基准修订版本的日志消息。
Subversion_WC_LOG(<dir> <var-prefix>)
如果成功运行 Subversion 的
log
子命令在<dir>
上,此命令将定义以下变量;否则将生成SEND_ERROR
消息。<var-prefix>_LAST_CHANGED_LOG
位于
<dir>
的 Subversion 工作副本的基准修订版本的最后日志。
示例¶
示例:查找 Subversion¶
查找 Subversion
find_package(Subversion)
或者,查找 Subversion 并指定最低必需版本。
find_package(Subversion 1.4)
或者,查找 Subversion 并将其设为必需(如果未找到,则处理停止并显示错误消息)。
find_package(Subversion REQUIRED)
示例:使用 Subversion¶
查找 Subversion 并检索有关当前项目工作副本的信息。
find_package(Subversion)
if(Subversion_FOUND)
Subversion_WC_INFO(${PROJECT_SOURCE_DIR} Project)
message("Current revision is ${Project_WC_REVISION}")
Subversion_WC_LOG(${PROJECT_SOURCE_DIR} Project)
message("Last changed log is ${Project_LAST_CHANGED_LOG}")
endif()