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-config
helper :
"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
- Passa
/debug/<CONFIG_PATH>/*targets-debug.cmake
a/share/${PACKAGE_NAME}
. - Trasforma tutti i riferimenti corrispondenti
/bin/*.exe
a/${TOOLS_PATH}/*.exe
in Windows. - Trasforma tutti i riferimenti corrispondenti
/bin/*
a/${TOOLS_PATH}/*
in altre piattaforme. - Correzioni
${_IMPORT_PREFIX}
nelle destinazioni generate automaticamente. - Sostituisce
${CURRENT_INSTALLED_DIR}
con${_IMPORT_PREFIX}
nelle configurazioni. - Merge di configurazioni
INTERFACE_LINK_LIBRARIES
di rilascio e debug. - Sostituisce
${CURRENT_INSTALLED_DIR}
con${VCPKG_IMPORT_PREFIX}
in destinazioni. - Rimuove
/debug/<CONFIG_PATH>/*config.cmake
.