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

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

  • Suporte adicionado para as linguagens Objective C («OBJC») e Objective C++ («OBJCXX»), que podem ser ativadas por meio dos comandos project() e enable_language(), após o que o código nos arquivos «.m» e «.mm» será compilado como código em Objective C e Objective C++, em vez de como código em C++, como era antes;
    Suporte adicionado para o compilador Clang na plataforma Solaris;
  • Novos parâmetros da linha de comando adicionados: «cmake -E true|false» para retornar os códigos 0 e 1; «cmake —trace-redirect=» para redirecionar informações de rastreamento para um arquivo, em vez de «stderr»; o comando «cmake —loglevel» foi renomeado para «—log-level» para alinhar-se à nomenclatura dos outros comandos;
  • Adicionada a comando «target_precompile_headers()» para listar os arquivos de cabeçalho usados na pré-compilação (reduz o tempo de compilação);
    Propriedade «UNITY_BUILD» adicionada, que ativa o modo de processamento em lote de arquivos fonte nos geradores para acelerar a compilação;
  • Os comandos «find_file()», «find_library()», «find_path()», «find_package()» e «find_program()» foram adicionados para procurar arquivos, bibliotecas, caminhos, pacotes e executáveis de acordo com as variáveis que definem os caminhos de busca de diferentes categorias de arquivos.
  • As variáveis «CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH», «CMAKE_FIND_USE_CMAKE_PATH», «CMAKE_FIND_USE_CMAKE_SYSTEM_PATH», «CMAKE_FIND_USE_PACKAGE_ROOT_PATH», «CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH» e «CMAKE_FIND_USE_PACKAGE_REGISTRY» são usadas para gerenciar os caminhos base para busca;
  • Modo «file(GET_RUNTIME_DEPENDENCIES)» adicionado ao comando «file()», permitindo extrair recursivamente a lista de bibliotecas envolvidas na vinculação dinâmica de um executável ou biblioteca. Este modo substituiu o comando GetPrerequisites(), que agora está obsoleto;
    A funcionalidade de serialização de testes foi implementada no comando «ctest(1)», com base nos recursos necessários para cada teste;
    A variável «CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY» foi declarada obsoleta, e agora deve-se usar «CMAKE_FIND_USE_PACKAGE_REGISTRY».
  • A variável «CMAKE_FIND_USE_PACKAGE_REGISTRY» agora deve ser utilizada em substituição à obsoleta «CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY».
  • В команде «ctest(1)» реализована возможность сериализации тестов, отталкиваясь от ресурсов, требуемых для каждого теста;
  • Объявлена устаревшей переменная «CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY», вместо которой следует использовать «CMAKE_FIND_USE_PACKAGE_REGISTRY»;
  • Melhor suporte para a plataforma AIX. Ao usar a propriedade "ENABLE_EXPORTS", além do arquivo executável, agora é gerado um arquivo de importação para o vinculador, salvo com a extensão ".imp". Nos plugins criados com a chamada "add_library()" com a opção "MODULE", este arquivo pode ser utilizado durante a vinculação com o comando "target_link_libraries()". A vinculação em tempo de execução no AIX está desabilitada por padrão, pois o CMake agora fornece todas as informações necessárias sobre os símbolos para a vinculação durante o carregamento. Para aplicar a vinculação em tempo de execução de bibliotecas dinâmicas ou módulos carregados, deve-se especificar explicitamente as opções "-Wl,-G" nas listas de flags do vinculador, definidas através das variáveis "CMAKE_SHARED_LINKER_FLAGS" e "CMAKE_MODULE_LINKER_FLAGS".

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