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()