Difference between revisions of "CompilingWesnoth/fr"

From The Battle for Wesnoth Wiki
m
m
 
(37 intermediate revisions by the same user not shown)
Line 21: Line 21:
  
 
* libsdl >= 2.0.4 (https://www.libsdl.org/)
 
* libsdl >= 2.0.4 (https://www.libsdl.org/)
* sdl-image >= 2.0.0 (avec PNG and JPEG support) (https://www.libsdl.org/projects/SDL_image/)
+
* sdl-image >= 2.0.0 (avec PNG et JPEG inclus) (https://www.libsdl.org/projects/SDL_image/)
* sdl-mixer >= 2.0.0 (avec Vorbis support) (https://www.libsdl.org/projects/SDL_mixer/)
+
* sdl-mixer >= 2.0.0 (avec Vorbis inclu) (https://www.libsdl.org/projects/SDL_mixer/)
 
* sdl-ttf >= 2.0.12 (https://www.libsdl.org/projects/SDL_ttf)
 
* sdl-ttf >= 2.0.12 (https://www.libsdl.org/projects/SDL_ttf)
 
* libboost >= 1.50.0 (https://www.boost.org/)
 
* libboost >= 1.50.0 (https://www.boost.org/)
Line 37: Line 37:
  
 
Ces bibliothèques sont facultatives:
 
Ces bibliothèques sont facultatives:
* libdbus-1 (only required desktop notifications, https://www.freedesktop.org/wiki/Software/dbus)
+
* libdbus-1 (requis seulement pour les notifications, https://www.freedesktop.org/wiki/Software/dbus)
* libreadline (command history and history expansion in the built-in Lua console)
+
* libreadline (historique des commandes et des expensions dans la console Lua)
* fribidi >= 0.10.9 (only required for RTL languages)
+
* fribidi >= 0.10.9 (seulement requis pour les langues RTL)
  
=== Pré-requis supplémentaires pour version dev ===
+
=== Pré-requis supplémentaires pour version 1.15 ===
  
 
À partir de '''Wesnoth 1.15''', les pré-requis suivants ont été ajoutés:
 
À partir de '''Wesnoth 1.15''', les pré-requis suivants ont été ajoutés:
Line 51: Line 51:
 
=== Moteurs de production ===
 
=== Moteurs de production ===
  
Pour pouvoir produire des fichiers binaires (exécutables), vous aurez besoin d'un moteur de production. Vous pouvez utiliser soit:
+
Pour pouvoir produire les fichiers binaires (ou "exécutables") du jeu, vous aurez besoin d'un moteur de production. Vous pouvez utiliser:
  
 
* scons >=1.0 (https://www.scons.org/)
 
* scons >=1.0 (https://www.scons.org/)
 
ou soit:
 
 
 
* cmake >=2.8.5 (https://www.cmake.org/)
 
* cmake >=2.8.5 (https://www.cmake.org/)
  
 
=== Récupérer facilement les dépendances sous Linux ===
 
=== Récupérer facilement les dépendances sous Linux ===
  
Si votre distribution Linux est basée sous Debian (comme '''Ubuntu''' ou '''Linux Mint''') et qu'elle fournit une version relativement récente de Wesnoth, il ne vous suffira peut-être que d'entrer les deux commandes ci-dessous pour récupérer toutes les dépendances nécessaires pour la dernière version stable de Wesnoth (pour la version en développement, entrer tout de même les commandes puis voir les pré-requis supplémentaires plus haut):
+
Si votre distribution Linux est basée sous Debian (comme '''Ubuntu''' ou '''Linux Mint''') et qu'elle fournit une version relativement récente de Wesnoth, il ne vous suffira peut-être que d'entrer les deux commandes ci-dessous pour récupérer toutes les dépendances nécessaires pour la dernière version stable de Wesnoth (pour la version en cours de développement, entrer quand même ces commandes puis voir les pré-requis supplémentaires plus haut):
  
 
  sudo apt build-dep wesnoth-1.12
 
  sudo apt build-dep wesnoth-1.12
Line 83: Line 80:
  
 
Vous pouvez télécharger le code source:
 
Vous pouvez télécharger le code source:
* [[Download]] — Des versions publiques
+
* [[Download]] (en) D'une version publique
* [[WesnothRepository]] — Des versions en cours de développement via le dépôt '''Git''' officiel.
+
* [[WesnothRepository]] (en) D'une version en cours de développement via le dépôt '''Git''' officiel.
  
 
== Compiler ==
 
== Compiler ==
  
Nous n'avons pas encore de moteur de production officiel. [[SCons]] et [[Cmake]] semblent tous deux de bon choix et ils devraient pour le moment être bien supportés.
+
Wesnoth n'a pas encore de moteur de production officiel. [[SCons]] (en) et [[CMake]] (en) semblent tous deux de bon choix et ils devraient pour le moment être bien supportés.
  
 
Cependant, SCons a l'avantage d'être facile à utiliser car il a moins besoin d'être configuré et il est très utilisé par la communauté actuellement. Cmake de son côté est utilisé pour certaines versions mais n'est pas systématiquement testé.
 
Cependant, SCons a l'avantage d'être facile à utiliser car il a moins besoin d'être configuré et il est très utilisé par la communauté actuellement. Cmake de son côté est utilisé pour certaines versions mais n'est pas systématiquement testé.
  
 
Si une configuration venait à échouer, vous pouvez essayer de regarder dans les fichiers '''log''' (par exemple <code>build/config.log</code> pour SCons) afin d'obtenir plus de détails. En utilisant SCons, une vérification peut échouer par erreur à cause du cache. Si cela vous arrive, utilisez l'option <code>--config=force</code> pour forcer le relancement.
 
Si une configuration venait à échouer, vous pouvez essayer de regarder dans les fichiers '''log''' (par exemple <code>build/config.log</code> pour SCons) afin d'obtenir plus de détails. En utilisant SCons, une vérification peut échouer par erreur à cause du cache. Si cela vous arrive, utilisez l'option <code>--config=force</code> pour forcer le relancement.
 +
 +
Comme SCons et CMake utilise des sommes de contrôles MD5 pour compiler uniquement le code qui a changé, inutile de faire un <code>make clean</code> ou un <code>make uninstall</code> avant de lancer la compilation.
  
 
===Compiler avec SCons===
 
===Compiler avec SCons===
 
Pour compiler avec SCons, entrer simplement:
 
Pour compiler avec SCons, entrer simplement:
 
  $ scons  
 
  $ scons  
dans le dossier racine de Wesnoth. Cette commande est équivalente à <code>configure --enable-editor --enable-tools; make</code> avec '''Autotools'''. Elle active tous les outils du côté du client. Pour plus d'informations, taper:
+
dans le dossier racine de Wesnoth. Cette commande est équivalente à <code>configure --enable-editor --enable-tools; make</code>. Elle active tous les outils '''Autotools''' du côté du client. Pour plus d'informations, taper:
 
  $ scons --help
 
  $ scons --help
Equivalents of many configure options will be available, and you can easily build individual targets such as wesnothd.  
+
Vous obtiendrez la liste des configurations disponibles. Vous pouvez aussi compiler des tâches individuelement (e.g. wesnothd).
  
Because scons checks for out-of-dateness with MD5 checksums of a target's ancestors and its build environment (including compiler and linker flags), the "make clean" and "make uninstall" preliminaries that you need for safety under autotools won't be necessary.
 
  
  
====Tips====
+
====Astuces====
  
Good options to use with scons are
+
Quelques options utiles pour SCons. Notez que ces options seront enregistrés et réutilisés pour les compilations suivantes:
  
* ctool=clang
+
* ctool=clang
:This uses clang instead of gcc, which is empirically significantly faster (about 2x)
+
:Utiliser '''clang''' à la place de '''gcc''' ce qui augmente significativement la vitesse de compilation (environs 2 fois plus vite).
 
* ccache=true
 
* ccache=true
:Enables ccache.  
+
:Activer '''ccache'''.  
:If you have ccache available on your system, and you are using git, then this is highly recommended, it can enable you to switch branches and rebuild in minutes.
+
:Si vous avez ccache d'installé sur votre système et que vous utilisez git, alors vous devriez absolument activer cette option! Cela permet de pouvoir changer de branches et de recompiler en quelques minutes.
* build=release vs. build=debug
+
* build=release OU build=debug
:Determines whether you build with -O3 optimizations, or -O0 with debugging symbols.
+
:Compiler avec les optimisations (option -O3) ou avec les symboles de débogages (option -O0).  
:Keep in mind this preference, like the others mentioned, are "sticky" and will be remembered in the future.
+
* -j 2, --jobs 4 ...
* -j 2, or --jobs 4, etc.
+
: Activer la compilation parallèle: Plusieurs tâches de compilation pourront être exécutées simultanément, pour un maximum correspondant au nombre de cœurs du processeur.
: Build parallelism: This tells scons to run multiple compilation steps in parallel. The number of jobs you tell it to run at once should not be larger than the number of cores that you have.
 
  
===Building with CMake===
+
===Compiler avec CMake===
[[CMake]] supports so called "out of tree" builds. That is you compile in a place completely different from the folder where your checkout is in. To do so, simply create a folder to compile in and call cmake with the path to your checkout. Of course you can also just call cmake from the checkout folder with a plain ''cmake .'', but this is boring, isn't it?
+
[[CMake]] (en) est capable de compiler "hors de l'arborescence". Autrement dit, on peut compiler en dehors du dossier racine du projet. Pour ce faire, il suffit de créer un dossier où l'on désire placer notre version montée du jeu et d'utiliser la commande <code>cmake ''CHEMIN/RACINE/PROJET''</code> avec ''CHEMIN/RACINE/PROJET'' le chemin vers le dossier racine du projet.
  
To have cmake build wesnoth in a new dir called ''cmake_build_dir'', just use these commands (''PATH/TO/WESNOTH/TOPLEVEL-DIR'' means the base of your repository checkout or the folder where you extracted the tarball to, not src/ in there!):
+
Pour que CMake compile Wesnoth dans un nouveau dossier <code>cmake_binaire</code>, vous pouvez simplement entrer les commandes suivantes:
  $ mkdir cmake_build_dir
+
  $ mkdir cmake_binaire
  $ cd cmake_build_dir
+
  $ cd cmake_binaire
  $ cmake PATH/TO/WESNOTH/TOPLEVEL-DIR
+
  $ cmake ''CHEMIN/RACINE/PROJET''
This will perform the equivalent of "configure --enable-editor --enable-server" under autotools. To get an interface for editing settings, just type
+
La configuration utilisée est la même que celle d''''Autotools''' avec <code>configure --enable-editor --enable-server</code>. Pour obtenir une interface pour changer les paramètres de compilation, entrer simplement dans le dossier <code>cmake_binaire</code>:
 
  $ ccmake .
 
  $ ccmake .
in the cmake_build_dir. When done with your changes hit 'c' to configure and 'g' to generate the files and exit. In general you can either add commands to your ''cmake PATH/TO/WESNOTH/TOPLEVEL-DIR'' call, or change the parameters later on via ccmake or a cmake gui. Equivalents of many configure options are be available.
+
Une fois les paramètres changés, taper 'c' pour configurer et 'g' pour générer les fichiers et quitter. D'une manière générale, vous pouvez soit ajouter des commandes à votre <code>cmake ''CHEMIN/RACINE/PROJET''</code>, soit changer les paramètres plus tard via ccmake ou une interface graphique de cmake. Plusieurs commandes ont déjà été créées.  
  
In the 2nd step you just have to build the game. This is done as with autotools using
+
Enfin, il suffit de lancer la compilation du jeu via Autotools en tapant:
 
  $ make
 
  $ make
This by default builds all the targets you activated. If you want to you can also just build specific targets like ''wesnothd''.
+
Par défaut, cette commande lance toutes les tâches activées. Si le vous souhaitez, vous pouvez aussi ne lancer qu'une tâche spécifique (e.g. ''wesnothd'').
 
 
Because CMake checks for out-of-dateness, the "make clean" and "make uninstall" preliminaries that you need for safety under autotools won't be necessary.
 
  
==  Install / Uninstall ==
+
==  Installer / Désinstaller ==
Become superuser, so that you have permission to install or uninstall.
+
Avant tout, activer le mode super-utilisateur pour avoir les permissions nécessaires:
 
  $ su
 
  $ su
   Password: /*doesn't show*/
+
   Mot de passe: /*ne s'affiche pas*/
Now that you have permission, proceed
+
Ensuite, utilisez simplement votre moteur de production préféré.
  
=== Using SCons ===
+
=== En utilisant SCons ===
If you are using SCons, install with:
+
Si vous avez utilisé SCons pour compiler le jeu, tapez ceci pour lancer l'installation:
 
  # scons install
 
  # scons install
  
And uninstall with:
+
Pour désinstaller le jeu, tapez:
 
  # scons uninstall
 
  # scons uninstall
  
=== Using CMake ===
+
=== En utilisant CMake ===
If you are using [[CMake]], installing basically happens the same way as when using autotools. When authorized as admin (see above), just type this:
+
Si vous avez utilisé CMake pour compiler le jeu, la méthode d'installation est globalement la même que pour une installation avec '''Autotools'''. En tant que super-utilisateur (voir plus haut) tapez:
 
  # make install
 
  # make install
  
== Running the game without installing==
+
== Lancer le jeu sans l'installer ==
After compiling it is also possible to just run the game without installing it. All you have to do is execute the compiled binary and provide the path to the data location as argument. This looks e.g. like this:
+
Après une compilation réussie, il est aussi possible de lancer le jeu sans avoir à l'installer. Il suffit pour cela d'exécuter le fichier binaire principal et de fournir le chemin où l'on désire sauvegarder les données de l'application comme ceci:
 
  $ ./wesnoth
 
  $ ./wesnoth
or, if you compiled outside the place where you have your repository checkout or the extracted tarball (lets assume this content lies in ''../wesnoth-1.14''):
+
ou si vous avez compilé en dehors du dossier racine du projet (avec ''CHEMIN/RACINE/PROJET'' le chemin vers ce dossier):
  $ ./wesnoth ../wesnoth-1.14/
+
  $ ./wesnoth ''CHEMIN/RACINE/PROJET''
  
==  See also ==
+
==  Voir aussi ==
  
* [[UsingSourceinstall]]
+
* [[UsingSourceinstall]] (en)
  
 
[[Category:Building and Installing]]
 
[[Category:Building and Installing]]

Latest revision as of 15:09, 15 September 2019

[edit]Compiling Wesnoth

Platforms

Compiler Wesnoth

Cette page présente comment compiler le jeu dans un environnement UNIX. Les moteurs de productions utilisés sont scons et cmake.

Voir aussi:

Pour plus de détails, voir le fichier INSTALL dans le code source.

Pré-requis

Avant tout, assurez-vous d'avoir un compilateur C++ tel que gcc .

Pour compiler Wesnoth 1.14, les bibliothèques suivantes doivent être installé sur votre système. Beaucoup de distributions Linux séparent les paquets de développement des bibliothèques. Si c'est le cas pour votre distribution, vous devez choisir le paquet development (ce dernier comprend les fichiers d'entêtes "headers" requis pour compiler). Vous aurez aussi besoin des paquets runtime pour lancer Wesnoth.

Ces bibliothèques sont facultatives:

  • libdbus-1 (requis seulement pour les notifications, https://www.freedesktop.org/wiki/Software/dbus)
  • libreadline (historique des commandes et des expensions dans la console Lua)
  • fribidi >= 0.10.9 (seulement requis pour les langues RTL)

Pré-requis supplémentaires pour version 1.15

À partir de Wesnoth 1.15, les pré-requis suivants ont été ajoutés:

  • Compilateur pour C++14 (GCC 5.0/Clang 3.8 ou plus)
  • libboost >= 1.56.0
  • sdl-ttf n'est plus nécessaire

Moteurs de production

Pour pouvoir produire les fichiers binaires (ou "exécutables") du jeu, vous aurez besoin d'un moteur de production. Vous pouvez utiliser:

Récupérer facilement les dépendances sous Linux

Si votre distribution Linux est basée sous Debian (comme Ubuntu ou Linux Mint) et qu'elle fournit une version relativement récente de Wesnoth, il ne vous suffira peut-être que d'entrer les deux commandes ci-dessous pour récupérer toutes les dépendances nécessaires pour la dernière version stable de Wesnoth (pour la version en cours de développement, entrer quand même ces commandes puis voir les pré-requis supplémentaires plus haut):

sudo apt build-dep wesnoth-1.12
sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev libboost-all-dev libvorbis-dev libcairo2-dev libpango1.0-dev libssl-dev libreadline-dev cmake make scons pkgconf

Pour tester le code, Wesnoth utilise des images Docker. Vous pouvez consulter les paquets installés au sein de ces images ici. (Notons que les versions des paquets dépendent aussi du système d'exploitation utilisé).

La commande suivante permet d'installer les dépendances pour Wesnoth 1.14 sur openSuSE. Toutes les dépendances sont dans un dépôt standard OSS:

sudo zypper install libSDL2-devel libSDL2_image-devel libSDL2_mixer-devel libSDL2_ttf-devel boost-devel libopenssl-devel libbz2-devel zlib-devel libvorbis-devel pango-devel cairo-devel fontconfig-devel dbus-1-devel readline-devel fribidi-devel gettext-runtime cmake make scons pkg-config

Pour installer les dépendances pour Wesnoth 1.14 pour CentOS, RedHat ou Fedora, utiliser cette commande. Toutes les dépendances sont dans un dépôt standard OSS. Vous pouvez aussi utiliser yum à la place de dnf:

sudo dnf install SDL2-devel SDL2_image-devel SDL2_mixer-devel SDL2_ttf-devel boost-devel openssl-devel bzip2-devel zlib-devel libvorbis-devel pango-devel cairo-devel fontconfig-devel dbus-devel readline-devel fribidi-devel gettext cmake make scons pkgconf-pkg-config

Cette commande installe les dépendances pour Wesnoth 1.14 sous Arch Linux:

sudo pacman -S sdl2 sdl2_image sdl2_mixer sdl2_ttf boost-libs openssl bzip2 zlib libvorbis pango cairo fontconfig dbus readline fribidi boost gettext cmake make scons pkgconf

Code source

Vous pouvez télécharger le code source:

  • Download (en) — D'une version publique
  • WesnothRepository (en) — D'une version en cours de développement via le dépôt Git officiel.

Compiler

Wesnoth n'a pas encore de moteur de production officiel. SCons (en) et CMake (en) semblent tous deux de bon choix et ils devraient pour le moment être bien supportés.

Cependant, SCons a l'avantage d'être facile à utiliser car il a moins besoin d'être configuré et il est très utilisé par la communauté actuellement. Cmake de son côté est utilisé pour certaines versions mais n'est pas systématiquement testé.

Si une configuration venait à échouer, vous pouvez essayer de regarder dans les fichiers log (par exemple build/config.log pour SCons) afin d'obtenir plus de détails. En utilisant SCons, une vérification peut échouer par erreur à cause du cache. Si cela vous arrive, utilisez l'option --config=force pour forcer le relancement.

Comme SCons et CMake utilise des sommes de contrôles MD5 pour compiler uniquement le code qui a changé, inutile de faire un make clean ou un make uninstall avant de lancer la compilation.

Compiler avec SCons

Pour compiler avec SCons, entrer simplement:

$ scons 

dans le dossier racine de Wesnoth. Cette commande est équivalente à configure --enable-editor --enable-tools; make. Elle active tous les outils Autotools du côté du client. Pour plus d'informations, taper:

$ scons --help

Vous obtiendrez la liste des configurations disponibles. Vous pouvez aussi compiler des tâches individuelement (e.g. wesnothd).


Astuces

Quelques options utiles pour SCons. Notez que ces options seront enregistrés et réutilisés pour les compilations suivantes:

  • ctool=clang
Utiliser clang à la place de gcc ce qui augmente significativement la vitesse de compilation (environs 2 fois plus vite).
  • ccache=true
Activer ccache.
Si vous avez ccache d'installé sur votre système et que vous utilisez git, alors vous devriez absolument activer cette option! Cela permet de pouvoir changer de branches et de recompiler en quelques minutes.
  • build=release OU build=debug
Compiler avec les optimisations (option -O3) ou avec les symboles de débogages (option -O0).
  • -j 2, --jobs 4 ...
Activer la compilation parallèle: Plusieurs tâches de compilation pourront être exécutées simultanément, pour un maximum correspondant au nombre de cœurs du processeur.

Compiler avec CMake

CMake (en) est capable de compiler "hors de l'arborescence". Autrement dit, on peut compiler en dehors du dossier racine du projet. Pour ce faire, il suffit de créer un dossier où l'on désire placer notre version montée du jeu et d'utiliser la commande cmake CHEMIN/RACINE/PROJET avec CHEMIN/RACINE/PROJET le chemin vers le dossier racine du projet.

Pour que CMake compile Wesnoth dans un nouveau dossier cmake_binaire, vous pouvez simplement entrer les commandes suivantes:

$ mkdir cmake_binaire
$ cd cmake_binaire
$ cmake CHEMIN/RACINE/PROJET

La configuration utilisée est la même que celle d'Autotools avec configure --enable-editor --enable-server. Pour obtenir une interface pour changer les paramètres de compilation, entrer simplement dans le dossier cmake_binaire:

$ ccmake .

Une fois les paramètres changés, taper 'c' pour configurer et 'g' pour générer les fichiers et quitter. D'une manière générale, vous pouvez soit ajouter des commandes à votre cmake CHEMIN/RACINE/PROJET, soit changer les paramètres plus tard via ccmake ou une interface graphique de cmake. Plusieurs commandes ont déjà été créées.

Enfin, il suffit de lancer la compilation du jeu via Autotools en tapant:

$ make

Par défaut, cette commande lance toutes les tâches activées. Si le vous souhaitez, vous pouvez aussi ne lancer qu'une tâche spécifique (e.g. wesnothd).

Installer / Désinstaller

Avant tout, activer le mode super-utilisateur pour avoir les permissions nécessaires:

$ su
  Mot de passe: /*ne s'affiche pas*/

Ensuite, utilisez simplement votre moteur de production préféré.

En utilisant SCons

Si vous avez utilisé SCons pour compiler le jeu, tapez ceci pour lancer l'installation:

# scons install

Pour désinstaller le jeu, tapez:

# scons uninstall

En utilisant CMake

Si vous avez utilisé CMake pour compiler le jeu, la méthode d'installation est globalement la même que pour une installation avec Autotools. En tant que super-utilisateur (voir plus haut) tapez:

# make install

Lancer le jeu sans l'installer

Après une compilation réussie, il est aussi possible de lancer le jeu sans avoir à l'installer. Il suffit pour cela d'exécuter le fichier binaire principal et de fournir le chemin où l'on désire sauvegarder les données de l'application comme ceci:

$ ./wesnoth

ou si vous avez compilé en dehors du dossier racine du projet (avec CHEMIN/RACINE/PROJET le chemin vers ce dossier):

$ ./wesnoth CHEMIN/RACINE/PROJET

Voir aussi

This page was last edited on 15 September 2019, at 15:09.