Lançamento do sistema de compilação CMake 3.15

aconteceu lançamento de um gerador de script de construção aberto multiplataforma CFaça 3.15, que atua como uma alternativa ao Autotools e é usado em projetos como KDE, LLVM/Clang, MySQL, MariaDB, ReactOS e Blender. O código CMake é escrito em C++ e distribuído sob a licença BSD.

CMake se destaca por fornecer uma linguagem de script simples, um meio de estender a funcionalidade por meio de módulos, um número mínimo de dependências (sem ligação a M4, Perl ou Python), suporte a cache, presença de ferramentas para compilação cruzada, suporte para geração de build arquivos para uma ampla variedade de sistemas de construção e compiladores, a presença dos utilitários ctest e cpack para definir scripts de teste e construir pacotes, utilitário cmake-gui para definir parâmetros de construção interativamente.

O principal melhorias:

  • O suporte inicial ao idioma foi adicionado ao gerador de script de construção baseado em Ninja rápido, desenvolvido pela Apple;
  • Adicionado suporte para uma variante do compilador Clang para Windows que é compilado com o MSVC ABI, mas usa opções de linha de comando no estilo GNU;
  • Adicionadas variáveis ​​CMAKE_MSVC_RUNTIME_LIBRARY e MSVC_RUNTIME_LIBRARY para selecionar bibliotecas de tempo de execução usadas por compiladores baseados no MSVC ABI (MS Visual Studio);
  • Para compiladores como MSVC, CMAKE__FLAGS por padrão para de listar sinalizadores de controle de aviso como "/W3";
  • Adicionada uma expressão geradora "COMPILE_LANG_AND_ID:" para definir opções de compilador para arquivos de destino, usando as variáveis ​​CMAKE__COMPILER_ID e LANGUAGE para cada arquivo de código;
  • Nas expressões geradoras C_COMPILER_ID, CXX_COMPILER_ID,
    CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
    COMPILE_LANG_AND_ID e PLATFORM_ID adicionaram suporte para corresponder um único valor a uma lista cujos elementos são separados por vírgula;

  • Adicionada a variável CMAKE_FIND_PACKAGE_PREFER_CONFIG para que a chamada find_package() procure primeiro o arquivo de configuração do pacote, mesmo se um localizador estiver disponível;
  • Para bibliotecas de interface, foi adicionado suporte para configuração das propriedades PUBLIC_HEADER e PRIVATE_HEADER, pelas quais os cabeçalhos podem ser configurados usando o comando install(TARGETS) passando os argumentos PUBLIC_HEADER e PRIVATE_HEADER;
  • Adicionadas a variável CMAKE_VS_JUST_MY_CODE_DEBUGGING e a propriedade de destino VS_JUST_MY_CODE_DEBUGGING para habilitar o modo "Just My Code" no depurador do Visual Studio ao compilar usando MSVC cl 19.05 e versões mais recentes;
  • O módulo FindBoost foi redesenhado, que agora funciona de forma mais holística nos modos Config e Módulo na presença de outros módulos de pesquisa;
  • O comando message() agora suporta os tipos NOTICE, VERBOSE,
    DEBUG e TRACE;

  • O comando "export(PACKAGE)" agora não faz nada, a menos que seja explicitamente ativado por meio da variável CMAKE_EXPORT_PACKAGE_REGISTRY.

Fonte: opennet.ru

Adicionar um comentário