Si has escrito en C++, probablemente te hayas encontrado con CMake. Y, tal vez, tuviste un momento de desesperación cuando todo simplemente no se va a. CMake es una herramienta poderosa, pero su sintaxis y estructura a menudo causan dolor. Veamos cómo configurar CMake una vez y correctamentepara no volver al caos 💡

🔰 ¿Qué es CMake?
CMake es un sistema de generación de compilación. No compila el código directamente, sino crea archivos para ensamblar para tu sistema: Makefile, Ninja, Xcode o Visual Studio.
✅ Funciona en múltiples plataformas
✅ Permite personalizar las dependencias
✅ Simplifica el montaje de grandes proyectos
✅ Compatible con IDE y CI/CD
🧱 Estructura básica del proyecto con CMake
project-root/
├── CMakeLists.txt
├── src/
│ └── main.cpp
├── include/
│ └── mylib.hpp
├── CMakeLists.txt (внутри src/)📌 Raíz CMakeLists.txt:
cmake_minimum_required(VERSION 3.15)
project(MyProject)
set(CMAKE_CXX_STANDARD 20)
add_subdirectory(src)📌 src/CMakeLists.txt:
add_executable(my_app main.cpp)
target_include_directories(my_app PRIVATE ../include)⚙️ Consejos para configurar CMake sin problemas
1. Usa target_* en lugar de variables globales
❌ Mal:
include_directories(./include)✅ Correcto:
target_include_directories(my_app PRIVATE ./include)2. Añade compile_commands.json
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)Ayuda a autocompletar y resaltar errores en VS Code y clangd.
3. Utiliza siempre la compilación fuera de la fuente
mkdir build && cd build
cmake ..
cmake --build .4. Conecta correctamente las bibliotecas de terceros
Ejemplo con FetchContent:
include(FetchContent)
FetchContent_Declare(
json
URL https://github.com/nlohmann/json/releases/latest/download/json.hpp
)
FetchContent_MakeAvailable(json)
target_link_libraries(my_app PRIVATE nlohmann_json::nlohmann_json)🧪 Lista de verificación de un buen proyecto CMake
✅ CMakeLists.txt no tiene más de 30 líneas
✅ Todas las dependencias a través de
target_*✅ Soporte de depuración/liberación
✅ Ensamblaje out-of-source
✅ Funciona en terminal e IDE
📚 ¿Quieres profundizar en el tema?
En el anexo Kodik encontrarás tutoriales detallados sobre CMake y C++, ejercicios paso a paso, análisis de errores y práctica cómoda directamente en tu teléfono o navegador.
Y si quieres estar al tanto de las noticias, nuevas características y materiales útiles, suscríbete a nuestro Canal de Telegram. Es acogedor, profesional y con amor por el código ❤️
