共用方式為


vcpkg_cmake_config_fixup

合併並更正發行和偵錯 CMake 目標和設定,以支援多重設定產生器。

使用方式

vcpkg_cmake_config_fixup(
    [PACKAGE_NAME <name>]
    [CONFIG_PATH <config-directory>]
    [TOOLS_PATH <tools/${PORT}>]
    [DO_NOT_DELETE_PARENT_CONFIG_PATH]
    [NO_PREFIX_CORRECTION]
)

若要使用此函式,您必須相依於協助程式埠 vcpkg-cmake-config

"dependencies": [
  {
    "name": "vcpkg-cmake-config",
    "host": true
  }
]

此外,更正目標的常見問題,例如絕對路徑和不正確的二進位檔。

對於許多埠,vcpkg_cmake_config_fixup()其本身應該運作,預設PACKAGE_NAME${PORT}為 ,預設CONFIG_PATHshare/${PACKAGE_NAME}。 對於傳遞至 find_package 的套件名稱與埠名稱不同的埠, PACKAGE_NAME 應該改為變更為該名稱。 對於無法設定檔案目錄的 *config.cmake 埠,請使用 CONFIG_PATH 來變更檔案的來源目錄。

如果名稱為 「cmake」,預設會移除CONFIG_PATH的父目錄。 DO_NOT_DELETE_PARENT_CONFIG_PATH傳遞 選項會停用這類行為,因為安裝多個 CMake 套件組態檔的埠很方便。

選項 NO_PREFIX_CORRECTION 會因為移動組態檔而停用 vcpkg 所完成的 _IMPORT_PREFIX 更正。 目前修正不會考慮檔案的移動方式,而且會套用相當簡單的更正,在某些情況下會產生錯誤的結果。

運作方式

  1. /share/${PACKAGE_NAME}移至 /debug/<CONFIG_PATH>/*targets-debug.cmake
  2. 轉換與 Windows 上相符/bin/*.exe/${TOOLS_PATH}/*.exe的所有參考。
  3. 轉換與其他平臺上相符/bin/*/${TOOLS_PATH}/*的所有參考。
  4. 自動產生的目標中的修正 ${_IMPORT_PREFIX}
  5. ${CURRENT_INSTALLED_DIR}${_IMPORT_PREFIX} 群組態中的 取代 。
  6. 合併發行和偵錯組態INTERFACE_LINK_LIBRARIES。
  7. 取代 ${CURRENT_INSTALLED_DIR}${VCPKG_IMPORT_PREFIX} 目標中的 。
  8. 移除 /debug/<CONFIG_PATH>/*config.cmake

範例

來源

ports/vcpkg-cmake-config/vcpkg_cmake_config_fixup.cmake