vcpkg_cmake_config_fixup
Mescle e corrija destinos e configurações do CMake de versão e depuração para oferecer suporte a geradores de configuração múltipla.
Uso
vcpkg_cmake_config_fixup(
[PACKAGE_NAME <name>]
[CONFIG_PATH <config-directory>]
[TOOLS_PATH <tools/${PORT}>]
[DO_NOT_DELETE_PARENT_CONFIG_PATH]
[NO_PREFIX_CORRECTION]
)
Para usar esta função, você deve depender da porta vcpkg-cmake-config
auxiliar:
"dependencies": [
{
"name": "vcpkg-cmake-config",
"host": true
}
]
Além disso, corrige problemas comuns com destinos, como caminhos absolutos e binários colocados incorretamente.
Para muitas portas, vcpkg_cmake_config_fixup()
por si só deve funcionar, pois PACKAGE_NAME
o padrão é e CONFIG_PATH
${PORT}
o padrão é .share/${PACKAGE_NAME}
Para portas para as quais o nome do pacote passado é find_package
diferente do nome da porta, PACKAGE_NAME
deve ser alterado para esse nome.
Para portas onde o *config.cmake
diretório dos arquivos não pode ser definido, use o CONFIG_PATH
para alterar o diretório de onde os arquivos vêm.
Por padrão, o diretório pai de é removido se for chamado de CONFIG_PATH
"cmake".
Passar a DO_NOT_DELETE_PARENT_CONFIG_PATH
opção desabilita esse comportamento, pois é conveniente para ports que instalam mais de um arquivo de configuração de pacote CMake.
A NO_PREFIX_CORRECTION
opção desativa a correção de _IMPORT_PREFIX
feito pelo vcpkg devido à movimentação dos arquivos de configuração.
Atualmente, a correção não leva em consideração como os arquivos são movidos e aplica uma correção bastante simples que, em alguns casos, produzirá os resultados errados.
Como ele funciona
- Move-se
/debug/<CONFIG_PATH>/*targets-debug.cmake
para/share/${PACKAGE_NAME}
. - Transforma todas as referências correspondentes
/bin/*.exe
no/${TOOLS_PATH}/*.exe
Windows. - Transforma todas as referências correspondentes
/bin/*
em/${TOOLS_PATH}/*
outras plataformas. - Correções
${_IMPORT_PREFIX}
em destinos gerados automaticamente. - Substitui
${CURRENT_INSTALLED_DIR}
por${_IMPORT_PREFIX}
nas configurações. - Mesclagens
INTERFACE_LINK_LIBRARIES
de configurações de versão e depuração. - Substitui
${CURRENT_INSTALLED_DIR}
por${VCPKG_IMPORT_PREFIX}
em alvos. - Remove
/debug/<CONFIG_PATH>/*config.cmake
.