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