lanzamiento del generador de scripts de construcción de código abierto multiplataforma , 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 de CMake está escrito en C++ y se distribuye bajo la licencia BSD.
CMake es notable por proporcionar un lenguaje de scripts simple, con medios para extender su funcionalidad a través de módulos, un mínimo número de dependencias (sin requerir M4, Perl o Python), soporte de caché, herramientas para compilación cruzada, generación de archivos de construcción para una amplia gama de sistemas de construcción y compiladores, herramientas ctest y cpack para definir scripts de prueba y empaquetado, y una utilidad cmake-gui para la configuración interactiva de parámetros de construcción.
Principales :
- Se ha añadido un nuevo generador de scripts de construcción basado en la herramienta Ninja: "Ninja Multi-Config", que se diferencia del antiguo generador por la capacidad de procesar varias configuraciones de construcción a la vez.
- En el generador de scripts de construcción para Visual Studio la posibilidad de definir archivos de código fuente asociados a cada configuración (fuentes por configuración).
- En las herramientas para configurar los parámetros del compilador (Características de Compilación) se ha añadido la opción de establecer metaparámetros para CUDA ("cuda_std_03", "cuda_std_14", etc.).
- Se han añadido las variables "CMAKE_CUDA_RUNTIME_LIBRARY" y "CUDA_RUNTIME_LIBRARY" para seleccionar el tipo de bibliotecas de tiempo de ejecución cuando se utiliza CUDA.
- Se ha añadido el módulo "FindCUDAToolkit" para detectar el toolkit CUDA disponible en el sistema sin habilitar el lenguaje CUDA.
- Se ha añadido el comando "—debug-find" a la utilidad cmake para mostrar diagnósticos adicionales legibles durante las operaciones de búsqueda. Para fines similares se ha añadido la variable CMAKE_FIND_DEBUG_MODE.
- En el módulo "FindCURL" se ha añadido soporte para buscar el toolkit CURL mediante archivos de configuración cmake generados, "CURLConfig.cmake". Para desactivar este comportamiento, se ha previsto la variable CURL_NO_CURL_CMAKE.
- En el módulo FindPython se ha añadido la capacidad de buscar componentes de Python en entornos virtuales gestionados por "conda".
- Se han añadido opciones a la utilidad ctest "—no-tests=[error|ignore]" para definir el comportamiento en caso de no haber pruebas y "—repeat" para establecer condiciones de reejecución de pruebas (until-pass, after-timeout).
- Se ha garantizado la transferencia de las propiedades de objetivo de construcción INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES e INTERFACE_LINK_DEPENDS en las dependencias internas de las bibliotecas estáticamente construidas.
- Al utilizar la herramienta MinGW, por defecto se desactiva la búsqueda de archivos DLL con el comando find_library (en su lugar, por defecto se intenta 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 encontrada, ninja-build, ninja o samu, en los caminos definidos a través de la variable de entorno PATH.
- Se ha añadido el comando "-E rm" a la utilidad cmake, que se puede utilizar para eliminar archivos y directorios en lugar de los comandos separados "-E remove" y "-E remove_directory".
Fuente: opennet.ru
