lançamento do gerador de scripts de construção open source multiplataforma , atuando como uma alternativa ao Autotools e utilizado em projetos como KDE, LLVM/Clang, MySQL, MariaDB, ReactOS e Blender. O código do CMake é escrito em C++ e é distribuído sob a licença BSD.
O CMake é notável por oferecer uma linguagem de script simples, extensibilidade de funcionalidade através de módulos, um número mínimo de dependências (sem ligação ao M4, Perl ou Python), suporte a cache, ferramentas para compilação cruzada, geração de arquivos de construção para uma ampla gama de sistemas de compilação e compiladores, incluindo utilitários ctest e cpack para definir scripts de teste e pacotes de construção, além do utilitário cmake-gui para configuração interativa de parâmetros de construção.
Principais :
- O gerador de scripts de construção baseado na ferramenta Ninja agora possui suporte inicial ao idioma , desenvolvido pela Apple;
- Suporte adicionado à variante do compilador Clang para Windows, que realiza a construção com ABI MSVC, mas utiliza opções de linha de comando no estilo GNU;
- Variáveis CMAKE_MSVC_RUNTIME_LIBRARY e MSVC_RUNTIME_LIBRARY adicionadas para selecionar as bibliotecas de tempo de execução usadas pelos compiladores baseados em ABI MSVC (MS Visual Studio);
- Para compilers como MSVC, a enumeração de flags de controle de avisos, como '/W3', foi removida de CMAKE__FLAGS por padrão;
- Adicionado a expressão do gerador 'COMPILE_LANG_AND_ID:' para determinar as opções do compilador para arquivos de destino, utilizando as variáveis CMAKE__COMPILER_ID e LANGUAGE para cada arquivo de código;
- Em expressões do gerador C_COMPILER_ID, CXX_COMPILER_ID,
CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
COMPILE_LANG_AND_ID e PLATFORM_ID, foi adicionada a correspondência de um único valor com uma lista cujos elementos são separados por vírgula; - A variável CMAKE_FIND_PACKAGE_PREFER_CONFIG foi adicionada, onde a chamada find_package() buscará primeiro o arquivo de configuração do pacote, mesmo que um módulo de pesquisa esteja disponível;
- Para bibliotecas de interface, foi adicionado suporte para definir propriedades PUBLIC_HEADER e PRIVATE_HEADER, que podem ser definidas através do comando install(TARGETS) ao passar os argumentos PUBLIC_HEADER e PRIVATE_HEADER;
- A variável CMAKE_VS_JUST_MY_CODE_DEBUGGING e a propriedade alvo VS_JUST_MY_CODE_DEBUGGING foram adicionadas para ativar o modo 'Just My Code' no depurador do Visual Studio ao compilar usando MSVC cl 19.05 ou versões mais novas;
- O módulo FindBoost foi reformulado, agora executando de forma mais coesa nos modos Config e Module na presença de outros módulos de pesquisa;
- A função message() agora suporta tipos NOTICE, VERBOSE,
DEBUG e TRACE; - O comando 'export(PACKAGE)' agora não faz nada até que seja explicitamente ativado através da variável CMAKE_EXPORT_PACKAGE_REGISTRY.
Fonte: opennet.ru
