-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathInfos
133 lines (113 loc) · 5.73 KB
/
Infos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
Organisation des dossiers
=========================
Ce projet est essentiellement composé de deux dossiers principaux : le dossier lib
et le dossier app.
Vous trouverez également un dossier Code::Blocks reprenant l'ensemble des fichiers
utilisés par l'EDI Code::Blocks (http://codeblocks.org) pour la gestion de ses
projets ainsi qu'un dossier Makefile, subdivisé en sous dossiers windows et linux contenant les Makefile
pour les deux systèmes d'exploitations envisagés.
Le dossier lib
==============
Ce dossier contient l'ensemble des fichiers nécessaire à la compilation de
la bibliothèque, qui peut être utilisée comme base dans des projets connexes,
sous réserve de respecter les termes de la licences GNU LGPL V3 ou ultérieure.
Ce dossier contient deux autres dossiers : le dossier include qui contient
l'ensemble des fichiers d'en-tête et le dossier src qui contient l'ensemble des
fichiers d'implémentation.
Le dossier app
==============
Ce dossier contient le seul fichier nécessaire à la génération d'une application
de démonstration en mode console: le fichier main.cpp. Ce fichier a été
délibérément placé dans un dossier à part afin de permettre la prise en charge
ultérieures d'autres EDI et d'autres systèmes d'automatisation de la compilation
tels que cmake ou les autotools sous linux.
Le dossier Code::Blocks
=======================
Ce dossier contient essentiellement trois fichiers principaux :
- Le fichier echecLib.cbp qui correspond au projet permettant la compilation
de la biblitohèque en elle-même ;
- le fichier echec_app.cbp qui correspond au projet permettant la compilation
de l'application (en mode console) de démonstration ;
- le fichier libAndApp.workspace qui correspond à un espace de travail dans
lequel la dépendance de l'application de démonstration envers la bibliothèque
a été définie. Il permet de s'assurer que la bibliothèque a été compilée
lorsqu'on souhaite compiler l'appllication de démonstration.
Prerequis pour la compilation
=============================
Le seul prérequis pour la compilation de ce projet est de disposer d'un compilateur
supportant la norme C++11. Les fonctionnalités indispensables issues de cette norme
sont :
- Le support des fonctions marquées delete ;
- le support du static_assert ;
- le support des nouveaux type_traits, à savoir :
- std::is_same ;
- std::is_base_of ;
- std::enable_if ;
- Le support des valeurs par défaut pour les paramètres template de fonction.
compilateurs connus pour leur support de la norme
=================================================
A l'heure actuelle, ce projet a été compilé avec succès avec les compilateurs
suivants :
- Gcc-4.8.1 ;
- clang-3.4.
Il n'est pas exclu que d'autres compilateurs fournissent le support adéquat
de la norme. N'hésitez pas à me le faire savoir.
Comment compiler les projets?
=============================
Il existe deux possibilités pour compiler ce projet : en utilisant l'EDI Code::Blocks ou
en utilisant les Makefiles.
Compiler avec code::blocks
==========================
Si l'association des fichiers *.cbp et *.workspace a été définie pour lancer
Code::blocks, vous pouvez, selon vos besoin, vous contenter de double cliquer
sur le fichier echecLib.cbp, sur le fichier echec_app.cbp ou sur le fichier
libAndApp.workspace.
Cela aura pour résultat le lancement de Code::blocks et l'ouverture du projet ou
de l'espace de travail.
Vous pouvez également lancer Code::Blocks de manière classique et ouvrir ces
fichiers en passant par le menu Files->Open.
Utiliser les Makefiles sous linux
=================================
Ouvrez une console et entrez dans le dossier Makefiles/linux à l'aide de la
commande
cd <chemin vers le dossier racine>/Makefile/linux
Selon le compilateur que vous souhaitez utiliser (gcc ou clang) lancez la
commande
make -f Makefile.gcc
ou la commande
make -f Makefile.clang
Lorsque la compilation est terminée, une application nommée chessap sera
disponible dans le dossier dans lequel vous vous trouvez
Utiliser le Makefiles sous windows
==================================
Ouvrez une invite de commande et entrez dans le dossier Makefile\windows à l'aide
de la commande
cd <chemin vers le dossier racine>\Makefiles\linux
Au besoin, rajoutez le dossier bin de votre installation de gcc (ou de clang) à
la variable PATH avec la commande
set PATH=%PATH%;<dossier vers mingw/clang>\bin
Selon le compilateur que vous souhaitez utiliser (gcc ou clang) lancez la
commande
mingw32-make -f Makefile.gcc
ou la commande
mingw32-make -f Makefile.clang
Lorsque la compilation est terminée, une application nommée chessap.exe sera
disponible dans le dossier dans lequel vous vous trouvez
NOTA : Il est possible que la première invocation de cette commande échoue avec,
pour seule indiation un message proche de
mingw32-make: Interrupt/Exception caught (code = 0xc0000005, addr 0x00007FFCADA2D23)
Dans ce cas, relancez simplement la commande ci-dessus pour terminer la
compilation.
Supprimer les fichiers objet et l'application
=============================================
Vous pouvez supprimer les fichiers objets générés lors de la compilation en
ajoutant l'option clean à la commande utilisée.
Si vous souhaitez également supprimer l'application en plus des fichiers objets,
remplacez l'option clean par l'option cleanall.
A venir
=======
Des tests unitaires, basés sur boost::test seront prochainement fournis.
Contacter l'auteur
==================
N'hésitez pas à me contacter sur mon blog (http://philippe-dunski.blog4ever.com/)
pour toute question relative au livre ou au code présenté par ce projet.