? Versión en inglés
Sopla y cambia "mylib" a tu nombre.
O genere su proyecto usando el script: https://github.com/izvolov/mylib-gen
El ensamblaje de este proyecto, como cualquier otro proyecto en el sistema de ensamblaje CMake, consta de dos etapas:
cmake -S путь/к/исходникам -B путь/к/сборочной/директории [опции ...]Lea más sobre opciones.
cmake --build путь/к/сборочной/директории [--target target]Lea más sobre los objetivos de la asamblea.
cmake -S ... -B ... -DMYLIB_COVERAGE=ON [прочие опции ...] Incluye el propósito de coverage , con el que puede comenzar a medir el código que cubre las pruebas.
cmake -S ... -B ... -DMYLIB_TESTING=OFF [прочие опции ...] Brinda la oportunidad de apagar el ensamblaje de pruebas modulares y el objetivo de check . Como resultado, el código está apagado por el recubrimiento central con pruebas (ver recubrimiento).
Las pruebas también se desconectan automáticamente si el proyecto está conectado a otro proyecto como un subyector utilizando el comando add_subdirectory .
cmake -S ... -B ... -DDOXYGEN_OUTPUT_LANGUAGE=English [прочие опции ...] Cambia el lenguaje de la documentación, que es generado por el objetivo doc a uno determinado. Para obtener una lista de idiomas accesibles, consulte el sitio web del sistema Doxygen.
Por defecto, el ruso está incluido.
cmake --build путь/к/сборочной/директории
cmake --build путь/к/сборочной/директории --target all Si no se indica el objetivo (que es equivalente a la meta all ), recolecta todo lo posible y también causa el objetivo check .
cmake --build путь/к/сборочной/директории --target mylib_library Compilado por la biblioteca mylib_library . Incluido por defecto.
cmake --build путь/к/сборочной/директории --target mylib-unit-testsCompila pruebas modulares. Incluido por defecto.
cmake --build путь/к/сборочной/директории --target checkRunas las pruebas modulares recolectadas (si aún no han). Incluido por defecto.
Ver también mylib-unit-tests .
cmake --build путь/к/сборочной/директории --target coverageAnaliza las pruebas modulares avanzadas (lanza, si aún no todavía) para cubrir el código con pruebas utilizando el programa GCOVR.
El objetivo solo está disponible con la opción MYLIB_COVERAGE incluida.
Ver también check .
cmake --build путь/к/сборочной/директории --target docEjecuta la generación de documentación para el código utilizando el sistema Doxygen.
cmake --build путь/к/сборочной/директории --target wandboxPara esto, se utiliza el servicio Wandbox. No abuse de esto, el servidor no es de goma.
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 docUna de las opciones para usar el módulo es instalarlo en el sistema.
cmake --build путь/к/сборочной/директории --target install Después de eso, cualquier otro proyecto, llamando find_package , tiene la oportunidad de usar todas las bibliotecas del Mylib::
find_package (Mylib 1.0 REQUIRED)
add_executable (some_executable some.cpp sources .cpp)
target_link_libraries (some_executable PRIVATE Mylib::library) La Mylib::library debe conectarse cuando necesite quedarse con la biblioteca libmylib_library . Si hay suficientes titulares, entonces vale la pena usar la Mylib::headers .
El proyecto también se puede conectar a otro proyecto como un submódulo utilizando el comando add_subdirectory .
En este caso, Mylib::library y Mylib::headers estarán disponibles de manera similar.
Cmake 3.14
Se requiere CMake 3.14 porque en las versiones anteriores el install(TARGETS ... EXPORT ...) funciona incorrectamente en versiones anteriores, a saber, las rutas predeterminadas no se prescriben.
Biblioteca de pruebas de Doctest
Las pruebas se pueden apagar (ver prueba).
Doxígeno
Para cambiar el idioma en el que se generará la documentación, se proporciona la opción DOXYGEN_OUTPUT_LANGUAGE .
Intérprete jap python 3
Para la generación automática de un sándwich en línea.
Con la ayuda de CMake y un par de buenas herramientas, puede proporcionar un análisis estático con movimientos mínimos del cuerpo.
CMake ha construido en soporte para un análisis estático de CPPCheck.
Para hacer esto, use la opción CMAKE_CXX_CPPCHECK :
cmake -S путь/к/исходникам -B путь/к/сборочной/директории -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_CPPCHECK= " cppcheck;--enable=all;-Iпуть/к/исходникам/include "Después de eso, el análisis estático se lanzará automáticamente cada vez durante la compilación y el compuesto cruzado de la fuente. No necesitas hacer nada adicional.
Con la ayuda de una maravillosa herramienta scan-build , también puede iniciar un análisis estático en dos puntajes:
scan-build cmake -S путь/к/исходникам -B путь/к/сборочной/директории -DCMAKE_BUILD_TYPE=Debug
scan-build cmake --build путь/к/сборочной/директории Aquí, a diferencia del caso con CPPCheck, es necesario ejecutar el ensamblaje a través de scan-build cada vez.