vcpkg_cmake_config_fixup
Sloučení a oprava cílů a konfigurací nástroje CMake pro vydávání a ladění pro podporu generátorů multiconfig
Využití
vcpkg_cmake_config_fixup(
[PACKAGE_NAME <name>]
[CONFIG_PATH <config-directory>]
[TOOLS_PATH <tools/${PORT}>]
[DO_NOT_DELETE_PARENT_CONFIG_PATH]
[NO_PREFIX_CORRECTION]
)
Pokud chcete tuto funkci použít, musíte záviset na pomocném portu vcpkg-cmake-config
:
"dependencies": [
{
"name": "vcpkg-cmake-config",
"host": true
}
]
Kromě toho opraví běžné problémy s cíli, jako jsou absolutní cesty a nesprávně umístěné binární soubory.
Pro mnoho portů vcpkg_cmake_config_fixup()
by mělo fungovat samostatně, jako PACKAGE_NAME
výchozí ${PORT}
hodnota a CONFIG_PATH
výchozí hodnota share/${PACKAGE_NAME}
.
U portů, do find_package
kterých se název balíčku předaný liší od názvu portu, PACKAGE_NAME
by se měl změnit na tento název.
U portů, ze kterých nelze nastavit adresář *config.cmake
souborů, použijte CONFIG_PATH
ke změně adresáře, ze kterého soubory pocházejí.
Ve výchozím nastavení je nadřazený adresář CONFIG_PATH
odebrán, pokud má název "cmake".
DO_NOT_DELETE_PARENT_CONFIG_PATH
Předání možnosti zakáže takové chování, protože je vhodné pro porty, které nainstalují více než jeden konfigurační soubor balíčku CMake.
Tato NO_PREFIX_CORRECTION
možnost zakáže opravu provedené nástrojem vcpkg kvůli přesunutí konfiguračních _IMPORT_PREFIX
souborů.
V současné době oprava nebere v úvahu, jak se soubory přesunou, a použije spíše opravu, která v některých případech přinese nesprávné výsledky.
Jak to funguje
- Přesune
/debug/<CONFIG_PATH>/*targets-debug.cmake
se na/share/${PACKAGE_NAME}
. - Transformuje všechny odkazy odpovídající
/bin/*.exe
windows/${TOOLS_PATH}/*.exe
. - Transformuje všechny odkazy odpovídající
/bin/*
/${TOOLS_PATH}/*
na jiných platformách. - Opravy
${_IMPORT_PREFIX}
v automaticky generovaných cílech. ${CURRENT_INSTALLED_DIR}
${_IMPORT_PREFIX}
Nahradí v konfiguracích.- Sloučí
INTERFACE_LINK_LIBRARIES
konfigurace verzí a ladění. ${CURRENT_INSTALLED_DIR}
${VCPKG_IMPORT_PREFIX}
Nahradí v cílech.- Odebere
/debug/<CONFIG_PATH>/*config.cmake
.