3 Utilisation de base

Déjà, pour pouvoir utiliser un programme il faut l'installer. Pour installer CMake on peut faire :

sudo apt-get install cmake

Et voilà, maintenant on commence.

Comme je vous l'ai dit, nous allons commencer à écrire un fichier CMakeLists.txt (dans de même dossier que main.cpp), et faites bien attention aux majuscules et aux minuscules dans le nom du fichier :

1
2
3
4
5
6
7
8
#nom du projet
project(exemple)
#CMake est un maniaque il faut lui mettre toujours la version la plus ancienne
#que l'on peut utilisé
cmake_minimum_required(VERSION 2.6)
#on ajoute un exécutable autrement dit un programme qui a pour nom
#exemple et qui a comme source main.cpp
add_executable(exemple main.cpp)

Et voilà. En trois lignes (les autres étant des commentaire). Ça a quand même une meilleur tête qu'un makefile non ?

Et comment on s'en sert ?

Allez dans le dossier où se trouve main.cpp.

Rajoutons un dossier build pour construire notre projet :

mkdir build

Allons dans ce dossier :

cd build

Exécutons CMake :

cmake ..

On met .. pour dire à CMake de chercher un fichier CMakeLists.txt dans le dossier parent de l'endroit où on l'exécute (ça permet de ranger les fichiers binaires à côté des sources sans les mélanger).

Regardons ce que nous dit CMake quand on l'appel :

cmake ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pierre/Documents/COURS_DE_MOI/TUTO_DE_C++/Cours_C++_3.0/TESTS_ET_EXEMPLES/CONSOLE/build

Là il vous dit qu'il à trouvé le compilateur C, le compilateur C++ (CXX), après il regarde leurs configurations respective, il se configure, et il génère des makefiles (mais je ne vous conseil pas d'aller regarder dedans). Et à la dernière ligne il vous dit où il a écrit tout ce qu'il à généré. (Et oui, il faut bien que je teste mes exemples).

Lançons make :

make
Scanning dependencies of target exemple
[100%] Building CXX object CMakeFiles/exemple.dir/main.cpp.o
Linking CXX executable exemple
[100%] Built target exemple

Le programme est compilé.

Pour l'exécuter, faîtes :

./exemple

Et comme tout à l'heure ça marche (ça fait toujours plaisir quand ça marche) et c'est classe il y a de la couleur. Mais comme vous savez comment on fait, ça ne vous impressionne pas.

On verra les dépendances quand on en aura besoin.