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
- El lenguaje CUDA se puede crear utilizando Clang en plataformas distintas a Windows. La compilación separada de CUDA aún no es compatible con ninguna plataforma.
- Se agregó soporte para crear perfiles de scripts de CMake utilizando las opciones "--profiling-output" y "--profiling-format".
- Los comandos add_library() y add_executable() ahora admiten la creación de alias de destinos que hacen referencia a destinos importados no globales.
- Se agregó el comando cmake_language() para metaoperaciones en comandos integrados o con script.
- Se agregó el subcomando file(CONFIGURE), similar en funcionalidad a configure_file(), pero pasando el contenido como una cadena en lugar de una referencia de archivo.
- Se agregó una opción REQUERIDA a los comandos find_program(), find_library(), find_path() y find_file() para detener el procesamiento con un error si no se encuentra nada.
- Se agregó la variable "CMAKE_CUDA_ARCHITECTURES" para indicar la arquitectura CUDA (se configura automáticamente si la variable "CMAKE_CUDA_COMPILER_ID" está configurada en "NVIDIA").
- Se agregó la propiedad "UNITY_BUILD_MODE" para seleccionar el algoritmo de agrupación para archivos fuente incluidos (BATCH, GROUP) en los generadores.
- Se agregó el módulo CheckLinkerFlag para verificar la exactitud de las banderas de enlace.
- Se agregaron expresiones generadoras $, $, $ y $.
- La variable CTEST_RESOURCE_SPEC_FILE se ha agregado a la utilidad ctest para especificar el archivo de especificación de recursos.
Fuente: opennet.ru