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

Apresentado lançamento do gerador de scripts de construção open source multiplataforma CMake 3.17, 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 são:

  • Adicionado um novo gerador de scripts de compilação baseado na ferramenta Ninja — "Ninja Multi-Config", que se diferencia do antigo gerador pela capacidade de lidar com várias configurações de compilação de uma só vez.
  • No gerador de scripts de compilação para Visual Studio foi introduzida a possibilidade de definir arquivos de código-fonte associados a cada configuração (per-config sources).
  • Nas ferramentas de configuração de opções do compilador (Compile Features), adicionou-se a capacidade de definir metaparâmetros para CUDA ("cuda_std_03", "cuda_std_14", etc.).
  • Adicionadas as variáveis "CMAKE_CUDA_RUNTIME_LIBRARY" e "CUDA_RUNTIME_LIBRARY" para selecionar o tipo de bibliotecas de runtime ao usar CUDA.
  • Adicionado o módulo "FindCUDAToolkit" para identificar a ferramenta CUDA disponível no sistema sem incluir a linguagem CUDA.
  • Adicionada ao utilitário cmake o comando "—debug-find" para fornecer diagnósticos adicionais legíveis ao realizar operações de busca. Para fins semelhantes, foi adicionada a variável CMAKE_FIND_DEBUG_MODE.
  • No módulo "FindCURL" foi adicionada a capacidade de pesquisar a ferramenta CURL através dos arquivos de configuração cmake gerados "CURLConfig.cmake". Para desativar esse comportamento, a variável CURL_NO_CURL_CMAKE está disponível.
  • No módulo FindPython, foi adicionada a capacidade de buscar componentes Python em ambientes virtuais gerenciados pelo "conda".
  • No utilitário ctest foram adicionadas as opções "—no-tests=[error|ignore]" para definir o comportamento na ausência de testes e "—repeat" para especificar as condições de reinício dos testes (until-pass, after-timeout).
  • Garantido a transferência das propriedades da meta de compilação INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES e INTERFACE_LINK_DEPENDS entre as dependências internas de bibliotecas estaticamente compiladas.
  • Ao usar a ferramenta MinGW, a busca por arquivos DLL foi desativada por padrão pelo comando find_library (em vez disso, por padrão, realiza-se uma tentativa de importação das bibliotecas ".dll.a").
  • A lógica de seleção da ferramenta ninja no gerador Ninja agora não depende do nome do arquivo executável — utiliza a primeira ferramenta encontrada ninja-build, ninja ou samu, encontrada nos caminhos definidos pela variável de ambiente PATH.
  • Adicionado ao utilitário cmake o comando "-E rm", que pode ser usado para remover arquivos e diretórios em vez dos comandos separados "-E remove" e "-E remove_directory".

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster