cmkr: geração declarativa de CMake para compilações C++ mais limpas
Experimente um fluxo de construção declarativo escrevendo um único cmake.toml para produzir projetos CMake padrão, incluindo alvos e dependênciaswords). Duncan Ogilvie criou o cmkr como uma ferramenta utilitária para envolver o CMake com um manifesto TOML semelhante ao Cargo, preservando a compatibilidade com CMake enquanto reduz o boilerplatewords). As principais capacidades incluem configuração TOML, geração automática de CMakeLists.txt, integração com FetchContent e vcpkg, e auto-bootstrap para CI; desenvolvedores que desejam menos script manual de CMake obtêm o maior benefíciowords).
O que o cmkr faz em termos práticos?
cmkr lê um arquivo cmake.toml legível por humanos e gera arquivos CMakeLists.txt idiomáticos automaticamente. A ferramenta aceita metadados do projeto, múltiplas definições de alvo (executáveis, bibliotecas estáticas e compartilhadas), lógica condicional e opções específicas de plataforma em TOML, e então emite CMake padrão que qualquer IDE ou etapa de construção ciente de CMake pode consumir. Isso substitui scripts CMake escritos à mão por um único manifesto declarativo para cada projeto.
Como ele se comporta em CI e projetos compartilhados?
cmkr oferece auto-bootstrap, então um repositório pode incluir os arquivos gerados e um script de bootstrap que permite que construtores a jusante rodem apenas com CMake padrão e um compilador C++. Esse design significa que pipelines de CI não precisam do cmkr pré-instalado; o CMake gerado permanece a entrada canônica para construções automatizadas, tornando o compartilhamento de projetos e a integração com fluxos de trabalho de CI existentes diretos.
O cmkr é seguro e quão íngreme é a curva de aprendizado?
A ferramenta preserva a compatibilidade com CMake ao produzir CMakeLists.txt padrão, portanto não substitui o CMake no tempo de construção. A lógica condicional e as regras específicas de plataforma vivem em TOML, o que requer aprender o mapeamento do cmkr de entradas declarativas para construções do CMake. O histórico do desenvolvedor com ferramentas C++ e a experiência anterior com CMake reduzirão o tempo de adaptação; iniciantes se beneficiam de uma configuração menos verbosa, mas devem aprender o esquema do manifesto.
Escolha clara para equipes C++ que desejam metadados de construção declarativos
cmkr atende desenvolvedores que preferem escrever um único manifesto TOML em vez de manter vários scripts CMake; ele mantém os projetos compatíveis com as ferramentas e IDEs CMake existentes, enquanto torna o bootstrap do repositório possível. A principal compensação é a camada extra de abstração: as equipes devem mapear conceitos CMake no esquema declarativo, o que adiciona um passo inicial de aprendizado antes que as economias de tempo apareçam.





