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
по умолчанию используется значение и CONFIG_PATH
значение share/${PACKAGE_NAME}
по умолчанию${PORT}
.
Для портов, в которых переданное find_package
имя пакета отличается от имени порта, PACKAGE_NAME
следует изменить вместо этого имя.
Для портов, из которых нельзя задать каталог *config.cmake
файлов, используйте CONFIG_PATH
каталог, из которого приходят файлы.
По умолчанию родительский каталог CONFIG_PATH
удаляется, если он называется cmake.
DO_NOT_DELETE_PARENT_CONFIG_PATH
Передача параметра отключает такое поведение, так как удобно для портов, устанавливающих несколько файлов конфигурации пакета CMake.
Параметр NO_PREFIX_CORRECTION
отключает исправление _IMPORT_PREFIX
vcpkg из-за перемещения файлов конфигурации.
В настоящее время исправление не учитывает способ перемещения файлов и применяет довольно простое исправление, которое в некоторых случаях даст неправильные результаты.
Принцип работы
- Перемещается
/debug/<CONFIG_PATH>/*targets-debug.cmake
в/share/${PACKAGE_NAME}
. - Преобразует все ссылки, соответствующие
/bin/*.exe
/${TOOLS_PATH}/*.exe
Windows. - Преобразует все ссылки, соответствующие
/bin/*
/${TOOLS_PATH}/*
другим платформам. ${_IMPORT_PREFIX}
Исправления в автоматически созданных целевых объектах.- Заменяет
${CURRENT_INSTALLED_DIR}
${_IMPORT_PREFIX}
его в конфигурациях. - Слияние
INTERFACE_LINK_LIBRARIES
конфигураций выпуска и отладки. - Заменяется
${VCPKG_IMPORT_PREFIX}
целевыми объектами${CURRENT_INSTALLED_DIR}
. - Удаляет
/debug/<CONFIG_PATH>/*config.cmake
.