Compiler la SFML - Qu3tzal/meuporg GitHub Wiki

Compiler la SFML

Lors du développement, il est important d'avoir des binaires qui soient compilés exactement avec le même compilateur que l'exécutable (meuporg-royale-client ou meuporg-royale-server). Cette obligation nous laisse deux solutions :

  • soit utiliser le même compilateur que celui utilisé par ceux qui ont compilé la SFML pour nous (voir le site de la SFML)
  • soit recompiler la SFML

Nous choisirons de recompiler la SFML afin de se garder la possibilité d'utiliser des compilateurs pour les plateformes de notre choix ainsi que pour utiliser des versions de C++ récentes (C++14/17 bientôt 20).

Au menu

Afin de compiler la SFML nous allons suivre un certain nombre d'étapes :

  1. Récupérer les sources de la SFML
  2. Générer un fichier Makefile
  3. Compiler la SFML

Nous aurons besoin des outils suivants : git, cmake, make et g++ Pour les installer si besoin :

  • Sous linux : sudo apt-get update && sudo apt-get install -y git cmake build-essential g++
  • Sous Windows : git est fourni avec l'application desktop de Github, CMake se télécharge ici et make et g++ sont fournis avec MinGW (mingw32-make et g++ dans mingw32/bin/

Au travail (Linux)

On commence par se créer un dossier de travail : mkdir meuporg-royale

La SFML ne fournit pas les bibliothèque dont elle dépend sur Linux, nous devons donc les installer nous même. Voici une ligne de commande permettant d'installer ces dépendances :

  • sous Debian 9 : sudo apt-get install -y libpthread-stubs0-dev libgl1-mesa-dev libx11-dev libxrandr-dev libfreetype6-dev libglew1.5-dev libudev-dev libjpeg62-turbo-dev libsndfile1-dev libopenal-dev
  • sous Ubuntu 14 : sudo apt-get install -y libpthread-stubs0-dev libgl1-mesa-dev libx11-dev libxrandr-dev libfreetype6-dev libglew1.5-dev libudev-dev libjpeg8-dev libjpeg-turbo8-dev libsndfile1-dev libopenal-dev

Ensuite on clone le repository de la SFML :

git clone https://github.com/SFML/SFML.git
cd SFML

On va maintenant compiler la SFML en mode debug : cmake . -DCMAKE_BUILD_TYPE=Debug && make

Puis en mode release : cmake . -DCMAKE_BUILD_TYPE=Release && make

Pour utiliser notre version de la SFML il suffit maintenant d'indiquer au moment de la compilation de notre projet, où elle se situe. Par exemple, avec cmake cela se fait ainsi :

include_directories(chemin/vers/la/SFML/include)
link_directories(chemin/vers/la/SFML/lib)

target_link_libraries(my-project sfml-system-d sfml-window-d sfml-graphics-d sfml-network-d sfml-audio-d)

Au travail (Windows)

A venir