Partager via


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-configd’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

  1. Passe /debug/<CONFIG_PATH>/*targets-debug.cmake à /share/${PACKAGE_NAME}.
  2. Transforme toutes les références correspondantes /bin/*.exe /${TOOLS_PATH}/*.exe sur Windows.
  3. Transforme toutes les références correspondantes /bin/* sur /${TOOLS_PATH}/* d’autres plateformes.
  4. Correctifs dans les cibles générées ${_IMPORT_PREFIX} automatiquement.
  5. Remplace par ${CURRENT_INSTALLED_DIR} ${_IMPORT_PREFIX} les configurations.
  6. Fusions INTERFACE_LINK_LIBRARIES des configurations de mise en production et de débogage.
  7. Remplace par ${CURRENT_INSTALLED_DIR} ${VCPKG_IMPORT_PREFIX} les cibles.
  8. Supprime /debug/<CONFIG_PATH>/*config.cmake.

Exemples

Source

ports/vcpkg-cmake-config/vcpkg_cmake_config_fixup.cmake