Sdílet prostřednictvím


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

  1. Přesune /debug/<CONFIG_PATH>/*targets-debug.cmake se na /share/${PACKAGE_NAME}.
  2. Transformuje všechny odkazy odpovídající /bin/*.exe windows /${TOOLS_PATH}/*.exe .
  3. Transformuje všechny odkazy odpovídající /bin/* /${TOOLS_PATH}/* na jiných platformách.
  4. Opravy ${_IMPORT_PREFIX} v automaticky generovaných cílech.
  5. ${CURRENT_INSTALLED_DIR} ${_IMPORT_PREFIX} Nahradí v konfiguracích.
  6. Sloučí INTERFACE_LINK_LIBRARIES konfigurace verzí a ladění.
  7. ${CURRENT_INSTALLED_DIR} ${VCPKG_IMPORT_PREFIX} Nahradí v cílech.
  8. Odebere /debug/<CONFIG_PATH>/*config.cmake.

Příklady

Zdroj

ports/vcpkg-cmake-config/vcpkg_cmake_config_fixup.cmake