Foi lançado o release do gerador de scripts de compilação de código aberto e multiplataforma CMake 3.22, que serve 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 uma 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 melhorias:
- Na ferramenta de configuração de parâmetros do compilador (Compile Features), foi adicionada a opção de habilitar e desabilitar extensões do compilador sem especificar o nível de suporte padrão, além da exclusão da configuração de flags desnecessárias com o nível padrão da linguagem, caso as configurações selecionadas se enquadrem nos parâmetros padrão do compilador.
- Na função cmake_host_system_information(), foi adicionada a possibilidade de solicitar o identificador do sistema operacional, armazenado no arquivo /etc/os-release.
- Foram adicionadas as variáveis de ambiente CMAKE_BUILD_TYPE e CMAKE_CONFIGURATION_TYPES, que permitem definir o valor padrão das variáveis CMake com o mesmo nome.
- Foi adicionada a variável «CMAKE_REQUIRE_FIND_PACKAGE_», que transforma a chamada da função find_package() para a detecção do pacote especificado em uma exigência obrigatória.
- Foi adicionada a variável de ambiente «CMAKE_INSTALL_MODE» para definir links simbólicos em vez de copiar arquivos ao chamar «install()».
- Foi adicionado o flag «CMAKE__LINK_WHAT_YOU_USE_FLAG» e a variável «CMAKE_LINK_WHAT_YOU_USE_CHECK» para definir e verificar os flags do linker.
- No módulo FetchContent, agora há suporte para passar as variáveis configuradas «CMAKE_TLS_VERIFY», «CMAKE_TLS_CAINFO», «CMAKE_NETRC» e «CMAKE_NETRC_FILE» para o script de construção de projetos externos (anteriormente esses parâmetros eram ignorados).
- No macro «cmake_dependent_option()», fornecido pelo módulo «CMakeDependentOption», foi adicionando suporte total para a sintaxe de expressões condicionais.
- Os módulos «FindJasper» e «FindMatlab» agora fornecem alvos importáveis.
- Na propriedade «VS_SETTINGS», foi implementado suporte para todos os tipos de arquivos com código-fonte.
- Foi declarado obsoleto e será removido em uma das próximas versões o gerador «Visual Studio 10 2010».
Fonte: opennet.ru
