Introduction à CMake : qu'est-ce que c'est et pourquoi l'utiliser
\n\nCMake (Cross-Platform Make) est un puissant système d'automatisation de construction de logiciels open source et multiplateforme. Contrairement aux Makefile traditionnels, CMake ne construit pas le projet directement, mais génère des fichiers de construction pour les outils natifs (Make, Ninja, Visual Studio, Xcode) à partir de fichiers de configuration simples CMakeLists.txt.
Pourquoi utiliser CMake ?
\n- \n
- Multiplateforme : Un même code peut être compilé sur Windows, Linux et macOS sans modification de la configuration. \n
- Gestion des dépendances : Prise en charge intégrée de la recherche et de la connexion de bibliothèques externes (Boost, OpenCV, Qt, etc.). \n
- Flexibilité : Prise en charge de différents générateurs de projets (Visual Studio, Xcode, Ninja, Unix Makefiles). \n
- Modularité : Possibilité de créer des bibliothèques (statiques et dynamiques), des exécutables et des tests. \n
- Intégration avec les IDE : Les IDE modernes (CLion, VS Code, Qt Creator) ont une prise en charge intégrée de CMake. \n
CMake est devenu le standard de facto pour les projets C++. Il est utilisé par des géants comme Google (TensorFlow, Chrome), Microsoft (VS Code), KDE, LLVM/Clang et bien d'autres.
\n\nInstallation de CMake
\n\nContrairement aux bibliothèques Python, CMake ne s'installe pas via pip. C'est une application autonome. Voyons l'installation pour les principaux systèmes d'exploitation :
\n\nWindows
\n- \n
- Téléchargez l'installateur depuis le site officiel (choisissez la version pour Windows — .msi ou .zip). \n
- Lancez l'installation. Cochez impérativement l'option "Add CMake to the system PATH for all users". \n
- Après l'installation, vérifiez :
cmake --versiondans l'invite de commande. \n
Linux (Ubuntu/Debian)
\nsudo apt update\nsudo apt install cmake\ncmake --version\n\nmacOS (Homebrew)
\nbrew install cmake\ncmake --version\n\nVérification de l'installation
\nAprès l'installation, exécutez dans le terminal :
\ncmake --version\n# La sortie doit ressembler à :\n# cmake version 3.27.0\n\nDémarrage rapide : premier projet avec CMake
\n\nCréons un projet simple "Hello World" en utilisant CMake.
\n\nStructure du projet
\nmy_project/\n├── CMakeLists.txt\n└── main.cpp\n\nFichier main.cpp
\n#include <iostream>\n\nint main() {\n std::cout << "Hello, CMake!" << std::endl;\n return 0;\n}\n\nFichier CMakeLists.txt
\ncmake_minimum_required(VERSION 3.10)\nproject(HelloWorld VERSION 1.0 LANGUAGES CXX)\n\nadd_executable(hello main.cpp)\n\nConstruction du projet
\nmkdir build\ncd build\ncmake ..\ncmake --build .\n./hello\n\nExplication :
\n- \n
cmake_minimum_required— définit la version minimale de CMake. \n project— définit le nom du projet et le langage (CXX pour C++). \n add_executable— crée un fichier exécutable à partir des sources. \n
Méthodes et fonctions principales de CMake
\n\n1. cmake_minimum_required()
\nDescription : Définit la version minimale de CMake nécessaire pour construire le projet. Si la version de CMake est inférieure à celle spécifiée, une erreur sera générée.
\nParamètres :
\n- \n
VERSION— version au format major.minor[.patch[.tweak]] \n FATAL_ERROR— optionnel, provoque une erreur fatale en cas de non-conformité de version \n
Exemple :
\ncmake_minimum_required(VERSION 3.16 FATAL_ERROR)\n\n2. project()
\nDescription : Définit le nom du projet et ses paramètres. Doit
Aussi dans la bibliothèque
OpenCV C++ : guide complet avec exemples et tutoriel
Configuration des applications Kotlin : Bibliothèque Hoplite