cmake-init - El inicializador de proyecto Cmake faltante cmake-init es un inicializador de proyectos CMAKE obstinado que genera proyectos CMake que están listos para FetchContent, se separan objetivos de consumidores y desarrolladores, proporcionan reglas de instalación con paquetes de CMake reubicables adecuados y usan CMake moderno (3.14+).
Consulte el wiki, por ejemplo, salidas de cmake-init y otros ejemplos pragmáticos de funcionalidad implementados para cmake, como gestores de paquetes, pruebas de fuzz, supercendimientos, etc.






Si desea contactarme para obtener algo relacionado con CMake, puede encontrarme en el canal #cmake de la holgura C ++. Si lo que desea saber es específica de CMake-Init, también puede hacer preguntas en las discusiones de este repositorio.
h cuando se le solicite. Biblioteca estática/compartida? Simplemente elija s cuando se le solicite. ¡Simple y correcto!FetchContentAsegúrese de tener estos programas instalados:
NOTA
Algunas de estas herramientas también se pueden usar en Windows si desea usar Visual Studio, pero debe instalar estos sujetos:
Este paquete está disponible para descargar desde Pypi. Puede instalar este paquete con pip :
pip install cmake-init Clang-Tidy es una herramienta de análisis estático que le ayuda a detectar errores lógicos en su código antes de compilarse. Este script le brinda la opción de heredar el preajuste clang-tidy en su preajuste dev , habilitando la integración de CMake para esta herramienta.
CI siempre ejecutará Clang-Tidy para usted, por lo que es completamente opcional instalarlo y usarlo localmente, pero se recomienda.
Para los usuarios de Windows , si desea usar Clang-Tidy, entonces debe instalar Ninja y establecer el campo generator en su preajuste de dev en Ninja . La razón de esto es que solo MakeFiles y Ninja son compatibles con Cmake para su uso con Clang-Tidy. Para otros generadores, esta característica es una no-op.
CPPCheck es una herramienta de análisis estático similar a Clang-Tidy, sin embargo, la superposición en lo que detectan es mínima, por lo que es beneficioso usarlos. Este script le brinda la opción de heredar el preajuste cppcheck en su preajuste dev , habilitando la integración de CMake para esta herramienta.
CI siempre ejecutará cppcheck para usted, por lo que es completamente opcional instalarlo y usarlo localmente, pero se recomienda.
Para los usuarios de Windows , si desea usar CPPCheck, debe instalar Ninja y establecer el campo generator en su preajuste de dev en Ninja . La razón de esto es que solo MakeFiles y Ninja son compatibles con CMake para su uso con CPPCheck. Para otros generadores, esta característica es una no-op.
Doxygen es una herramienta para generar documentación a partir del código fuente anotado. Junto con él, M.CSS se utiliza para presentar la documentación generada.
Los proyectos generados tendrán un objetivo docs en modo desarrollador, que puede usarse para construir la documentación en el directorio <binary-dir>/docs/html .
Después de instalar Doxygen, asegúrese de que el ejecutable doxygen exista en la PATH , de lo contrario, puede recibir mensajes de error confusos.
Esta documentación se puede implementar en páginas GitHub utilizando el trabajo docs en el flujo de trabajo de CI generado. Siga los comentarios que quedan en el trabajo para habilitar esto.
Nota : M.CSS no funciona con Doxygen> = 1.9. Puede instalar 1.8.20 para usar el objetivo docs . Ver los problemas #41 y #48.
LCOV es una herramienta para procesar la información de cobertura generada por ejecutables que fueron instrumentados con gcov de GCC. Esta información de cobertura se puede usar para ver qué partes del programa se ejecutaron.
Los proyectos generados tendrán un objetivo coverage en modo desarrollador si la variable ENABLE_COVERAGE está habilitado. La razón por la cual se usa un objetivo separado en lugar del paso coverage incorporado de CTEST es porque carece de la personalización necesaria. Este objetivo debe ejecutarse después de las pruebas y, de manera predeterminada, generará un informe en <binary-dir>/coverage.info y un informe HTML en el directorio <binary-dir>/coverage_html .
Para los usuarios de Windows , puede usar una herramienta similar llamada OpenCpPcoverage, para la cual hay un script de ejemplo en el directorio cmake generado. Este script se deja como un ejemplo, porque el Linux VM se inicia y se ejecuta más rápido en acciones de GitHub, por lo que se utiliza para la presentación de cobertura.
Clang-Format es parte de la suite de herramientas LLVM similar a Clang-Tidy. Es un enlace de código y un formateador de código, que se puede usar para hacer cumplir las guías de estilo.
Se ponen a disposición dos objetivos para verificar y corregir el código en modo desarrollador utilizando los objetivos format-check y format-fix respectivamente.
Nota : El proyecto genera archivos que están formateados según Clang-Format 14. Las versiones más nuevas o anteriores pueden formatear el proyecto de manera diferente.
Codespell es una herramienta para encontrar y corregir errores de ortografía principalmente en el código fuente.
Se ponen a disposición dos objetivos para verificar y corregir errores de ortografía en modo desarrollador utilizando los objetivos spell-check y spell-fix , respectivamente.
El indicador -p se puede usar para seleccionar un administrador de paquetes para el proyecto. Los argumentos para la bandera pueden ser:
none : Sin integración de Administrador de paquetes (predeterminado)conan : Integración de Conanvcpkg : integración de VCPKGAl usar un Administrador de paquetes, los siguientes paquetes se utilizan en el proyecto generado:
Asegúrese de leer el documento de piratería generado para ver qué debe hacerse para obtener dependencias.
cmake-init [--c] <path>-s , -e o -h después para crear rápidamente una biblioteca compartida, ejecutable o una biblioteca de solo encabezado respectivamente. El interruptor --c establecerá el tipo de proyecto generado en C en lugar de C ++.cmake-init --help cmake-init es un software gratuito: puede usarlo, estudiar, compartirlo y mejorarlo a su voluntad. Específicamente, puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General de GNU publicada por Free Software Foundation, ya sea la versión 3 de la licencia o (a su opción) cualquier versión posterior.
El contenido del directorio cmake-init/templates tiene licencia utilizando la licencia sin licencia. Vea la licencia en ese directorio para obtener más detalles.