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

Introduzido lançamento de um gerador de script de construção aberto multiplataforma CFaça 3.17, 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:

  • Foi adicionado um novo gerador de script de montagem baseado no kit de ferramentas Ninja - “Ninja Multi-Config”, que difere do gerador antigo pela capacidade de processar várias configurações de montagem de uma só vez.
  • No gerador de script assembly para Visual Studio apareceu a capacidade de definir arquivos de origem associados a cada configuração (fontes por configuração).
  • A capacidade de definir metaparâmetros para CUDA (“cuda_std_03”, “cuda_std_14”, etc.) foi adicionada às ferramentas para definir parâmetros do compilador (Compile Features).
  • Adicionadas variáveis ​​"CMAKE_CUDA_RUNTIME_LIBRARY" e "CUDA_RUNTIME_LIBRARY" para selecionar o tipo de bibliotecas de tempo de execução ao usar CUDA.
  • Adicionado o módulo "FindCUDAToolkit" para determinar o kit de ferramentas CUDA disponível no sistema sem habilitar a linguagem CUDA.
  • Adicionado o comando "--debug-find" ao cmake para gerar diagnósticos legíveis adicionais ao executar operações de pesquisa. Para fins semelhantes, a variável CMAKE_FIND_DEBUG_MODE foi adicionada.
  • Adicionado suporte para pesquisa de ferramentas CURL usando arquivos de configuração gerados pelo cmake “CURLConfig.cmake” ao módulo “FindCURL”. Para desabilitar esse comportamento, a variável CURL_NO_CURL_CMAKE é fornecida.
  • O módulo FindPython adicionou a capacidade de pesquisar componentes Python em ambientes virtuais gerenciados usando “conda”.
  • O utilitário ctest adicionou as opções “--no-tests=[error|ignore]” para definir o comportamento no caso de nenhum teste e “--repeat” para definir as condições para reexecutar testes (até passar, após o tempo limite).
  • As propriedades de destino de montagem INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES e INTERFACE_LINK_DEPENDS agora são transferidas entre as dependências internas de bibliotecas montadas estaticamente.
  • Ao usar o kit de ferramentas MinGW, a busca por arquivos DLL com o comando find_library é desabilitada por padrão (em vez disso, a tentativa padrão é importar bibliotecas ".dll.a").
  • A lógica para selecionar o utilitário ninja no gerador Ninja agora não depende do nome do arquivo executável - é usado o primeiro utilitário ninja-build, ninja ou samu encontrado nos caminhos definidos através da variável de ambiente PATH.
  • Adicionado um comando "-E rm" ao cmake que pode ser usado para remover arquivos e diretórios em vez dos comandos separados "-E remove" e "-E remove_directory".

Fonte: opennet.ru

Adicionar um comentário