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_PATH
為 share/${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
更正。
目前修正不會考慮檔案的移動方式,而且會套用相當簡單的更正,在某些情況下會產生錯誤的結果。
運作方式
/share/${PACKAGE_NAME}
移至/debug/<CONFIG_PATH>/*targets-debug.cmake
。- 轉換與 Windows 上相符
/bin/*.exe
/${TOOLS_PATH}/*.exe
的所有參考。 - 轉換與其他平臺上相符
/bin/*
/${TOOLS_PATH}/*
的所有參考。 - 自動產生的目標中的修正
${_IMPORT_PREFIX}
。 - 以
${CURRENT_INSTALLED_DIR}
${_IMPORT_PREFIX}
群組態中的 取代 。 INTERFACE_LINK_LIBRARIES
發行和偵錯組態的合併。- 取代
${CURRENT_INSTALLED_DIR}
為${VCPKG_IMPORT_PREFIX}
目標中的 。 - 移除
/debug/<CONFIG_PATH>/*config.cmake
。