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