cmake_file_api

加入於版本 3.27。

啟用與CMake 檔案 API互動。

cmake_file_api(QUERY ...)

QUERY 子命令為目前的 CMake 呼叫新增一個檔案 API 查詢。

cmake_file_api(
  QUERY
  API_VERSION <version>
  [CODEMODEL <versions>...]
  [CACHE <versions>...]
  [CMAKEFILES <versions>...]
  [TOOLCHAINS <versions>...]
)

必須始終提供 API_VERSION。目前,<version> 唯一支援的值是 1。有關回覆內容和位置的詳細資訊,請參閱API v1

每個可選的關鍵字 CODEMODELCACHECMAKEFILESTOOLCHAINS 對應到專案可以請求的其中一個物件種類。configureLog 物件種類不能使用此命令設定,因為它必須在 CMake 開始讀取最上層 CMakeLists.txt 檔案之前設定。

對於每個可選的關鍵字,<versions> 列表必須包含一個或多個 majormajor.minor 形式的版本值,其中 majorminor 是整數。專案應按其偏好的順序列出它們接受的版本,因為只會選取列表中第一個支援的值。如果遇到無效的版本號碼,或者如果沒有支援請求的版本,則該命令將引發錯誤。

對於請求的每種類型的物件種類,將在內部加入一個等效於共享、無狀態查詢的查詢。不會在檔案系統中建立查詢檔案。回覆在產生時寫入檔案系統。

多次新增相同內容的查詢並不是錯誤,無論是來自查詢檔案還是多次呼叫 cmake_file_api(QUERY)。最終查詢集將是磁碟上指定的所有查詢和專案提交的查詢的合併組合。

範例

專案可能希望在建置時使用來自檔案 API 的回覆,以實作某種形式的驗證任務。專案可以使用 cmake_file_api(QUERY) 來請求目前執行所需的資訊,而不是依賴 CMake 外部的東西來建立查詢檔案。然後,它可以建立一個自訂命令在建置時執行,並知道請求的資訊應始終可用。

cmake_file_api(
  QUERY
  API_VERSION 1
  CODEMODEL 2.3
  TOOLCHAINS 1
)

add_custom_target(verify_project
  COMMAND ${CMAKE_COMMAND}
    -D BUILD_DIR=${CMAKE_BINARY_DIR}
    -D CONFIG=$<CONFIG>
    -P ${CMAKE_CURRENT_SOURCE_DIR}/verify_project.cmake
)