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-config
auxiliar :
"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
- Se mueve
/debug/<CONFIG_PATH>/*targets-debug.cmake
a/share/${PACKAGE_NAME}
. - Transforma todas las referencias que coinciden
/bin/*.exe
con/${TOOLS_PATH}/*.exe
en Windows. - Transforma todas las referencias que coinciden
/bin/*
con/${TOOLS_PATH}/*
en otras plataformas. - Correcciones en destinos
${_IMPORT_PREFIX}
generados automáticamente. ${CURRENT_INSTALLED_DIR}
Reemplaza por${_IMPORT_PREFIX}
en las configuraciones.- Combinaciones de configuraciones
INTERFACE_LINK_LIBRARIES
de versión y depuración. ${CURRENT_INSTALLED_DIR}
Reemplaza por${VCPKG_IMPORT_PREFIX}
en destinos.- Quita
/debug/<CONFIG_PATH>/*config.cmake
.