Versión del sistema de compilación CMake 3.17.0

Presentado por lanzamiento de un generador de scripts de compilación abierto multiplataforma CMake 3.17, que actúa como una alternativa a Autotools y se utiliza en proyectos como KDE, LLVM/Clang, MySQL, MariaDB, ReactOS y Blender. El código CMake está escrito en C++ y distribuido bajo la licencia BSD.

CMake se destaca por proporcionar un lenguaje de secuencias de comandos simple, un medio para extender la funcionalidad a través de módulos, un número mínimo de dependencias (sin vinculación a M4, Perl o Python), soporte de almacenamiento en caché, la presencia de herramientas para compilación cruzada, soporte para generar compilaciones. archivos para una amplia gama de sistemas de compilación y compiladores, la presencia de utilidades ctest y cpack para definir scripts de prueba y crear paquetes, utilidad cmake-gui para configurar interactivamente los parámetros de compilación.

El principal mejoras:

  • Se agregó un nuevo generador de scripts de ensamblaje basado en el kit de herramientas Ninja: "Ninja Multi-Config", que se diferencia del generador anterior en la capacidad de procesar varias configuraciones de ensamblaje a la vez.
  • En el generador de scripts ensambladores para Visual Studio apareció la capacidad de definir archivos fuente asociados con cada configuración (fuentes por configuración).
  • La capacidad de configurar metaparámetros para CUDA (“cuda_std_03”, “cuda_std_14”, etc.) se ha agregado a las herramientas para configurar parámetros del compilador (Funciones de compilación).
  • Se agregaron variables "CMAKE_CUDA_RUNTIME_LIBRARY" y "CUDA_RUNTIME_LIBRARY" para seleccionar el tipo de bibliotecas de tiempo de ejecución cuando se usa CUDA.
  • Se agregó el módulo "FindCUDAToolkit" para determinar el kit de herramientas CUDA disponible en el sistema sin habilitar el lenguaje CUDA.
  • Se agregó el comando "--debug-find" a cmake para generar diagnósticos legibles adicionales al realizar operaciones de búsqueda. Para propósitos similares, se ha agregado la variable CMAKE_FIND_DEBUG_MODE.
  • Se agregó soporte para buscar herramientas CURL utilizando archivos de configuración generados por cmake “CURLConfig.cmake” al módulo “FindCURL”. Para deshabilitar este comportamiento, se proporciona la variable CURL_NO_CURL_CMAKE.
  • El módulo FindPython ha agregado la capacidad de buscar componentes de Python en entornos virtuales administrados mediante “conda”.
  • La utilidad ctest ha agregado las opciones “--no-tests=[error|ignore]” para definir el comportamiento en caso de que no haya pruebas y “--repeat” para establecer las condiciones para volver a ejecutar las pruebas (hasta que se apruebe, después del tiempo de espera).
  • Las propiedades de destino de compilación INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES e INTERFACE_LINK_DEPENDS ahora se incluyen entre las dependencias internas de las bibliotecas construidas estáticamente.
  • Cuando se utiliza el kit de herramientas MinGW, la búsqueda de archivos DLL con el comando find_library está deshabilitada de forma predeterminada (en cambio, el intento predeterminado es importar bibliotecas ".dll.a").
  • La lógica para seleccionar la utilidad ninja en el generador Ninja ahora no depende del nombre del archivo ejecutable: se utiliza la primera utilidad ninja-build, ninja o samu que se encuentra en las rutas definidas a través de la variable de entorno PATH.
  • Se agregó un comando "-E rm" a cmake que se puede usar para eliminar archivos y directorios en lugar de los comandos separados "-E remove" y "-E remove_directory".

Fuente: opennet.ru

Añadir un comentario