cmake-init - O Inicializador do Projeto CMake ausente cmake-init é um inicializador de projetos cmake opinativo que gera projetos de CMake que estão prontos para o BETCHCONTENT, separam os alvos de consumidores e desenvolvedores, fornecem regras de instalação com pacotes de CMake realocáveis adequados e usam cmake moderno (3.14+).
Consulte o wiki, por exemplo, saídas de cmake-init e outros exemplos pragmáticos de funcionalidade implementados para CMake, como gerentes de pacotes, testes de fuzz, superbuilds, etc.






Se você deseja entrar em contato comigo para qualquer coisa relacionada ao CMake, poderá me encontrar no canal #cmake da folga C ++. Se o que você deseja saber é específico do CMake, você também pode fazer perguntas nas discussões deste repositório.
h quando solicitado. Biblioteca estática/compartilhada? Basta escolher s quando solicitado. Simples e correto!FetchContentVerifique se você tem esses programas instalados:
OBSERVAÇÃO
Algumas dessas ferramentas também podem ser usadas no Windows se você quiser usar o Visual Studio, mas você precisa instalar esses addins:
Este pacote está disponível para download da Pypi. Você pode instalar este pacote usando pip :
pip install cmake-init Clang-Tidy é uma ferramenta de análise estática que ajuda a identificar erros lógicos em seu código antes de ser compilado. Este script oferece a opção de herdar a predefinição clang-tidy em sua predefinição dev , permitindo a integração do CMake para esta ferramenta.
O CI sempre executa o Clang-Tidy para você, por isso é totalmente opcional instalar e usá-lo localmente, mas é recomendado.
Para os usuários do Windows , se você deseja usar o Clang-Tidy, deve instalar o Ninja e definir o campo generator em seu dev predefinido para Ninja . A razão para isso é que apenas o Makefiles e o Ninja são suportados com CMake para uso com o Clang-Tidy. Para outros geradores, esse recurso é um não-Op.
O CPPCHECK é uma ferramenta de análise estática semelhante ao Clang-Tidy, no entanto, a sobreposição no que eles detectam é mínima, por isso é benéfico usar os dois. Este script oferece a opção de herdar a predefinição cppcheck na predefinição do dev , permitindo a integração do CMake para esta ferramenta.
O CI sempre executará o CPPCHECK para você, por isso é totalmente opcional instalar e usá -lo localmente, mas é recomendado.
Para os usuários do Windows , se você deseja usar o CPPCHECK, instale o Ninja e defina o campo generator em seu dev predefinido para Ninja . A razão para isso é que apenas o Makefiles e o Ninja são suportados com CMake para uso com o CPPCHECK. Para outros geradores, esse recurso é um não-Op.
Doxygen é uma ferramenta para gerar documentação a partir do código -fonte anotado. Em conjunto com ele, o M.CSS é usado para apresentar a documentação gerada.
Os projetos gerados terão uma meta docs no modo de desenvolvedor, que pode ser usado para criar a documentação no diretório <binary-dir>/docs/html .
Depois que o doxygen estiver instalado, verifique se o executável doxygen existe no PATH ; caso contrário, você poderá obter mensagens de erro confusas.
Esta documentação pode ser implantada nas páginas do GitHub usando o trabalho docs no fluxo de trabalho de IC gerado. Siga os comentários deixados no trabalho para ativar isso.
NOTA : O M.CSS não funciona com doxygen> = 1.9. Você pode instalar o 1.8.20 para usar o destino docs . Veja os problemas #41 e #48.
O LCOV é uma ferramenta para processar informações de cobertura geradas por executáveis que foram instrumentados com gcov do GCC. Esta informação de cobertura pode ser usada para ver quais partes do programa foram executadas.
Os projetos gerados terão um alvo coverage no modo de desenvolvedor se a variável ENABLE_COVERAGE estiver ativada. A razão pela qual um alvo separado é usado em vez da etapa coverage interna do CTEST é porque não possui a personalização necessária. Esse destino deve ser executado após os testes e, por padrão, ele gerará um relatório em <binary-dir>/coverage.info e um relatório HTML no diretório <binary-dir>/coverage_html .
Para usuários do Windows , você pode usar uma ferramenta semelhante chamada OpenCPPCoverage, para a qual existe um exemplo de script no diretório cmake gerado. Esse script é deixado como exemplo, porque a VM Linux é lançada e funciona mais rapidamente nas ações do GitHub e, portanto, é usado para envio de cobertura.
O formato de Clang faz parte do conjunto de ferramentas LLVM semelhante ao Clang-Tidy. É um linhador de código e formatador de código, que pode ser usado para aplicar os guias de estilo.
Dois alvos são disponibilizados para verificar e corrigir o código no modo de desenvolvedor usando os alvos de format-check e format-fix respectivamente.
NOTA : O projeto gera arquivos formatados de acordo com o formato de Clang 14. As versões mais novas ou mais antigas podem formatar o projeto de maneira diferente.
O CodeSpell é uma ferramenta para encontrar e corrigir erros de ortografia principalmente no código -fonte.
Dois alvos são disponibilizados para verificar e corrigir erros de ortografia no modo de desenvolvedor usando os alvos spell-check e spell-fix respectivamente.
O sinalizador -p pode ser usado para selecionar um gerenciador de pacotes para o projeto. Os argumentos para a bandeira podem ser:
none : Nenhuma integração do gerenciador de pacotes (padrão)conan : Integração Conanvcpkg : integração vcpkgAo usar um gerenciador de pacotes, os pacotes a seguir são usados no projeto gerado:
Leia o documento de hackers gerado para ver o que precisa ser feito para buscar dependências.
cmake-init [--c] <path>-s , -e ou -h depois para criar rapidamente uma biblioteca compartilhada, executável ou apenas uma biblioteca de cabeçalho, respectivamente. O switch --c definirá o tipo do projeto gerado como C em vez de C ++.cmake-init --help cmake-init é o software livre: você pode usar, estudar, compartilhar e melhorá-lo à sua vontade. Especificamente, você pode redistribuir e/ou modificá -lo nos termos da licença pública geral da GNU, conforme publicado pela Free Software Foundation, versão 3 da licença ou (por sua opção) qualquer versão posterior.
O conteúdo do diretório cmake-init/templates são licenciados usando a licença Unlicense. Veja a licença nesse diretório para obter mais detalhes.