vcpkg_cmake_config_fixup
Fusionner et corriger les cibles et les configurations CMake de mise en production et de débogage pour prendre en charge les générateurs multiconfig.
Utilisation
vcpkg_cmake_config_fixup(
[PACKAGE_NAME <name>]
[CONFIG_PATH <config-directory>]
[TOOLS_PATH <tools/${PORT}>]
[DO_NOT_DELETE_PARENT_CONFIG_PATH]
[NO_PREFIX_CORRECTION]
)
Pour utiliser cette fonction, vous devez dépendre du port vcpkg-cmake-config
d’assistance :
"dependencies": [
{
"name": "vcpkg-cmake-config",
"host": true
}
]
Corrige également les problèmes courants liés aux cibles, tels que les chemins absolus et les fichiers binaires mal placés.
Pour de nombreux ports, vcpkg_cmake_config_fixup()
le cas échéant, doit fonctionner, comme PACKAGE_NAME
valeur ${PORT}
par défaut et CONFIG_PATH
par défaut share/${PACKAGE_NAME}
.
Pour les ports auxquels le nom du package passé find_package
est distinct du nom du port, PACKAGE_NAME
il doit être remplacé par ce nom.
Pour les ports dont le répertoire des *config.cmake
fichiers ne peut pas être défini, utilisez le CONFIG_PATH
répertoire à partir duquel proviennent les fichiers.
Par défaut, le répertoire parent de CONFIG_PATH
est supprimé s’il est nommé « cmake ».
Le passage de l’option DO_NOT_DELETE_PARENT_CONFIG_PATH
désactive ce comportement, car il est pratique pour les ports qui installent plusieurs fichiers de configuration de package CMake.
L’option NO_PREFIX_CORRECTION
désactive la correction effectuée _IMPORT_PREFIX
par vcpkg en raison du déplacement des fichiers de configuration.
Actuellement, la correction ne tient pas compte de la façon dont les fichiers sont déplacés et applique une correction plutôt simple qui, dans certains cas, génère les résultats incorrects.
Fonctionnement
- Passe
/debug/<CONFIG_PATH>/*targets-debug.cmake
à/share/${PACKAGE_NAME}
. - Transforme toutes les références correspondantes
/bin/*.exe
/${TOOLS_PATH}/*.exe
sur Windows. - Transforme toutes les références correspondantes
/bin/*
sur/${TOOLS_PATH}/*
d’autres plateformes. - Correctifs dans les cibles générées
${_IMPORT_PREFIX}
automatiquement. - Remplace par
${CURRENT_INSTALLED_DIR}
${_IMPORT_PREFIX}
les configurations. - Fusions
INTERFACE_LINK_LIBRARIES
des configurations de mise en production et de débogage. - Remplace par
${CURRENT_INSTALLED_DIR}
${VCPKG_IMPORT_PREFIX}
les cibles. - Supprime
/debug/<CONFIG_PATH>/*config.cmake
.