FindSubversion

从 subversion 工作副本中提取信息

该模块定义以下变量

Subversion_SVN_EXECUTABLE - path to svn command line client
Subversion_VERSION_SVN - version of svn command line client
Subversion_FOUND - true if the command line client was found
SUBVERSION_FOUND - same as Subversion_FOUND, set for compatibility reasons

可以使用标准语法指定 Subversion 的最低必需版本,例如 find_package(Subversion 1.4)

如果找到命令行客户端可执行文件,则定义了两个宏

Subversion_WC_INFO(<dir> <var-prefix> [IGNORE_SVN_FAILURE])
Subversion_WC_LOG(<dir> <var-prefix>)

Subversion_WC_INFO 提取给定位置的 subversion 工作副本的信息。如果对 <dir> 运行 Subversion 的 info 命令成功,则此宏定义以下变量;否则会生成 SEND_ERROR 消息。

在 3.13 版本中添加:通过提供 IGNORE_SVN_FAILURE 选项可以忽略错误,这会导致这些变量保持未定义状态。

<var-prefix>_WC_URL - url of the repository (at <dir>)
<var-prefix>_WC_ROOT - root url of the repository
<var-prefix>_WC_REVISION - current revision
<var-prefix>_WC_LAST_CHANGED_AUTHOR - author of last commit
<var-prefix>_WC_LAST_CHANGED_DATE - date of last commit
<var-prefix>_WC_LAST_CHANGED_REV - revision of last commit
<var-prefix>_WC_INFO - output of command `svn info <dir>'

Subversion_WC_LOG 检索给定位置的 subversion 工作副本的基本修订版本的日志消息。此宏定义变量

<var-prefix>_LAST_CHANGED_LOG - last log of base revision

用法示例

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