Se ha libreado la nueva actualización del generador de scripts CMake 3.15
Hace algunos días se anuncio el lanzamiento del generador de scripts de código abierto multiplataforma CMake 3.15 que actúa como una alternativa a Autotools y se utiliza en proyectos como KDE, LLVM / Clang, MySQL, MariaDB, ReactOS y Blender.
CMake es una herramienta multiplataforma de generación o automatización de código. El nombre es una abreviatura para “cross platform make” (make multiplataforma, más allá del uso de “make” en el nombre, CMake es una suite separada y de más alto nivel que el sistema make común de Unix, siendo similar a las autotools.
Sobre CMake
CMake es notable por proporcionar un lenguaje de scripting simple, herramientas para extender la funcionalidad a través de módulos, el número mínimo de dependencias (sin vinculación con M4, Perl o Python), soporte de almacenamiento en caché, la disponibilidad de herramientas para compilación cruzada, soporte para generar archivos de ensamblaje para una amplia gama de sistemas de compilación y compiladores.
Las utilidades ctest y cpack para definir escenarios de prueba y la creación de paquetes, con la utilidad cmake-gui para configurar interactivamente los parámetros de construcción.
CMake se utiliza para controlar el proceso de compilación del software usando ficheros de configuración sencillos e independientes de la plataforma. Cmake genera makefiles nativos y espacios de trabajo que pueden usarse en el entorno de desarrollo deseado.
Es comparable al GNU build system de Unix en que el proceso es controlado por ficheros de configuración, en el caso de CMake llamados CMakeLists.txt.
Al contrario que el GNU build system, que está restringido a plataformas Unix, CMake soporta la generación de ficheros para varios sistemas operativos, lo que facilita el mantenimiento y elimina la necesidad de tener varios conjuntos de ficheros para cada plataforma.
El proceso de construcción se controla creando uno o más ficheros CMakeLists.txt en cada directorio (incluyendo subdirectorios).
El código CMake está escrito en C ++ y se distribuye bajo la licencia BSD.
Principales novedades de CMake 3.15
Esta nueva versión se destaca por la llegada del soporte inicial del generador para el lenguaje Swift desarrollado por Apple se ha agregado al generador de scripts de ensamblado del kit de herramientas Ninja.
Además de este, también llega el soporte para la opción del compilador Clang para Windows que se construye con ABI MSVC, pero usa las opciones de línea de comando de estilo GNU.
Los desarrolladores destacan que las variables CMAKE_MSVC_RUNTIME_LIBRARY
y MSVC_RUNTIME_LIBRARY
se agregan para seleccionar las bibliotecas de tiempo de ejecución utilizadas por los compiladores ABI MSVC
(MS Visual Studio).
Para compiladores como MSVC
, en CMAKE__FLAGS
, de forma predeterminada, la lista de indicadores de control de advertencia, como “/ W3”, se detiene.
De las demás mejoras que se destacan en el anuncio de la liberación de esta nueva versión encontramos lo siguiente:
- Se agregó la expresión generadora “
COMPILE_LANG_AND_ID
:” para definir las opciones del compilador para los archivos de destino que usan las variablesCMAKE__COMPILER_ID
yLANGUAGE
para cada archivo de código - Las expresiones del generador
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
agregan compatibilidad para hacer coincidir un valor con una lista, elementos separados por comas - Se agregó la variable
CMAKE_FIND_PACKAGE_PREFER_CONFIG
, en la que la llamada a find_package () buscará primero el archivo de configuración del paquete, incluso si el módulo de búsqueda está disponible - Para las bibliotecas de interfaz, se ha agregado compatibilidad para establecer las propiedades
PUBLIC_HEADER y PRIVATE_HEADER
, cuyos encabezados se pueden configurar mediante el comando de instalación (TARGETS) pasando los argumentosPUBLIC_HEADER
yPRIVATE_HEADER
- Se agregó la variable
CMAKE_VS_JUST_MY_CODE_DEBUGGING
y la propiedad de destinoVS_JUST_MY_CODE_DEBUGGING
para habilitar el modo “Just My Code” en el depurador de Visual Studio cuando se compila usando MSVC cl 19.05 y versiones más nuevas. - El módulo FindBoost se ha reelaborado, que ahora se está trabajando más completamente en los modos de configuración y módulo con la presencia de otros módulos de búsqueda
- Se ha agregado la compatibilidad con los tipos NOTICE, VERBOSE, DEBUG y TRACE al comando message ()
- El comando “exportar (PAQUETE)” ahora no hace nada hasta que se habilita explícitamente a través de la variable
CMAKE_EXPORT_PACKAGE_REGISTRY
.
Si quieres conocer mas al respecto puedes consultar el siguiente enlace.