Se presenta el lanzamiento del generador de scripts de compilación de código abierto multiplataforma CMake 4.0.0. 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 se distribuye bajo la licencia BSD.
CMake se destaca por proporcionar un lenguaje de secuencias de comandos simple, herramientas para ampliar la funcionalidad a través de módulos, soporte de almacenamiento en caché, la presencia de herramientas para compilación cruzada, soporte para generar archivos de compilación para una amplia gama de sistemas de compilación y compiladores, la presencia de ctest y cpack. utilidades para definir scripts de prueba y crear paquetes, y la utilidad cmake -gui para la configuración interactiva de los parámetros de compilación.
Cambios importantes:
- Se ha roto la compatibilidad con versiones de CMake anteriores a 3.5. Al vincular a versiones no compatibles, cmake_minimum_required() y cmake_policy() ahora generarán un error.
- Se agregó la variable de entorno "CMAKE_POLICY_VERSION_MINIMUM" para anular la versión mínima de CMake cuya funcionalidad se requiere para compilar un proyecto. La variable agregada le permite prescindir de cambiar las llamadas cmake_minimum_required(VERSION) y cmake_policy(VERSION) en el proyecto mismo, por ejemplo, para configurar la política de versión en proyectos que no brindan dicha función.
- En la expresión del generador "$ " agregó la operación "NATIVE_PATH" para convertir una ruta de archivo de la representación de CMake (que siempre usa "/" para separar directorios) a una ruta del sistema (los sistemas tipo Unix usan "/" y Windows usa "\").
- En macOS, al usar generadores de scripts de compilación basados en Ninja y generadores de Makefile, si hay un compilador presente en el directorio /usr/bin, ahora se deja como está, sin estar vinculado a un compilador en Xcode. Al compilar para la plataforma macOS, la selección del SDK y el paso del indicador "-isysroot" al compilador se han detenido de manera predeterminada (ahora el SDK lo selecciona el compilador mismo, no CMake).
- Se agregó la propiedad LINK_WARNING_AS_ERROR, que hará que las advertencias del vinculador se traten como errores. Para deshabilitar el efecto de esta propiedad, se ha agregado la opción de línea de comando "--link-no-warning-as-error".
- La utilidad cmake tiene una opción "--project-file" para especificar un nombre alternativo para el archivo CMakeLists.txt.
- El generador CPack ahora tiene la capacidad de crear archivos tar sin comprimir.
- El comando target_link_libraries() y las variables CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS*, CMAKE_MODULE_LINKER_FLAGS* se han actualizado para admitir el prefijo "LINKER:".
- Nuevas variables agregadas:
- ERROR DE COMANDO DE PROCESO DE EJECUCIÓN DE CMAKE ES FATAL,
- CMAKE_ _MODO_ENLACE,
- CMAKE_ _MODO_DE_ENLACE_DEL_DISPOSITIVO,
- ADVERTENCIA DE ENLACE DE CMAKE COMO ERROR,
- COMPROBACIONES DE TIEMPO DE EJECUCIÓN DE CMAKE_MSVC,
- DIRECTORIO DE TRABAJO DEL DEPURADOR DE CMAKE,
- ARCHIVO DE INICIO DE LLDB DEL ESQUEMA DE CMAKE XCODE,
- CONFIGURACIÓN DE PRUEBAS DEL ESQUEMA CMAKE_XCODE.
- Se agregaron nuevas propiedades: DEBUGGER_WORKING_DIRECTORY y VS_SOLUTION_ITEMS (para adjuntar archivos a .sln para Visual Studio).
- Se proporciona la generación de ensamblajes CMake listos para usar para SunOS para arquitecturas sparc64 y x86_64.
Fuente: opennet.ru
