? Versão em inglês
Soprar e mudar "mylib" para o seu nome.
Ou gerar seu projeto usando o script: https://github.com/izvolv/mylib-gen
A montagem deste projeto, como qualquer outro projeto no sistema de montagem CMake, consiste em duas etapas:
cmake -S путь/к/исходникам -B путь/к/сборочной/директории [опции ...]Leia mais sobre as opções.
cmake --build путь/к/сборочной/директории [--target target]Leia mais sobre os objetivos da montagem.
cmake -S ... -B ... -DMYLIB_COVERAGE=ON [прочие опции ...] Inclui o objetivo da coverage , com a qual você pode começar a medir o código que cobre com testes.
cmake -S ... -B ... -DMYLIB_TESTING=OFF [прочие опции ...] Fornece a oportunidade de desligar a montagem de testes modulares e o objetivo de check . Como resultado, o código é desligado pelo revestimento principal com testes (consulte o revestimento).
O teste também é desconectado automaticamente se o projeto estiver conectado a outro projeto como um sub -projeto usando o comando add_subdirectory .
cmake -S ... -B ... -DDOXYGEN_OUTPUT_LANGUAGE=English [прочие опции ...] Ele muda a linguagem da documentação, que é gerada pela meta doc para um determinado. Para uma lista de idiomas acessíveis, consulte o site do Sistema Doxygen.
Por padrão, o russo está incluído.
cmake --build путь/к/сборочной/директории
cmake --build путь/к/сборочной/директории --target all Se o objetivo não for indicado (o que é equivalente ao objetivo all ), coleta tudo o que é possível e também causa o objetivo check .
cmake --build путь/к/сборочной/директории --target mylib_library Compilado pela biblioteca mylib_library . Incluído por padrão.
cmake --build путь/к/сборочной/директории --target mylib-unit-testsCompila testes modulares. Incluído por padrão.
cmake --build путь/к/сборочной/директории --target checkRunes os testes modulares coletados (se não ainda não). Incluído por padrão.
Veja também mylib-unit-tests .
cmake --build путь/к/сборочной/директории --target coverageAnalisa os testes modulares avançados (se não ainda não) para cobrir o código com testes usando o programa GCOVR.
O objetivo está disponível apenas com a opção incluída MYLIB_COVERAGE .
Veja também check .
cmake --build путь/к/сборочной/директории --target docRunes a geração de documentação para o código usando o sistema Doxygen.
cmake --build путь/к/сборочной/директории --target wandboxPara isso, o serviço Wandbox é usado. Não abuse disso, o servidor não é de borracha.
cmake -S путь/к/исходникам -B путь/к/сборочной/директории -DCMAKE_BUILD_TYPE=Debug -DMYLIB_COVERAGE=ON
cmake --build путь/к/сборочной/директории --target coverage --parallel 16cmake -S путь/к/исходникам -B путь/к/сборочной/директории -DMYLIB_TESTING=OFF -DCMAKE_INSTALL_PREFIX=путь/к/установойной/директории
cmake --build путь/к/сборочной/директории --target installcmake -S путь/к/исходникам -B путь/к/сборочной/директории -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++-8 -DCMAKE_PREFIX_PATH=путь/к/директории/куда/установлены/зависимости
cmake --build путь/к/сборочной/директории --parallel 4cmake -S путь/к/исходникам -B путь/к/сборочной/директории -DCMAKE_BUILD_TYPE=Release -DDOXYGEN_OUTPUT_LANGUAGE=English
cmake --build путь/к/сборочной/директории --target docUma das opções para usar o módulo é instalá -lo no sistema.
cmake --build путь/к/сборочной/директории --target install Depois disso, qualquer outro projeto, chamando find_package , tem a oportunidade de usar todas as bibliotecas do Mylib::
find_package (Mylib 1.0 REQUIRED)
add_executable (some_executable some.cpp sources .cpp)
target_link_libraries (some_executable PRIVATE Mylib::library) A Mylib::library precisa estar conectada quando você precisa seguir a biblioteca libmylib_library . Se houver manchetes suficientes, vale a pena usar a Mylib::headers .
O projeto também pode ser conectado a outro projeto como um submódulo usando o comando add_subdirectory .
Nesse caso, Mylib::library e Mylib::headers estarão disponíveis de maneira semelhante.
Cmake 3.14
O CMake 3.14 é necessário porque, nas versões anteriores, a install(TARGETS ... EXPORT ...) funciona incorretamente em versões anteriores, a saber, os caminhos padrão não são prescritos.
Biblioteca de Testes do Doctest
Os testes podem ser desligados (consulte o teste).
Doxygen
Para alternar o idioma em que a documentação será gerada, a opção DOXYGEN_OUTPUT_LANGUAGE é fornecida.
Intérprete Jap Python 3
Para a geração automática de um sanduíche online.
Com a ajuda do CMake e um par de boas ferramentas, você pode fornecer análises estáticas com movimentos mínimos do corpo.
O CMake construiu o suporte para uma análise estática do CPPCHECK.
Para fazer isso, use a opção CMAKE_CXX_CPPCHECK :
cmake -S путь/к/исходникам -B путь/к/сборочной/директории -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_CPPCHECK= " cppcheck;--enable=all;-Iпуть/к/исходникам/include "Depois disso, a análise estática será lançada automaticamente a cada vez durante a compilação e o composto cruzado da fonte. Você não precisa fazer nada adicional.
Com a ajuda de uma maravilhosa ferramenta scan-build , você também pode iniciar uma análise estática em duas pontuações:
scan-build cmake -S путь/к/исходникам -B путь/к/сборочной/директории -DCMAKE_BUILD_TYPE=Debug
scan-build cmake --build путь/к/сборочной/директории Aqui, diferentemente do caso do CPPCHECK, é necessário executar a montagem através scan-build a cada vez.