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 是整數。專案應以其偏好的順序列出它們接受的版本,因為只會選擇列表中第一個支援的值。該命令將忽略 major 版本高於它為該物件種類支援的任何主要版本的版本。如果遇到無效的版本號,或者如果請求的版本都不受支援,則會引發錯誤。

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

多次新增相同事物的查詢並非錯誤,無論是來自查詢檔案還是來自多次呼叫 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
)