Faz alguns dias Gerador de script de código aberto de plataforma cruzada CMake 3.15 lançado que atua como uma alternativa ao Autotools e é usado em projetos como KDE, LLVM / Clang, MySQL, MariaDB, ReactOS e Blender.
CMake é uma ferramenta de geração ou automação de código multiplataforma. O nome é uma abreviatura de "cross platform make" (make cross platform, além do uso de "make" no nome, CMake é um conjunto separado e de nível superior ao sistema de fabricação comum do Unix, sendo semelhante ao autotools.
Sobre o CMake
CMakeName é notável por fornecer uma linguagem de script simples, ferramentas para estender a funcionalidade entre módulos, número mínimo de dependências (sem vinculação a M4, Perl ou Python), suporte de cache, disponibilidade de ferramentas para compilação cruzada, suporte para geração de arquivos de montagem para uma ampla gama de sistemas de compiladores e compiladores.
Os utilitários ctest e cpack para definir cenários de teste e criação de pacote, com o utilitário cmake-gui para configurar parâmetros de construção interativamente.
CMake é usado para controlar o processo de compilação do software usando arquivos de configuração simples e independentes da plataforma. Cmake gera makefiles e áreas de trabalho nativos que podem ser usados no ambiente de desenvolvimento desejado.
É comparável ao sistema de compilação GNU Unix em que o processo é controlado por arquivos de configuração, no caso do CMake chamado CMakeLists.txt.
Ao contrário do sistema de construção GNU, que é restrito a plataformas Unix, O CMake oferece suporte à geração de arquivos para vários sistemas operacionais, o que facilita a manutenção e elimina a necessidade de vários conjuntos de arquivos para cada plataforma.
O processo de construção é controlado criando um ou mais arquivos CMakeLists.txt em cada diretório (incluindo subdiretórios).
O código CMake é escrito em C ++ e é distribuído sob a licença BSD.
Principais novos recursos do CMake 3.15
Esta nova versão destacado pela chegada do suporte de gerador inicial para a linguagem Swift desenvolvido pela Apple foi adicionado ao gerador de script de montagem do Ninja Toolkit.
Além disso, também vem com suporte para a opção do compilador Clang para Windows que é construído com ABI MSVC, mas usa as opções de linha de comando do estilo GNU.
Os desenvolvedores enfatizam que as variáveis CMAKE_MSVC_RUNTIME_LIBRARY
y MSVC_RUNTIME_LIBRARY
são adicionados para selecionar as bibliotecas de tempo de execução usadas pelos compiladores ABI MSVC
(MSVisual Studio).
Para compiladores como MSVC
em CMAKE__FLAGS
Por padrão, a lista de sinalizadores de controle de aviso, como "/ W3", é interrompida.
Das outras melhorias que são destacadas no anúncio do lançamento desta nova versão, encontramos o seguinte:
- Adicionada a expressão geradora '
COMPILE_LANG_AND_ID
: »Para definir as opções do compilador para arquivos alvo que usam variáveisCMAKE__COMPILER_ID
yLANGUAGE
para cada arquivo de código - Expressões geradoras
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
adicionar suporte para corresponder um valor a uma lista, itens separados por vírgulas - A variável foi adicionada
CMAKE_FIND_PACKAGE_PREFER_CONFIG
, em que a chamada para find_package () irá procurar pelo arquivo de configuração do pacote primeiro, mesmo se o módulo de pesquisa estiver disponível - Para bibliotecas de interface, foi adicionado suporte para definir propriedades
PUBLIC_HEADER y PRIVATE_HEADER
, cujos cabeçalhos podem ser configurados pelo comando de instalação (TARGETS) passando os argumentosPUBLIC_HEADER
yPRIVATE_HEADER
- A variável foi adicionada
CMAKE_VS_JUST_MY_CODE_DEBUGGING
e a propriedade de destinoVS_JUST_MY_CODE_DEBUGGING
para habilitar o modo "Just My Code" no depurador do Visual Studio ao compilar usando MSVC cl 19.05 e versões mais recentes. - O módulo FindBoost foi retrabalhado, que agora está sendo trabalhado de forma mais completa nos modos de configuração e módulo com a presença de outros módulos de pesquisa
- Suporte para os tipos NOTICE, VERBOSE, DEBUG e TRACE foi adicionado ao comando message ()
- O comando "export (PACKAGE)" agora não faz nada até que seja explicitamente habilitado por meio da variável
CMAKE_EXPORT_PACKAGE_REGISTRY
.
Se você quiser saber mais sobre isso, você pode consultar o seguinte link.