Je cherche à démarrer un nouveau projet en C ++ - juste à mon époque au départ - et j'étudie les systèmes de construction disponibles. Il semblerait que la réponse soit "Beaucoup, et ils sont tous horribles".
Les fonctionnalités dont j'ai spécifiquement besoin pour cela sont:
- Prise en charge de C ++ 11
- Multi-plateforme (Linux comme cible principale, mais capable de s'appuyer sur au moins Windows également)
- Support de test unitaire décent
- Prise en charge de plusieurs modules pour séparer le code
- Prise en charge de la génération de code (en utilisant asn1c ou protobuf - pas encore 100% sûr)
- Facile à maintenir
Maintenant, je sais que je peux faire 1 à 4 de ceux en utilisant CMake et Autotools assez facilement. Probablement aussi avec SCons et Waf et le couple d'autres aussi. Le problème est que je n'ai jamais trouvé comment faire correctement la génération de code en les utilisant - c'est-à-dire des fichiers source qui n'existent pas avant la première exécution du processus de construction, donc les fichiers sources que le système de construction doit pouvoir convertir en code exécutable mais ne sait pas vraiment jusqu'à ce que la construction commence ... (ASN1C en particulier génère des dizaines de fichiers d'en-tête et source qui doivent pouvoir fonctionner ensemble, et l'ensemble réel de fichiers généré dépend du contenu de votre fichier asn) Il y a ainsi que le fait qu'aucun de ceux-ci n'est particulièrement facile à maintenir - CMake et Autotools ont leur propre vaste ensemble de scripts que vous devez gérer pour qu'ils fonctionnent,
Alors, quels systèmes de construction sont recommandés pour quelque chose comme ça? Ou vais-je être coincé avec des fichiers de création et des scripts shell pour le moment?