13.5 Compilation du projet

Nous allons compiler, comme vous vous y attendez, avec CMake.

Tout d'abord, allez dans le dossier build de votre projet :

cd chemin/vers/projet/build

Ensuite on va appeler CMake, mais il va aussi falloir lui préciser le chemin vers la lib SDL 1.3, pour cela on définit une variable, ce qui donne, en ce qui me concerne :

cmake .. -DOTHER_LIB_PREFIX=$HOME/usr_SDL_1.3

On a définit la variable OTHER_LIB_PREFIX que l'on utilise dans le fichier CMakeLists.txt du dossier src pour définir les variables OTHER_INSTALL_LIB et SDL_OTHER_INCLUDE_DIR :

1
2
3
4
5
6
7
8
#on affiche la variable ${OTHER_LIB_PREFIX}
message(STATUS "New prefix : ${OTHER_LIB_PREFIX}")

set(OTHER_INSTALL_LIB ${OTHER_LIB_PREFIX}/lib)
message(STATUS "New lib prefix : ${OTHER_INSTALL_LIB}")

set(SDL_OTHER_INCLUDE_DIR ${OTHER_LIB_PREFIX}/include)
message(STATUS "New include prefix : ${SDL_OTHER_INCLUDE_DIR}")

Ce qui me donne ceci :

cmake .. -DOTHER_LIB_PREFIX=$HOME/usr_SDL_1.3
-- 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
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so 
-- New prefix : /home/pierre/usr_SDL_1.3
-- New lib prefix : /home/pierre/usr_SDL_1.3/lib
-- New include prefix : /home/pierre/usr_SDL_1.3/include
-- Configuring done
-- Generating done

Vers la fin vous devriez voir les différents chemin que vous avez demandé à CMake d'afficher avec la fonction message.

Maintenant, on peut appeler make :

make
Scanning dependencies of target testcourssimpleopengl3
[  9%] Building C object src/CMakeFiles/testcourssimpleopengl3.dir/pointf.c.o
[ 18%] Building C object src/CMakeFiles/testcourssimpleopengl3.dir/load_shaders.c.o
[ 27%] Building CXX object src/CMakeFiles/testcourssimpleopengl3.dir/load_texture_Gl3.cpp.o
[ 36%] Building CXX object src/CMakeFiles/testcourssimpleopengl3.dir/vecteur3f.cpp.o
[ 45%] Building CXX object src/CMakeFiles/testcourssimpleopengl3.dir/matrice3f.cpp.o
[ 54%] Building CXX object src/CMakeFiles/testcourssimpleopengl3.dir/Vecteur4.cpp.o
[ 63%] Building CXX object src/CMakeFiles/testcourssimpleopengl3.dir/Matrice4.cpp.o
[ 72%] Building CXX object src/CMakeFiles/testcourssimpleopengl3.dir/simple_camera_gl3.cpp.o
[ 81%] Building CXX object src/CMakeFiles/testcourssimpleopengl3.dir/PAppSdlOpenGl3.cpp.o
[ 90%] Building CXX object src/CMakeFiles/testcourssimpleopengl3.dir/PAppTestSdlGl3.cpp.o
[100%] Building CXX object src/CMakeFiles/testcourssimpleopengl3.dir/main.cpp.o
Linking CXX executable testcourssimpleopengl3
[100%] Built target testcourssimpleopengl3

Voilà pour la compilation.