Udostępnij za pośrednictwem


vcpkg_cmake_config_fixup

Scal i popraw elementy docelowe i konfiguracje narzędzia CMake w celu obsługi generatorów wielokonfiguracji.

Sposób użycia

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

Aby użyć tej funkcji, musisz zależeć od portu vcpkg-cmake-configpomocnika :

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

Ponadto naprawia typowe problemy z obiektami docelowymi, takie jak ścieżki bezwzględne i niepoprawnie umieszczone pliki binarne.

W przypadku wielu portów vcpkg_cmake_config_fixup() należy pracować samodzielnie, ponieważ PACKAGE_NAME wartości domyślne ${PORT} to i CONFIG_PATH domyślnie to share/${PACKAGE_NAME}. W przypadku portów, w których przekazana nazwa find_package pakietu jest różna od nazwy portu, PACKAGE_NAME należy zmienić jej nazwę. W przypadku portów *config.cmake , w których nie można ustawić katalogu plików, użyj polecenia , CONFIG_PATH aby zmienić katalog, z którego pochodzą pliki.

Domyślnie katalog nadrzędny CONFIG_PATH jest usuwany, jeśli ma nazwę "cmake". Przekazywanie DO_NOT_DELETE_PARENT_CONFIG_PATH opcji wyłącza takie zachowanie, ponieważ jest wygodne w przypadku portów, które instalują więcej niż jeden plik konfiguracji pakietu CMake.

Opcja NO_PREFIX_CORRECTION wyłącza korektę wykonaną _IMPORT_PREFIX przez program vcpkg z powodu przenoszenia plików konfiguracji. Obecnie korekta nie uwzględnia sposobu przenoszenia plików i stosuje raczej po prostu korektę, która w niektórych przypadkach przyniesie nieprawidłowe wyniki.

Jak to działa

  1. Przechodzi /debug/<CONFIG_PATH>/*targets-debug.cmake do ./share/${PACKAGE_NAME}
  2. Przekształca wszystkie odwołania pasujące /bin/*.exe do /${TOOLS_PATH}/*.exe w systemie Windows.
  3. Przekształca wszystkie odwołania pasujące /bin/* do /${TOOLS_PATH}/* na innych platformach.
  4. Poprawki ${_IMPORT_PREFIX} w automatycznie generowanych miejscach docelowych.
  5. ${CURRENT_INSTALLED_DIR} Zamienia element na ${_IMPORT_PREFIX} w konfiguracjach.
  6. Scala INTERFACE_LINK_LIBRARIES konfiguracji wydania i debugowania.
  7. Zastępuje elementem ${VCPKG_IMPORT_PREFIX} w elementach ${CURRENT_INSTALLED_DIR} docelowych.
  8. Usuwa element /debug/<CONFIG_PATH>/*config.cmake.

Przykłady

Źródło

ports/vcpkg-cmake-config/vcpkg_cmake_config_fixup.cmake