Introducción a CMake: qué es y para qué sirve
\n\nCMake (Cross-Platform Make) es un potente sistema de automatización de compilación de software multiplataforma y de código abierto. A diferencia de los Makefile tradicionales, CMake no compila el proyecto directamente, sino que genera archivos de compilación para herramientas nativas (Make, Ninja, Visual Studio, Xcode) basándose en archivos de configuración simples CMakeLists.txt.
¿Para qué sirve CMake?
\n- \n
- Multiplataforma: El mismo código se puede compilar en Windows, Linux y macOS sin modificar la configuración. \n
- Gestión de dependencias: Soporte integrado para buscar y conectar bibliotecas externas (Boost, OpenCV, Qt, etc.). \n
- Flexibilidad: Soporte para varios generadores de proyectos (Visual Studio, Xcode, Ninja, Unix Makefiles). \n
- Modularidad: Posibilidad de crear bibliotecas (estáticas y dinámicas), archivos ejecutables y pruebas. \n
- Integración con IDE: Los IDE modernos (CLion, VS Code, Qt Creator) tienen soporte integrado para CMake. \n
CMake se ha convertido en el estándar de facto para proyectos C++. Lo utilizan gigantes como Google (TensorFlow, Chrome), Microsoft (VS Code), KDE, LLVM/Clang y muchos otros.
\n\nInstalación de CMake
\n\nA diferencia de las bibliotecas de Python, CMake no se instala a través de pip. Es una aplicación independiente. Veamos la instalación para los principales sistemas operativos:
\n\nWindows
\n- \n
- Descargue el instalador desde el sitio web oficial (elija la versión para Windows — .msi o .zip). \n
- Ejecute la instalación. Asegúrese de marcar la opción "Add CMake to the system PATH for all users". \n
- Después de la instalación, verifique:
cmake --versionen la línea de comandos. \n
Linux (Ubuntu/Debian)
\nsudo apt update\nsudo apt install cmake\ncmake --version\n\nmacOS (Homebrew)
\nbrew install cmake\ncmake --version\n\nVerificación de la instalación
\nDespués de la instalación, ejecute en la terminal:
\ncmake --version\n# La salida debería ser similar a:\n# cmake version 3.27.0\n\nInicio rápido: primer proyecto con CMake
\n\nCreemos un proyecto simple "Hello World" usando CMake.
\n\nEstructura del proyecto
\nmy_project/\n├── CMakeLists.txt\n└── main.cpp\n\nArchivo main.cpp
\n#include <iostream>\n\nint main() {\n std::cout << "Hello, CMake!" << std::endl;\n return 0;\n}\n\nArchivo CMakeLists.txt
\ncmake_minimum_required(VERSION 3.10)\nproject(HelloWorld VERSION 1.0 LANGUAGES CXX)\n\nadd_executable(hello main.cpp)\n\nCompilación del proyecto
\nmkdir build\ncd build\ncmake ..\ncmake --build .\n./hello\n\nExplicación:
\n- \n
cmake_minimum_required— establece la versión mínima de CMake. \n project— define el nombre del proyecto y el idioma (CXX para C++). \n add_executable— crea un archivo ejecutable a partir de los archivos fuente. \n
Métodos y funciones principales de CMake
\n\n1. cmake_minimum_required()
\nDescripción: Establece la versión mínima de CMake necesaria para compilar el proyecto. Si la versión de CMake es inferior a la especificada, se mostrará un error.
\nParámetros:
\n- \n
VERSION— versión en formato major.minor[.patch[.tweak]] \n FATAL_ERROR— opcional, provoca un error fatal si la versión no coincide \n
Ejemplo:
\ncmake_minimum_required(VERSION 3.16 FATAL_ERROR)\n\n2. project()
\nDescripción: Define el nombre del proyecto y sus parámetros. Debe
También en la biblioteca
Cliente Redis Swift: RediStack para iOS/macOS
Monitoreo de aplicaciones C++: biblioteca metrics para recopilación de métricas
ORM para Swift (iOS/macOS): comparación y ejemplos de uso