vcpkg_cmake_config_fixup

Combine y corrija los destinos y las configuraciones de CMake para admitir generadores multiconfig.

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 función, debe depender del puerto vcpkg-cmake-configauxiliar :

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

Además, corrige problemas comunes con destinos, como rutas de acceso absolutas y archivos binarios colocados incorrectamente.

Para muchos puertos, vcpkg_cmake_config_fixup() por su cuenta debe funcionar, como PACKAGE_NAME valores predeterminados de ${PORT} y CONFIG_PATH predeterminados en share/${PACKAGE_NAME}. En el caso de los puertos en los que el nombre del paquete pasado find_package es distinto del nombre del puerto, PACKAGE_NAME debe cambiarse para que sea ese nombre en su lugar. Para los puertos en los que no se puede establecer el directorio de los *config.cmake archivos, use para CONFIG_PATH cambiar el directorio desde el que proceden los archivos.

De forma predeterminada, el directorio primario de CONFIG_PATH se quita si se denomina "cmake". Pasar la DO_NOT_DELETE_PARENT_CONFIG_PATH opción deshabilita este comportamiento, ya que es conveniente para los puertos que instalan más de un archivo de configuración de paquetes de CMake.

La NO_PREFIX_CORRECTION opción deshabilita la corrección de realizada por vcpkg debido al movimiento de _IMPORT_PREFIX los archivos de configuración. Actualmente, la corrección no tiene en cuenta cómo se mueven los archivos y aplica una corrección bastante sencilla que, en algunos casos, producirá resultados incorrectos.

Funcionamiento

  1. Se mueve /debug/<CONFIG_PATH>/*targets-debug.cmake a /share/${PACKAGE_NAME}.
  2. Transforma todas las referencias que coinciden /bin/*.exe con /${TOOLS_PATH}/*.exe en Windows.
  3. Transforma todas las referencias que coinciden /bin/* con /${TOOLS_PATH}/* en otras plataformas.
  4. Correcciones en destinos ${_IMPORT_PREFIX} generados automáticamente.
  5. ${CURRENT_INSTALLED_DIR} Reemplaza por ${_IMPORT_PREFIX} en las configuraciones.
  6. Combinaciones de configuraciones INTERFACE_LINK_LIBRARIES de versión y depuración.
  7. ${CURRENT_INSTALLED_DIR} Reemplaza por ${VCPKG_IMPORT_PREFIX} en destinos.
  8. Quita /debug/<CONFIG_PATH>/*config.cmake.

Ejemplos

Source

ports/vcpkg-cmake-config/vcpkg_cmake_config_fixup.cmake