Bonjour
Je me pose plusieurs questions concernant la gestion de code source pratique, multiprojet et semi-cross-platform.
Par multiprojet je veux dire : Un seul git qui contient plusieurs sous-projets.
Par semi-cross-platform je veux dire : seulement un des sous-projets sera multiplateforme, les autres ne seront que pour Windows.
Tout ceci est fictif, j'ai envie de comprendre comment les chefs de projets feraient.
Je vous expose un peu le projet :
Admettons un projet SuperProject, c'est surtout un dépôt Git qui contient plusieurs sous projet.
Voici les sous-projets de SuperProject
- Client : (uniquement windows, un client d'un jeu vidéo par exemple)
- Server : (cross-platform, le serveur pour le client
- Vendors : (Librairies tierces, Raknet, Boost, CEGUI, Squirrel)
- Share : Code qui sera utilisé par plusieurs projets différend, comme le protocole réseau (utilisé par le client ET le serveur)
Les librairies que contient Vendors seront utilisées par certains projets, par exemple CEGUI est utilisé par le client, mais pas par le serveur, Boost par contre sera utilisé par tous les projets.
Est-ce que c'est possible de gérer tout ça ? Est-ce que je m'y prends bien ? À terme il faut que la personne qui récupère les sources ai le moins de choses à faire pour que tout se compile sans problème.
Par exemple, Raknet compile, les dll sont placés dans un dossier Output, ensuite le serveur est compilé. Tout ceci dans le bon ordre. Et le serveur doit compilé sur Windows, linux etc.. Aussi, je ne veux pas de code redondant. Je ne veux pas mettre boost 2 fois dans les sources, je veux que tous les projets utilise le même Boost dans le dossier Vendors
En faite tout ça, je sais le faire avec Visual Studio, mais je ne sais pas comment faire pour rendre le serveur multi plateforme (point de vue source, gestion des dépendances)
Bon c'est compliqué non ? Puisque le serveur est multiplateforme, et que raknet ne compile pas pareil sur Windows et Linux, il faut que le developpeur build d'abord raknet pour son OS et ensuite il compile le serveur. Mais ça fait beaucoup de choses, j'aimerais tout automatiser
sinon, j'ai entendu parlé de CMake, je ne sais pas si c'est ce que je cherche.
Qu'en pensez-vous ? Est-ce que j'ai était assez clair ?
Partager