|
SEB
|
Posté le 06 Août 2011 à 12:48
|
|

Messages : 554
GCPoints : 103313
|
Ce sujet vient plus ou moins en complément du sujet sur l'organisation du repository, il s'agit de savoir comment nous compilerons le projet.
Je pense que sur ce sujet il n'y aura pas grand débat mais cela fera au moins office de tuto/doc pour ceux qui ne connaissent pas trop ces aspects.
Pour compiler un projet il existe deux méthodes de bases classiques : utiliser la ligne de commande ou vôtre IDE favori (je ne citerais que les Codeblocks, Visual studio, Eclipse (et oui pour du c++ aussi) et tout autre ide..)
Disons que en principe la ligne de commande sur un projet de l'ampleur d'un jeu (même petit) est à oublier immédiatement, en fait on peut tout de suite la remplacer par les Makefiles. Donc les deux options sont : IDE/Makefiles.
Etudions d'abord le cas de l'IDE : l'ide permet en général de créer un espace de travail puis N projet à l'intérieur. Il faut alors ensuite utiliser l'ide pour intégrer les différents fichiers et créer les différentes configurations ce qui peut être fastidieux mais disons que lorsque cela a été fait une fois ce n'est plus a faire. Le problème ? comme chacun aura sa copie locale du repository il faudrait dans l'idéal que l'espace de travail et les projet soit partagés pour que chacun n'ai pas à faire ce même processus de son coté. De plus si chacun a un ide différent ca sera encore plus problématique, surtout que les dossier d'includes et de libs pourraient etre différentes d'une personne à l'autre.
Il y a donc pas mal d'inconvénients avec les projets d'IDE.
Etudions maintenant le cas du Makefile : le makefile permet plus ou moins de décrire le processus de construction en regrouppant dans un ou plusieur fichiers les directives en lignes de commandes qui devraient etre tapées. L'avantage est que étant un simple fichier il est simple à partager, inconvénient il peut devenir également assez fastidieux à écrire et surtout c'est assez complexe de le rendre 'portable' rien que d'un compilateur à l'autre. Et ils sont bien austère comparé à un ide.
Les Makefiles posent donc également une série de problèmes non négligeable.
La solution de 'générateur de projet' et plus particulièrement mon favoris 'CMake'.
Cmake est un outil très intéressant cross plateforme dont le principe est simple : Il faut écrire quelques fichiers du type 'makefile à la sauce Cmake' que le logiciel va parser pour ensuite générer ... eh bien en fait presque tout ce que vous pouvez souhaiter. Il est capable de générer aussi bien des makefiles que des projets et espace de travail complets, avec les configurations bien placées à chaque endroit spécifique à la machine ou il a été exécuté, et adapté au compilateur cible.
La seule chose a faire avec cmake ? spécifier sa configuration, l'exécuter... et profiter du joli projet tout neuf qui a été généré !!
Apres avoir fait l'apologie de ce système. J'attend également votre avis mais j'espère vous avoir convaincu.
NextGine : 3D games engine
Nombre de lignes actuel : 77683
|
|
Daru13
|
Posté le 06 Août 2011 à 14:23
|
|

Messages : 2884
GCPoints : 108090
|
Je n'y connais pas grand chose (merci pour les explications d'ailleurs ^^), et étant un membre un peu volatile face à ce projet, mon avis n'est pas des plus important ici, mais ta dernière solution semble bien, du moins la plus simple .
Mais pourquoi ne pas, sinon, simplement choisir une ou deux personnes bien présentes pour chaque OS sur lequel le projet devra être compilé ?
Pour peu qu'ils configurent une fois leur IDE ou autre (il faut de tout façon également configurer Cmake une fois aussi, apparemment), ça reviendra un peu au même, non (ou alors je n'ai rien compris :p).
|
|
SEB
|
Posté le 06 Août 2011 à 14:34
|
|

Messages : 554
GCPoints : 103313
|
Oui c'est sur que l'on peut désigner plusieurs personne 'responsable' de chaque plateforme et ce sera nécessaire pour la création des fichiers cmake. Mais une fois ces fichiers créés nimporte quel nouveau participant n'aura quasiment rien a faire pour pouvoir compiler le projet (rien de plus que télécharger cmake, créer son micro fichier de config, le laisser générer le projet)
Je suis d'accord que ca revient un peu au même. Dans la pratique c'est surtout que ca a tendance malgré tout à prendre beaucoup plus de temps de maintenir des projet pour des ide que de les faire générer selon des rêgles bien homogènes, uniformes et centralisées.
NextGine : 3D games engine
Nombre de lignes actuel : 77683
|
|
freemaul
|
Posté le 06 Août 2011 à 15:51
|
|

Messages : 174
GCPoints : 50213
|
Je n'ai jamais utilisé Cmake mais le concept me plait beaucoup. Il est compatible avec beaucoup d'IDE ?
"La vie n'a pas de prix, mais elle coûte chère"
|
|
SEB
|
Posté le 06 Août 2011 à 16:02
|
|

Messages : 554
GCPoints : 103313
|
Beaucoup je ne sais pas exactement en tout cas sous windows il fait au moins Codeblocks, Mingw makefiles, Visual studio 2005, 2008, 2010.
Sous linux il fait Codeblocks, gcc makefiles et sous Mac il fait les projet Xcode également.
Apres il y a une liste beaucoup plus large que ca mais je n'ai pas pri le temps de tout étudier.
NextGine : 3D games engine
Nombre de lignes actuel : 77683
|
|
freemaul
|
Posté le 06 Août 2011 à 16:08
|
|

Messages : 174
GCPoints : 50213
|
OK, je croyait que la liste était beaucoup plus petite, genre : Visual studio pour Windows et Makefiles pour Linux.
Donc apparemment tout le monde peut y trouver son compte avec cette solution.
"La vie n'a pas de prix, mais elle coûte chère"
|
|
Darktib
|
Posté le 06 Août 2011 à 20:35
|
|

Messages : 4017
GCPoints : 347288
|
Je suis pour CMake.
Par contre, dans ce cas, je serais pour séparer la liste des fichiers à compiler du reste de la config avec un include (ainsi la config reste plus lisible). Dans ce fichier sera précisé l'organisation des sources ("source_group").
|
|
SEB
|
Posté le 07 Août 2011 à 10:50
|
|

Messages : 554
GCPoints : 103313
|
Je ne connaissais pas les source_group dans cmake dans ce cas effectivement je suis pour laisser tout en vrac dans le repository src.
NextGine : 3D games engine
Nombre de lignes actuel : 77683
|
|
SEB
|
Posté le 08 Août 2011 à 10:07
|
|

Messages : 554
GCPoints : 103313
|
Idem ici ?
CMake validé?
ca a l'air mais bon...
NextGine : 3D games engine
Nombre de lignes actuel : 77683
|