Freigeben über


vcpkg_cmake_config_fixup

Führen Sie Release- und Debug-CMake-Ziele und -Konfigurationen zusammen, um Multiconfig-Generatoren zu unterstützen.

Verbrauch

vcpkg_cmake_config_fixup(
    [PACKAGE_NAME <name>]
    [CONFIG_PATH <config-directory>]
    [TOOLS_PATH <tools/${PORT}>]
    [DO_NOT_DELETE_PARENT_CONFIG_PATH]
    [NO_PREFIX_CORRECTION]
)

Um diese Funktion zu verwenden, müssen Sie vom Hilfsport vcpkg-cmake-configabhängig sein:

"dependencies": [
  {
    "name": "vcpkg-cmake-config",
    "host": true
  }
]

Außerdem werden häufige Probleme mit Zielen behoben, z. B. absolute Pfade und falsch platzierte Binärdateien.

Für viele Ports vcpkg_cmake_config_fixup() sollte eigenständig funktionieren, wie PACKAGE_NAME standardmäßig ${PORT} und CONFIG_PATH standardmäßig share/${PACKAGE_NAME}auf . Für Ports, an die der übergebene find_package Paketname vom Portnamen unterscheidet, PACKAGE_NAME sollte stattdessen dieser Name geändert werden. Verwenden Sie für Ports, in denen das Verzeichnis der *config.cmake Dateien nicht festgelegt werden kann, das CONFIG_PATH Verzeichnis, aus dem die Dateien stammen, zu ändern.

Standardmäßig wird das übergeordnete Verzeichnis entfernt CONFIG_PATH , wenn es "cmake" heißt. Wenn Sie die DO_NOT_DELETE_PARENT_CONFIG_PATH Option übergeben, wird dieses Verhalten deaktiviert, da es für Ports geeignet ist, die mehr als eine CMake-Paketkonfigurationsdatei installieren.

Mit NO_PREFIX_CORRECTION der Option wird die Korrektur von vcpkg aufgrund des _IMPORT_PREFIX Verschiebens der Konfigurationsdateien deaktiviert. Derzeit berücksichtigt die Korrektur nicht, wie die Dateien verschoben werden, und wendet eine ziemlich einfache Korrektur an, die in einigen Fällen die falschen Ergebnisse liefert.

Funktionsweise

  1. Wechselt /debug/<CONFIG_PATH>/*targets-debug.cmake zu /share/${PACKAGE_NAME}.
  2. Transformiert alle Verweise, die /${TOOLS_PATH}/*.exe unter Windows übereinstimmen/bin/*.exe.
  3. Transformiert alle Verweise, die /${TOOLS_PATH}/* auf anderen Plattformen übereinstimmen/bin/*.
  4. Korrekturen in automatisch generierten ${_IMPORT_PREFIX} Zielen.
  5. ${CURRENT_INSTALLED_DIR} Ersetzt in ${_IMPORT_PREFIX} Konfigurationen.
  6. Führt Versionen und Debugkonfigurationen INTERFACE_LINK_LIBRARIES zusammen.
  7. ${CURRENT_INSTALLED_DIR} Ersetzt in ${VCPKG_IMPORT_PREFIX} Zielen.
  8. Entfernt /debug/<CONFIG_PATH>/*config.cmake

Beispiele

Quelle

ports/vcpkg-cmake-config/vcpkg_cmake_config_fixup.cmake