13.5 Utilisation de CMake

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 -- RELEASE_MODE : no -- ExempleGenerationDoc Debug mode -- ExempleGenerationDoc_VERSION : 0.9.10 -- No documentation -- Configuring done -- Generating done -- Build files have been written to: /home/pierre/Documents/cours/Programmation_C++/COURS_PROGRAMMATION_C_CPP_4/ressources/sources/Console/CMake/GenerationDocumentation/build

Si on lance CMake dans définir de variable :

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
-- RELEASE_MODE : no
-- ExempleGenerationDoc Debug mode
-- ExempleGenerationDoc_VERSION : 0.9.10
-- No documentation
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pierre/Documents/cours/Programmation_C++/COURS_PROGRAMMATION_C_CPP_4/ressources/sources/Console/CMake/GenerationDocumentation/build

Il nous dit bien qu'il va compiler le programme en mode debug, et ne va pas générer de documentation.

Si on lance CMake avec toutes les options on obtient :

cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/usr -DRELEASE_MODE=yes -DDOC_MODE=yes
-- 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
-- RELEASE_MODE : yes
-- CMAKE_INSTALL_PREFIX : /home/pierre/usr
-- PROGRAM_VERSION : 0.9.10
-- Find Doxygen at /usr/bin
-- -- Doxygen generation of the documentation
-- Doxyfile in /home/pierre/Documents/cours/Programmation_C++/COURS_PROGRAMMATION_C_CPP_4/ressources/sources/Console/CMake/GenerationDocumentation/build
running cd "/home/pierre/Documents/cours/Programmation_C++/COURS_PROGRAMMATION_C_CPP_4/ressources/sources/Console/CMake/GenerationDocumentation" && doxygen /home/pierre/Documents/cours/Programmation_C++/COURS_PROGRAMMATION_C_CPP_4/ressources/sources/Console/CMake/GenerationDocumentation/build/Doxyfile  2>&1
Warning: The selected output language "french" has not been updated
since release 1.6.3.  As a result some sentences may appear in English.

-- Configuring done
-- Generating done
-- Build files have been written to: /home/pierre/Documents/cours/Programmation_C++/COURS_PROGRAMMATION_C_CPP_4/ressources/sources/Console/CMake/GenerationDocumentation/build

C'est quoi $HOME ?

C'est une variable globale de Linux qui dit où est votre home (le dossier /home/votre_nom)

Et du coup, pourquoi on veut installer le programme à cet endroit là ?

Généralement (mais c'est toujours pareil, vous pouvez faire comme vous voulez), on installe les programmes que l'on va tester dans un dossier /home/votre_nom/usr pour tester s'ils s'installent correctement. Ça évite de passer en super utilisateur dès que l'on veut changer quelque chose (nous verrons cela plus tard).