Si vous avez écrit en C++, vous avez probablement rencontré CMake. Et peut-être que tu as eu un moment de désespoir quand tout ne va pas. CMake est un outil puissant, mais sa syntaxe et sa structure sont souvent douloureuses. Voyons comment configurer CMake une fois et correctementpour ne plus revenir au chaos 💡

🔰 Qu'est-ce que CMake ?
CMake est un système de génération de compilation. Il ne compile pas le code directement, mais crée des fichiers pour l'assemblage sous votre système : Makefile, Ninja, Xcode ou Visual Studio.
✅ Fonctionne sur toutes les plateformes
✅ Permet de configurer les dépendances
✅ Simplifie l'assemblage de grands projets
✅ Compatible avec IDE et CI/CD
🧱 Structure de base du projet avec CMake
project-root/
├── CMakeLists.txt
├── src/
│ └── main.cpp
├── include/
│ └── mylib.hpp
├── CMakeLists.txt (внутри src/)📌 Racine 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)⚙️ Conseils pour configurer CMake sans douleur
1. Utilisez target_* au lieu de variables globales
❌ Mauvais :
include_directories(./include)✅ Correct :
target_include_directories(my_app PRIVATE ./include)2. Ajoutez compile_commands.json
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)Aide à l'autocomplétion et à la mise en évidence des erreurs dans VS Code et clangd.
3. Toujours utiliser out-of-source build
mkdir build && cd build
cmake ..
cmake --build .4. Connectez correctement les bibliothèques tierces
Exemple avec 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)🧪 Liste de contrôle d'un bon projet CMake
✅ CMakeLists.txt ne dépasse pas 30 lignes
✅ Toutes les dépendances via
target_*✅ Prise en charge Debug/Release
✅ Assemblage hors source
✅ Fonctionne dans le terminal et l'IDE
📚 Vous voulez approfondir le sujet ?
Dans l'application Code vous trouverez des leçons détaillées sur CMake et C++, des exercices étape par étape, des analyses d'erreurs et des exercices pratiques directement sur votre téléphone ou votre navigateur.
Et si vous voulez être au courant des nouveautés, des nouvelles fonctionnalités et des contenus utiles, abonnez-vous à notre Chaîne Telegram. C'est confortable, professionnel et avec amour pour le code ❤️
