Foi lançado o CMake 4.0.0, um gerador de scripts de build multiplataforma e de código aberto, 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 a licença BSD.
O CMake é notável por fornecer uma linguagem de scripts simples, com meios de extensão de funcionalidade através de módulos, suporte a cache, ferramentas para cross-compilation, geração de arquivos de build para uma ampla gama de sistemas de build e compiladores, além de utilitários ctest e cpack para definir scripts de teste e empacotamento, e uma interface gráfica cmake-gui para configuração interativa dos parâmetros de build.
Principais mudanças:
- A compatibilidade com versões do CMake anteriores à versão 3.5 foi descontinuada. Ao vincular a versões não suportadas nas funções cmake_minimum_required() e cmake_policy(), agora será gerada uma mensagem de erro.
- Foi adicionada a variável de ambiente "CMAKE_POLICY_VERSION_MINIMUM" para substituir a versão mínima do CMake necessária para compilar o projeto. Essa variável adicional permite evitar alterações nas chamadas cmake_minimum_required(VERSION) e cmake_policy(VERSION) no próprio projeto, por exemplo, para configurar as políticas de versão em projetos que não preveem essa possibilidade.
- A expressão do gerador "$" agora inclui a operação "NATIVE_PATH" para transformar o caminho do arquivo da apresentação do CMake (onde são usados "\/" para separação de diretórios) no caminho do sistema (onde, em sistemas Unix-like, é usado "\/" e, no Windows, "\\").
- Na plataforma macOS, ao usar geradores de build baseados no Ninja e geradores Makefile, se um compilador estiver presente no diretório "/usr/bin", ele será mantido como está, sem vinculação ao compilador do Xcode. Na construção para a plataforma macOS, foi descontinuada a seleção do SDK e a passagem da flag "-isysroot" ao compilador (o SDK agora é escolhido pelo próprio compilador, e não pelo CMake).
- Foi adicionada a propriedade LINK_WARNING_AS_ERROR, que trata os avisos do linker como erros. Para desativar essa propriedade, foi adicionada a opção de linha de comando "—link-no-warning-as-error".
- Adicionada à utilidade cmake a opção "—project-file" para definir um nome alternativo para o arquivo CMakeLists.txt.
- No gerador CPack foi adicionada a possibilidade de criar arquivos tar não compactados.
- Na função target_link_libraries() e nas variáveis CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS*, CMAKE_MODULE_LINKER_FLAGS* foi adicionada a support ao prefixo "LINKER:".
- Novas variáveis adicionadas:
- CMAKE_EXECUTE_PROCESS_COMMAND_ERROR_IS_FATAL,
- CMAKE__LINK_MODE,
- CMAKE__DEVICE_LINK_MODE,
- CMAKE_LINK_WARNING_AS_ERROR,
- CMAKE_MSVC_RUNTIME_CHECKS,
- CMAKE_DEBUGGER_WORKING_DIRECTORY,
- CMAKE_XCODE_SCHEME_LLDB_INIT_FILE,
- CMAKE_XCODE_SCHEME_TEST_CONFIGURATION.
- Novas propriedades adicionadas: DEBUGGER_WORKING_DIRECTORY e VS_SOLUTION_ITEMS (para anexar arquivos ao .sln para o Visual Studio).
- Garantida a criação de builds prontos do CMake para SunOS para as arquiteturas sparc64 e x86_64.
Fonte: opennet.ru
