Versión del sistema de compilación CMake 3.15

tuvo lugar lanzamiento de un generador de scripts de compilación 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. El código CMake está escrito en C++ y distribuido bajo la licencia BSD.

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 mejoras:

  • Se agregó soporte de idioma inicial al generador de scripts de compilación basado en Ninja. rápido, desarrollado por Apple;
  • Se agregó soporte para una variante del compilador Clang para Windows que se compila con MSVC ABI, pero usa opciones de línea de comando de estilo GNU;
  • Se agregaron variables CMAKE_MSVC_RUNTIME_LIBRARY y MSVC_RUNTIME_LIBRARY para seleccionar bibliotecas de tiempo de ejecución utilizadas por los compiladores basados ​​en MSVC ABI (MS Visual Studio);
  • Para compiladores como MSVC, CMAKE__FLAGS de forma predeterminada deja de enumerar indicadores de control de advertencia como "/W3";
  • Se agregó una expresión generadora "COMPILE_LANG_AND_ID:" para definir las opciones del compilador para los archivos de destino, usando las variables CMAKE__COMPILER_ID y LANGUAGE para cada archivo de código;
  • En las expresiones del generador C_COMPILER_ID, CXX_COMPILER_ID,
    CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
    COMPILE_LANG_AND_ID y PLATFORM_ID agregaron soporte para hacer coincidir un solo valor con una lista cuyos elementos están separados por una coma;

  • Se agregó la variable CMAKE_FIND_PACKAGE_PREFER_CONFIG para que llamar a find_package() busque primero el archivo de configuración del paquete, incluso si hay un buscador disponible;
  • Para las bibliotecas de interfaz, se ha agregado soporte para configurar las propiedades PUBLIC_HEADER y PRIVATE_HEADER, mediante las cuales se pueden configurar encabezados usando el comando install(TARGETS) pasando los argumentos PUBLIC_HEADER y PRIVATE_HEADER;
  • Se agregó la variable CMAKE_VS_JUST_MY_CODE_DEBUGGING y la propiedad de destino VS_JUST_MY_CODE_DEBUGGING para habilitar el modo "Solo mi código" en el depurador de Visual Studio al compilar con MSVC cl 19.05 y versiones más recientes;
  • Se ha rediseñado el módulo FindBoost, que ahora funciona de manera más integral en los modos Configuración y Módulo en presencia de otros módulos de búsqueda;
  • El comando message() ahora admite los tipos NOTICE, VERBOSE,
    DEPURACIÓN y SEGUIMIENTO;

  • El comando "exportar(PACKAGE)" ahora no hace nada a menos que se habilite explícitamente mediante la variable CMAKE_EXPORT_PACKAGE_REGISTRY.

Fuente: opennet.ru

Añadir un comentario