Se ha presentado el lanzamiento del generador de scripts de construcción multiplataforma y de código abierto CMake 3.23, 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 sencillo, métodos para extender la funcionalidad a través de módulos, soporte para la caché, herramientas para la compilación cruzada, soporte para la generación de archivos de construcción para una amplia variedad de sistemas de construcción y compiladores, utilidades ctest y cpack para definir scripts de prueba y construcción de paquetes, y la herramienta cmake-gui para configurar interactivamente los parámetros de construcción.
Principales mejoras:
- Se ha añadido un campo opcional 'include' en los archivos 'cmake-presets', que permite incluir el contenido de otros archivos en su lugar.
- Se ha añadido soporte para archivos csproj de .NET SDK en los generadores de scripts de construcción para Visual Studio 2019 y versiones posteriores, para proyectos en el lenguaje C#.
- Se ha añadido soporte para el compilador IBM Open XL C/C++, basado en LLVM. El compilador está disponible bajo el identificador IBMClang.
- Se ha añadido soporte para el compilador MCST LCC (desarrollado para procesadores Elbrus y SPARC (MCST-R)). El compilador está disponible bajo el identificador LCC.
- Se ha añadido un nuevo argumento 'FILE_SET' al comando 'install(TARGETS)', que se puede usar para instalar un conjunto de archivos de encabezado relacionado con la plataforma de destino seleccionada.
- Se ha añadido el modo 'FILE_SET' al comando 'target_sources()', que permite añadir un conjunto de archivos de un tipo específico de código, como archivos de encabezado.
- Se ha añadido soporte para los valores 'all' y 'all-major' en la variable 'CMAKE_CUDA_ARCHITECTURES' y en la propiedad de la plataforma de destino 'CUDA_ARCHITECTURES' para CUDA toolkit 7.0+.
Fuente: opennet.ru
