Compartilhar via


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-configauxiliar:

"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

  1. Move-se /debug/<CONFIG_PATH>/*targets-debug.cmake para /share/${PACKAGE_NAME}.
  2. Transforma todas as referências correspondentes /bin/*.exe no /${TOOLS_PATH}/*.exe Windows.
  3. Transforma todas as referências correspondentes /bin/* em /${TOOLS_PATH}/* outras plataformas.
  4. Correções ${_IMPORT_PREFIX} em destinos gerados automaticamente.
  5. Substitui ${CURRENT_INSTALLED_DIR} por ${_IMPORT_PREFIX} nas configurações.
  6. Mesclagens INTERFACE_LINK_LIBRARIES de configurações de versão e depuração.
  7. Substitui ${CURRENT_INSTALLED_DIR} por ${VCPKG_IMPORT_PREFIX} em alvos.
  8. Remove /debug/<CONFIG_PATH>/*config.cmake.

Exemplos

Origem

ports/vcpkg-cmake-config/vcpkg_cmake_config_fixup.cmake