Lanzamento do sistema de compilación CMake 3.15

tivo lugar lanzamento dun xerador de scripts de compilación aberta multiplataforma CMake 3.15, que actúa como alternativa a Autotools e úsase en proxectos como KDE, LLVM/Clang, MySQL, MariaDB, ReactOS e Blender. O código CMake está escrito en C++ e distribúese baixo a licenza BSD.

CMake destaca por proporcionar unha linguaxe de scripts sinxela, un medio para estender a funcionalidade a través de módulos, un número mínimo de dependencias (sen vinculación a M4, Perl ou Python), soporte de caché, presenza de ferramentas para a compilación cruzada, soporte para xerar compilación. ficheiros para unha ampla gama de sistemas de compilación e compiladores, a presenza de utilidades ctest e cpack para definir scripts de proba e construír paquetes, a utilidade cmake-gui para establecer de forma interactiva os parámetros de compilación.

O principal melloras:

  • Engadiuse a compatibilidade coa linguaxe inicial ao xerador de scripts de compilación baseado en Ninja Rápido, desenvolvido por Apple;
  • Engadido soporte para unha variante do compilador Clang para Windows que se compila co MSVC ABI, pero usa opcións de liña de comandos ao estilo GNU;
  • Engadíronse as variables CMAKE_MSVC_RUNTIME_LIBRARY e MSVC_RUNTIME_LIBRARY para seleccionar bibliotecas de tempo de execución utilizadas polos compiladores baseados no MSVC ABI (MS Visual Studio);
  • Para compiladores como MSVC, CMAKE__FLAGS de xeito predeterminado deixa de listar marcas de control de aviso como "/W3";
  • Engadiuse unha expresión xeradora "COMPILE_LANG_AND_ID:" para definir as opcións do compilador para os ficheiros de destino, utilizando as variables CMAKE__COMPILER_ID e LANGUAGE para cada ficheiro de código;
  • Nas expresións xeradoras C_COMPILER_ID, CXX_COMPILER_ID,
    CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
    COMPILE_LANG_AND_ID e PLATFORM_ID engadiron compatibilidade para facer coincidir un único valor cunha lista cuxos elementos están separados por coma;

  • Engadiuse a variable CMAKE_FIND_PACKAGE_PREFER_CONFIG para que chamar a find_package() busque primeiro o ficheiro de configuración do paquete, aínda que estea dispoñible un buscador;
  • Para as bibliotecas de interfaces, engadiuse soporte para establecer as propiedades PUBLIC_HEADER e PRIVATE_HEADER, mediante as cales se poden establecer cabeceiras mediante o comando install(TARGETS) pasando os argumentos PUBLIC_HEADER e PRIVATE_HEADER;
  • Engadiuse a variable CMAKE_VS_JUST_MY_CODE_DEBUGGING e a propiedade de destino VS_JUST_MY_CODE_DEBUGGING para habilitar o modo "Só o meu código" no depurador de Visual Studio ao compilar usando MSVC cl 19.05 e versións máis recentes;
  • Rediseñouse o módulo FindBoost, que agora funciona de forma máis holística nos modos Config e Module en presenza doutros módulos de busca;
  • O comando message() agora admite os tipos NOTICE, VERBOSE,
    DEPURACIÓN e TRAZADO;

  • O comando "export(PACKAGE)" agora non fai nada a menos que estea activado explícitamente mediante a variable CMAKE_EXPORT_PACKAGE_REGISTRY.

Fonte: opennet.ru

Engadir un comentario