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