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