CMake 3.28 lançado com melhorias, correções, e muito mais

E foi lançado o CMake 3.28 com melhorias, correções, e muito mais. Confira as novidades e descubra como instalar no Linux.

CMake é uma ferramenta de geração ou automação de código multiplataforma que atua como alternativa ao Autotools e é utilizada em projetos como KDE, LLVM/Clang, MySQL, MariaDB, ReactOS e Blender.

CMake se destaca por fornecer uma linguagem de script simples, meios de expansão de funcionalidade por meio de módulos, número mínimo de dependências (sem ligação a M4, Perl ou Python), suporte para cache, presença de ferramentas para compilação cruzada, suporte para geração de arquivos de construção 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 construção, utilitário cmake-gui para definir parâmetros de construção interativamente.

Agora, foi anunciado o lançamento da nova versão do CMake 3.28.

Novidades do CMake 3.28

CMake 3.28 lançado com melhorias, correções, e muito mais

CMake 3.28 inclui melhorias de suporte, bem como a capacidade de compilar a linguagem HIP para GPUs NVIDIA, correções de bugs e muito mais.

Esta nova versão do CMake 3.28 destaca o suporte para módulos definidos na especificação C++20 para geradores de script de construção para Visual Studio e Ninja em combinação com o conjunto de ferramentas MSVC 14.34 (fornecido com VS 17.4) e posterior, LLVM/Clang 16.0 e superior, e GCC 14 (após 2023) e mais recente.

Outro destaque desta nova versão do CMake 3.28 é o suporte para compilação de código GPU NVIDIA na linguagem HIP utilizando o compilador NVCC, já que a variável CMAKE_HIP_PLATFORM foi adicionada para selecionar a plataforma GPU para HIP (“amd” ou “nvidia”).

Além disso, nas plataformas Apple os diretórios “xcframework” agora são suportados e com isso o comando find_library agora procura por pastas .xcframework, target_link_libraries agora suporta links para uma pasta .xcframework.

No CMake 3.28, os comandos find_library(), find_path() e find_file() no Windows desabilitam a pesquisa nos diretórios de instalação obtidos da variável de ambiente PATH (para unificar o comportamento no Windows com outras plataformas).

Este comportamento foi adicionado no CMake 3.3 para suportar ambientes de desenvolvimento MSYS e MinGW() no Windows, mas pode verificar prefixos indesejados encontrados no PATH por motivos não relacionados.

O CMake 3.6 reverteu o comportamento para plataformas não Windows e agora também foi revertido em plataformas Windows.

Em relação às melhorias nos módulos, destaca-se que o ExternalProject agora inclui a opção BUILD_JOB_SERVER_AWARE para o comando ExternalProject_Add().

Esta opção permite a integração do servidor de trabalho GNU Make quando BUILD_COMMAND é usado explicitamente com determinados geradores Makefile.

Das outras mudanças que se destacam no CMake 3.28, temos os seguintes itens:

  • Removido o comando “exec_program()”, que estava obsoleto na versão 3.0. Para executar processos, use o comando “execute_process()”.
  • Arquivos gerados usando o modo “FILE_SET” agora são tratados como privados por padrão, permitindo um gráfico de construção mais eficiente em geradores Ninja.
  • A variável de ambiente CMAKE_PREFIX_PATH agora pode ser definida com uma lista de prefixos separados por ponto e vírgula para pesquisa.
  • Ao usar ferramentas MinGW em um ambiente Windows MSYSTEM, os prefixos $MSYSTEM_PREFIX/local e $MSYSTEM_PREFIX agora são adicionados a CMAKE_SYSTEM_PREFIX_PATH.
  • Os binários Linux x86_64 pré-compilados fornecidos em cmake.org agora requerem GLIBC 2.17 ou superior.
  • Compiladores baseados em Cray Clang agora suportam o id do compilador CrayClang.
  • O compilador OrangeC agora suporta o id do compilador OrangeC.

Para saber mais sobre essa versão do CMake, acesse a nota de lançamento.

Como instalar ou atualizar o CMake

Para os interessados ​​​​em poder instalar a nova versão do Cmake em seu sistema, saiba que pode obter a nova versão na seção de downloads do site do projeto.

No caso do Linux, na maioria das distribuições basta executar os comandos de atualização para obter a nova versão.

Porém se preferir compilar a partir do código fonte, basta baixar o pacote correspondente à sua arquitetura, descompactar e executar os comandos de compilação (já dentro da pasta):
./bootstrap
make -j$(nproc)
sudo make install

Sair da versão mobile