Condividi tramite


vcpkg_cmake_config_fixup

Unire e correggere le destinazioni e le configurazioni CMake di debug per supportare generatori multiconfig.

Utilizzo

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

Per usare questa funzione, è necessario dipendere dalla porta vcpkg-cmake-confighelper :

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

Corregge inoltre i problemi comuni relativi alle destinazioni, ad esempio percorsi assoluti e file binari inseriti in modo errato.

Per molte porte, vcpkg_cmake_config_fixup() per impostazione predefinita dovrebbe funzionare, perché PACKAGE_NAME per impostazione predefinita ${PORT} è share/${PACKAGE_NAME}.CONFIG_PATH Per le porte in cui il nome del pacchetto passato a find_package è distinto dal nome della porta, PACKAGE_NAME deve essere modificato in modo che sia tale nome. Per le porte da cui non è possibile impostare la directory dei *config.cmake file, usare per CONFIG_PATH modificare la directory da cui provengono i file.

Per impostazione predefinita, la directory padre di CONFIG_PATH viene rimossa se è denominata "cmake". Il passaggio dell'opzione DO_NOT_DELETE_PARENT_CONFIG_PATH disabilita questo comportamento, perché è utile per le porte che installano più file di configurazione del pacchetto CMake.

L'opzione NO_PREFIX_CORRECTION disabilita la correzione di _IMPORT_PREFIX eseguita da vcpkg a causa dello spostamento dei file di configurazione. Attualmente la correzione non tiene conto del modo in cui i file vengono spostati e applica una correzione piuttosto semplice che in alcuni casi restituirà i risultati errati.

Funzionamento

  1. Passa /debug/<CONFIG_PATH>/*targets-debug.cmake a /share/${PACKAGE_NAME}.
  2. Trasforma tutti i riferimenti corrispondenti /bin/*.exe a /${TOOLS_PATH}/*.exe in Windows.
  3. Trasforma tutti i riferimenti corrispondenti /bin/* a /${TOOLS_PATH}/* in altre piattaforme.
  4. Correzioni ${_IMPORT_PREFIX} nelle destinazioni generate automaticamente.
  5. Sostituisce ${CURRENT_INSTALLED_DIR} con ${_IMPORT_PREFIX} nelle configurazioni.
  6. Merge di configurazioni INTERFACE_LINK_LIBRARIES di rilascio e debug.
  7. Sostituisce ${CURRENT_INSTALLED_DIR} con ${VCPKG_IMPORT_PREFIX} in destinazioni.
  8. Rimuove /debug/<CONFIG_PATH>/*config.cmake.

Esempi

Origine

ports/vcpkg-cmake-config/vcpkg_cmake_config_fixup.cmake