Inicio > Otros paquetes externos > cmake

cmake: Generador de sistemas de compilación multiplataforma

CMake es una herramienta para generar sistemas de compilación independientes del sistema operativo y del compilador. Se utiliza principalmente en proyectos C y C++, y puede generar varios archivos de compilación como Makefiles, proyectos de Visual Studio y proyectos de Xcode. Esto permite a los desarrolladores administrar y compilar proyectos sin depender de un IDE o herramienta de compilación específica.

Descripción general

CMake genera scripts de compilación compatibles con la herramienta de compilación seleccionada por el usuario (por ejemplo, Make, Ninja) basándose en el archivo CMakeLists.txt que define el proceso de compilación del código fuente. Esto es esencial para estandarizar y automatizar el proceso de compilación de proyectos complejos.

Características principales

  • Soporte multiplataforma (Linux, Windows, macOS, etc.)
  • Generación de varios sistemas de compilación (Makefiles, Visual Studio, Xcode, etc.)
  • Fácil gestión de proyectos modulares
  • Soporte para pruebas y empaquetado (CTest, CPack)

Opciones principales

Opciones comúnmente utilizadas al ejecutar el comando CMake.

Configuración básica

Generadores de sistemas de compilación

Compilación e instalación

Información

Comando generado:

Combina los comandos.

Descripción:

`cmake` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de uso

Varios escenarios para configurar y compilar proyectos usando CMake.

Configuración de compilación básica y generación de Makefile

mkdir build
cd build
cmake ..
make

Genera un Makefile en el subdirectorio 'build' basado en el origen del directorio actual.

Especificación explícita de directorios de origen y compilación

cmake -S /path/to/my_project_source -B /path/to/my_project_build

Genera archivos de compilación especificando claramente los directorios de origen y compilación.

Uso del generador Ninja y compilación de lanzamiento

cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release

Genera archivos de compilación utilizando el sistema de compilación Ninja y estableciendo el tipo de compilación en Release.

Ejecución de la compilación a través de CMake

cmake --build build

Ejecuta la compilación a través del comando CMake en lugar de llamar directamente al sistema de compilación generado (por ejemplo, Makefile).

Instalación del proyecto compilado

cmake --install build

Instala el proyecto compilado en la ruta predeterminada del sistema (por ejemplo, /usr/local).

Instalación

CMake no se proporciona por defecto en la mayoría de las distribuciones de Linux, por lo que debe instalarse a través del gestor de paquetes.

Debian/Ubuntu

sudo apt update
sudo apt install cmake

Instala CMake usando el gestor de paquetes APT.

Fedora/RHEL/CentOS

sudo dnf install cmake

Instala CMake usando el gestor de paquetes DNF o YUM.

Arch Linux

sudo pacman -S cmake

Instala CMake usando el gestor de paquetes Pacman.

Consejos y precauciones

Consejos y puntos a tener en cuenta para usar CMake de manera efectiva.

Compilación fuera de origen (Out-of-Source Build)

Se recomienda encarecidamente utilizar siempre la compilación fuera de origen, que separa los directorios de código fuente y de compilación. Esto mantiene limpio el directorio de origen y facilita el cambio entre diferentes configuraciones de compilación.

  • Evita la contaminación del directorio de origen
  • Facilita la gestión simultánea de varias configuraciones de compilación (Debug/Release)

Archivo CMakeLists.txt

El núcleo de CMake es el archivo CMakeLists.txt, que define las reglas de compilación del proyecto. Es importante comprender la sintaxis y la estructura de este archivo.

  • Ubicado en el directorio raíz del proyecto
  • Puede existir en subdirectorios (incluido con el comando add_subdirectory)

Uso de herramientas GUI

Para proyectos CMake complejos, puede utilizar herramientas como `ccmake` (basado en terminal) o `cmake-gui` (basado en gráficos) para configurar y administrar visualmente las variables de caché.

  • `ccmake`: Configuración interactiva de variables de caché en la terminal
  • `cmake-gui`: Configuración conveniente con una interfaz gráfica

Comandos de la misma categoría