Principais Alternativas de CMake Mais Bem Avaliadas
Avaliações 17 CMake
Eu amo o formato dos arquivos de configuração, eles são bastante simples e se parecem um pouco com o código que eu estaria escrevendo ao usar o CMake de qualquer forma, então isso é uma vantagem. Configurá-lo, uma vez que você pega o jeito, é fácil e tem forte apoio das comunidades que dependem dele, então você pode se sentir seguro sabendo que poderá contar com ele por um longo tempo. Análise coletada por e hospedada no G2.com.
Não sou um grande fã da documentação online no estilo man, para pessoas que não estão familiarizadas com as páginas man do *n*x, uma simples busca sobre como fazer algo pode se transformar em uma caça às bruxas por algo que acaba sendo uma única linha. É intimidador para pessoas que estão tentando começar a usar software assim, realmente. Análise coletada por e hospedada no G2.com.

Bem, por onde começo. Comecei a usar make há muitos anos e depois me deparei com o CMake. Desde então, não escrevi vários arquivos make de centenas a milhares de linhas. Em vez disso, passo meu tempo em problemas maiores, que é, acho, a parte favorita, a economia de tempo. Eu também gosto do conjunto rico de recursos, ele se integra bem com GIT, FTP, HTTP, etc., e você pode scriptar qualquer coisa que queira scriptar com ele usando sua própria sintaxe. Análise coletada por e hospedada no G2.com.
Eu odiava a curva de aprendizado, pois ela tem sua própria sintaxe que acho que foi projetada diretamente oposta à forma como penso às vezes. Provavelmente, a parte mais difícil para mim inicialmente foi determinar como fazer as dependências se conectarem corretamente. Além disso, outro detalhe é que a documentação nem sempre é a melhor para o que você está tentando fazer. Análise coletada por e hospedada no G2.com.

Comparado aos autotools clássicos usados para gerar Makefiles para a grande maioria dos projetos de código aberto, o cmake é uma lufada de ar fresco de simplicidade. Você não precisa conhecer todas as variáveis e nomes de funções arcanas no autoconf e automake.
Você também se livra da desordem de arquivos que precisam estar na raiz do seu projeto para construir o projeto. Simplificando, o cmake é uma abordagem mais simples e eficiente para construir projetos e, com a possibilidade de usar módulos de terceiros, você pode simplesmente estender suas funcionalidades. Análise coletada por e hospedada no G2.com.
Além da curva de aprendizado, eu diria que a falta de um repositório central para os módulos de terceiros é o principal ponto negativo do cmake. Você pode ter múltiplas implementações para o mesmo módulo com diferentes graus de correção. Se você precisar de algo que não vem com o pacote oficial do cmake, é mais provável que você combine múltiplos pedaços de vários módulos de terceiros para alcançar seu objetivo. Análise coletada por e hospedada no G2.com.

CMake resolve o problema do desenvolvimento multiplataforma e o caos de bibliotecas/cabeçalhos ao definir uma meta-linguagem que ajuda o desenvolvedor a reproduzir a configuração de um projeto em diferentes máquinas sob diferentes configurações. CMake torna possível integrar um projeto C++ (mas também outras linguagens são suportadas, como Java e C#) com um Sistema de Integração Contínua, como o Jenkins, e realizar testes automatizados. Todas as principais plataformas são suportadas e é possível compilar facilmente para outras arquiteturas também (por exemplo, de um host x86 para um alvo ARM) graças aos arquivos de toolchain. Análise coletada por e hospedada no G2.com.
Falta um tipo de registro de arquivos CMake para projetos existentes, para que os usuários possam simplesmente baixar esses arquivos e integrá-los em outro projeto. Análise coletada por e hospedada no G2.com.

CMake usa arquivos de texto simples para configurar, o que permite que seja configurado especificamente para cada projeto em que você está trabalhando. Ele também inclui uma série de pacotes automáticos de localização de bibliotecas que facilitam a localização de cabeçalhos. Análise coletada por e hospedada no G2.com.
Infelizmente, como muitos compiladores C++, pode ser um pouco lento. No entanto, é, na minha opinião, uma alternativa melhor aos GNU Autotools. Análise coletada por e hospedada no G2.com.
Once it works, it's great. It's incredibly flexible, dead simple, and Just Works. The GUI is great to use and I frequently switch between it and the command line tool.
I have no complaints with using CMake as long as I'm not writing the files myself.
There's built in support for unit test frameworks and is highly customize-able.
Many parts of the language are great. It's easy to set required options, to find installed packages, or to list files in a folder.
I rarely write C++ without using CMake. Even if it's just me using it, and I'll only need a single version of Visual Studio. Análise coletada por e hospedada no G2.com.
It can be frustrating to use. The language is a weird mixture of built-in functions, concatenating strings, and writing macros. The language is just weird. It works, eventually, but I haven't grokked it yet. Análise coletada por e hospedada no G2.com.

CMake faz um trabalho fantástico ao substituir autotools e é um substituto capaz para perfis Qt. Se você tem um ambiente de construção complexo, então faz total sentido usar CMake para gerenciá-lo. É muito mais fácil escrever os arquivos de configuração do CMake do que gerenciar um grande número de makefiles. É rápido, fácil e pode ser feito em qualquer editor de texto, se necessário. Análise coletada por e hospedada no G2.com.
O uso de funções pode ser intimidador. O uso de múltiplos arquivos CMake pode ser um pouco avassalador. No entanto, com um bom SCM, isso não é um problema real. Análise coletada por e hospedada no G2.com.