查找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 在给定位置提取颠覆工作副本的信息。如果在 <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 检索给定位置的颠覆工作副本的基本修订的日志消息。这个宏定义变量:

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