Bonjour,
Existe-t-il un équivalent de maven ou de gradle, mais pour le C++ ?
Lors de mes recherches, je retombe souvent sur CMake, mais ce n’est pas ce que je cherche, du moins il ne me semble pas. Je trouve CMake compliqué: il vérifie un tas de trucs, met 3 ans à s’exécuter, crée 12000 fichiers temporaires, et tout ça pour générer un fichier makefile qu’il faut encore exécuter avec les outils traditionnels derrière. ET en fait, il ne va rien télécharger et rien configurer du tout, donc ça ne simplifie pas vraiment le bordel. Le projet demande OpenSSL et tu ne l’as pas ? Tant pis, tu reviendras quand tu l’auras.
Ce que je cherche, ce serait un truc dans la lignée de gradle ou maven dans leur aspect gestion de dépendance.
Par exemple, j’indique dans un équivalent de build.gradle ou pom.xml que mon projet a besoin de WXWidgets, de CURL et d’OpenSSL.
J’ai pas OpenSSL ? L’outil télécharge ce qu’il faut, me le compile s’il n’existe pas de DLL précompilées existantes, me met automatiquement les includes et les lib d’import aux bons endroits, puis passe à la suite.
Finalement une fois que toutes les dépendances sont là, il compile mon projet.
Après pour l’aspect étapes de construction, je ne sais pas si c’est vraiment comparable, je n’ai jamais fait de test unitaire en C++, et il n’y a pas de déploiement sur un serveur. Par contre on a le build release et le build debug et les deux sont indépendants…
Je me doute bien que c’est bien plus compliqué qu’en Java, parce qu’il faut exactement la même version du même compilateur sur le même OS pour être sûr de pouvoir réutiliser des DLL, mais il n’y a pas non plus 36 combinaisons différentes il me semble (tout au plus une petite dizaine de très courantes ?) Donc ça doit forcément exister. Je n’utilise peut-être juste pas les bons mots dans mes recherches.
Actuellement je suis sur windows 10 avec MinGW-W64. Je ne tiens pas à passer à l’usine à gaz Visual Studio. Par contre un outil tel que je le décris m’inciterais peut-être à tenter un portage Mac ou Linux de mon logiciel, en théorie c’est possible car toutes les bibliothèques que j’utilise y sont disponibles.
Est-ce que vous connaissez quelque chose ?
Merci pour vos réponses.