Comenzando con Cmake y Cpack en Linux

Comenzando con Cmake y Cpack en Linux
"Cmake es un conjunto de herramientas de código abierto, popular y útil, de código abierto que utilizan archivos de configuración independientes de compiladores e independientes de la plataforma para construir, probar y empaquetar proyectos. CMake se desarrolló como la solución para un espacio de compilación multiplataforma para proyectos de código abierto.

CPACK es una herramienta de embalaje que es multiplataforma y distribuida por CMake. Sin embargo, se puede usar independientemente de Cmake, pero utiliza conceptos de generador de la herramienta CMake Suite.

Esta guía cubre la instalación y el uso de CMake y Cpack."

Cómo instalar CMake

Puede instalar CMake a través de la línea de comando o el centro de software de Ubuntu. En este caso, lo instalaremos a través de la línea de comando, pero puede verificar los métodos completos de instalación de CMake para obtener más detalles.

Primero, actualice su repositorio.

$ sudo apt-get actualización

A continuación, ingrese el comando a continuación para instalar Cmake.

$ sudo snap instalación cmake --Classic

Puede confirmar la instalación revisando su versión.

$ cmake --versión

Uso de CMake para configurar, construir y depurar un proyecto C ++ en Linux

CMake es popular para administrar compilaciones de código para proyectos C ++, y lo hace con la ayuda de la Cmakelists.TXT Archivos para cada directorio. Definen las tareas que debe realizar el sistema de compilación.

En nuestro caso, escribiremos un programa C ++ simple usando el código Visual Studio y lo construiremos usando CMake.

Asegúrese de tener la extensión C ++ Visual Studio instalada, un depurador, preferiblemente GCC y CMake.

Puede instalar GCC usando el comando:

$ sudo apt-get install build-issential gdb

Para comenzar, cree una carpeta de trabajo y ábrala en el código de Visual Studio.

$ mkdir cMakedemo
$ CD cMakedemo

Abra el código de Visual Studio

$ Código

Una vez que se abra el código de Visual Studio, abra la paleta escribiendo Ctrl + Shift + P

Para crear rápidamente los archivos Cmake necesarios, escriba Cmake: comienzo rápido y elija la opción como en la imagen a continuación.

Si se le solicita que elija entre Biblioteca y Ejecutable, Elija ejecutable. Notará dos archivos, la función principal y las CMAKELists.se creará txt.

También debe seleccionar un kit para informar a Cmake qué compilador usar.

Primero, consulte su versión GCC en la terminal. En la paleta, busque el kit y elija el que coincida con su versión.

En la parte inferior de la ventana, verá el kit seleccionado. En nuestro caso, es GCC 9.4.0 x86_64-linux-gnu.

CMake también utiliza una variante que contiene instrucciones sobre la construcción del proyecto. Todavía en la paleta, escriba CMake: Seleccionar variante. Hay cuatro variantes para elegir.

  • Depurar: Incluye los detalles de la depuración, pero deshabilita las optimizaciones.
  • Liberar: Sin detalles de depuración, pero se incluye la optimización.
  • RelwithDebinfo: Incluye información de depuración y optimiza para el tamaño.
  • Minsizerel: No incluye los detalles de depuración, pero optimiza para el tamaño.

En nuestro caso, necesitamos información de optimización y depuración. Entonces, elegiremos Depurar.

Configuración

Todo está listo. Abra la paleta y escriba CMake: Configurar, Haga clic en el botón Enter, y Cmake generará los archivos de compilación y configurará el proyecto.

El paso final es construir el proyecto. Puede hacerlo haciendo clic en el Construir en la parte inferior de la pantalla o en ejecución Cmake: construir.

Eso es todo! Ha utilizado con éxito la herramienta Cmake para configurar y construir el proyecto.

En caso de cualquier error con el proyecto, simplemente ejecute el CMake: Depuración, y mostrará dónde está el error en el código.

Cmake con cpack

Una vez que tenga un proyecto configurado y creado como lo hicimos con CMake, necesita una forma de construir el software para hacerlo instalable. Lo que necesita es una forma o herramienta que le permite construir el proyecto en su máquina de desarrollo y crear un formulario que se pueda transferir e instalar en otro dispositivo. Eso es lo que hace Cpack.

CPACK creará un instalador y un paquete para el proyecto. Puede crear paquetes binarios y de origen. Lo bueno es que CPACK admite la creación de instaladores para OS X, RPMS, archivos zip, .alquitrán.Gz, paquetes de Debian, Windows y .mierda.

CPACK funciona para crear un duplicado del árbol de origen para el proyecto y el archivo de alquitrán o zip, y puede transferir el archivo a otra máquina y almacenarlos en el directorio correcto y hacer que su proyecto esté en funcionamiento. CPACK realiza la mayor parte del trabajo, incluida la creación de un directorio temporal para el proyecto y copiar el árbol de instalación en un formato adecuado para la herramienta de embalaje.

Usar cpack con cmake

Dado que cpack es parte de Cmake, combinar los dos es bastante fácil. En nuestro proyecto C ++ usando cmake, teníamos una cmakelists.archivo txt creado. Dentro del archivo, hay soporte para CPACK que viene generado automáticamente, como se muestra.

Por lo tanto, la parte restante es generar los instaladores y paquetes.

Para hacerlo, primero, navegue al construir directorio dentro del directorio del proyecto. En nuestro ejemplo, será:

$ CD CMakedemo/Build

Puede enumerar los diferentes archivos en el directorio.

Para generar los instaladores, ejecute el comando:

$ CPACK -C CPACKCONFIG.CMake

Puede notar los diferentes generadores de la salida a continuación, incluida .alquitrán.GZ, .sh, y .alquitrán.z.

Alternativamente, puede ejecutar el comando:

$ CPACK -C CPACKSOURCECONFIG.CMake

Ahora tiene los paquetes necesarios para su proyecto.

Conclusión

CMake y CPACK son herramientas útiles para generar archivos de configuración, construcción, pruebas y proyectos de embalaje. Hay toneladas de opciones que puede usar con los comandos para lograr diferentes cosas. Esta guía cubrió lo que son Cpack y CMake, luego siguió adelante para mostrar un uso de ejemplo que configura y crea un proyecto C ++ con CMake y lo empaqueta con CPACK.