Des alternatives prometteuses à faire?
J'ai été en utilisant faire et des makefiles pour de nombreuses années, et bien que le concept
c'est le son, la mise en œuvre a quelque chose à désirer.
Quelqu'un a trouvé de bonnes solutions de rechange à faire que de ne pas compliquer
le problème?
- N'aurez pas la réponse dépendent fortement de la nature du problème? Pour les choses que j'ai essayé de le faire avec elle,
make
est trop simpliste. - Ruby Râteau, CoffeeScript Gâteau, Python Scons, Java, Ant/Maven, C# MSBuild, de la croix-plate-forme de CMake
Vous devez vous connecter pour publier un commentaire.
découvrez SCons. Par exemple Doom 3 et Blender faire des utilisations de celui-ci.
J'ai beaucoup d'amis qui ne jurent que par CMake pour le développement cross plate-forme:
http://www.cmake.org/
C'est le système de construction utilisé pour VTK (entre autres choses), qui est une bibliothèque C++ avec la croix-plate-forme de Python, Tcl, Java et les liaisons. Je pense que c'est probablement le moins compliqué que vous trouverez avec de nombreuses fonctionnalités.
Vous pouvez toujours essayer la norme autotools. Automake fichiers sont assez facile à mettre ensemble, si vous êtes seulement en cours d'exécution sur Unix et si vous vous en tenez à C/C++. L'intégration est plus compliqué, et les autotools est loin d'être le système le plus simple jamais.
Certains de GNOME projets ont été migration vers waf.
Il est basé sur Python, comme Scons, mais aussi autonome -- donc, plutôt que de demander à d'autres développeurs à avoir votre favori construire l'outil installé, il vous suffit de copier la version autonome de construire un script dans votre projet.
doit est un python de l'outil. Elle est basée sur les concepts de construire des outils, mais plus générique.
Je recommande d'utiliser Râteau. C'est l'outil le plus simple que j'ai trouvé.
D'autres bons outils que j'ai utilisé, même si, si Ruby n'est pas votre truc, sont:
Être conscient de la
ninja
outil de construction (v1.8.2 Septembre 2017), qui est influencée partup
etrétablir
.Le fichier build générateur
cmake
(par exemple pour Unix Makefiles, Visual Studio, XCode, Eclipse CDT, ...) peuvent aussi générer desninja
construire des fichiers depuis la version 2.8.8 (avril 2012) et, autant que je sache,ninja
est aujourd'hui encore le build par défaut de l'outil utilisé parcmake
.Il est censé surpasser la
make
outil (meilleur suivi des dépendances et est également parallélisé).cmake
est déjà bien établie de l'outil. Vous pouvez toujours choisir plus tard l'outil de génération sans modifier vos fichiers de configuration. Donc, si un mieux construire est développé dans l'avenir qui sera pris en charge parcmake
vous pouvez passer commodément.Noter que pour le c/c++ améliorer le temps de compilation est parfois limitée en raison des en-têtes inclus par le préprocesseur (en particulier lors de l'utilisation d'en-tête uniquement libs, par exemple boost & eigen) qui je l'espère sera remplacé par la proposition de les modules de (dans un examen technique de c++11 ou éventuellement en c++1y). Découvrez ce présentation pour plus de détails sur cette question.
tup
dépendfuse
et ayant le fusible de l'extension du noyau en cours d'exécution, pour autant que je suis concerné, suggère que les responsables sont des noix.redo
n'a pas été mis à jour dans deux ans. Je le recommandeninja
.J'ai écrit un outil appelé souci qui a essayé de faire de l'écriture le fichier makefile aime les choses très facile à lire et à écrire.
make
de la syntaxe.Ça dépend de ce que vous essayez de faire. Si tous vous voulez, c'est de faire style cible de dépendances et d'invocation de commande, puis Faire est en fait l'un des meilleurs outils pour la tâche. 🙂 Le râteau est très agréable, mais peut être maladroit pour certains cas simples. Ant est bien sûr le niveau de verbosité de la ville, mais il a un meilleur support pour la construction de Java-comme des langues (Scala et Groovy inclus). Aussi, la Fourmi est disponible partout. C'est la principale raison je utiliser. Parce qu'il fonctionne toujours sur Windows, c'est même plus de la croix-plate-forme que de Faire.
Si vous voulez de gestion de la dépendance pour Java-comme les bibliothèques, Maven est le canonique choix, mais personnellement, je voudrais Buildr beaucoup mieux. C'est plus rapide et beaucoup plus facile à personnaliser (il est basé sur le Rake). Malheureusement, il n'est pas aussi omniprésent que Maven pour l'instant.
Je préfère encore faire après avoir envisagé un tas de solutions de rechange. Lorsque vous auto-généré dépendances, soit par le compilateur ou quelque chose comme fastdep il n'y a pas beaucoup reste à faire. En particulier, je ne veux pas que mon script de construction lié à la mise en œuvre de la langue, et je n'aime pas écrire dans le fichier XML lorsque plus lisible alternatives sont disponibles. Un outil qui exposent un usage général de la langue a le mérite de bien, mais encore un autre langage interprété n'a pas (à ma connaissance). Ce qui est Mal à Faire? pourrait faire appel à votre point de vue sur le déplacement loin de faire.
/Allan
Ruby rendre le système est appelée râteau: http://rake.rubyforge.org/
Est très prometteur.
Il y a toujours des Fourmis: http://ant.apache.org, qui personnellement, je trouve horrible. C'est le standard de facto pour le développement Java, cependant.
Je ne suis pas sûr que si vous demandez la bonne question à poser ici.
Êtes-vous après une simplifiée faire? Dans ce cas, vous avez besoin d'avoir quelqu'un qui est très familier avec faire pour créer une série de (M|m)akefiles qui va vous simplifier votre problème.
Ou êtes-vous désireux de regarder la technologie sous-jacente? Sommes-nous à vouloir imposer une conception par type de contrat de l'architecture qui est construit pour, et appliquées, la conception de code? Ou peut-être, le langage lui-même, par exemple, de l'Ada et de son concept de spécifications (interfaces) et des organismes (implémentations)?
Quelle direction vous après va certainement affecter les résultats potentiels d'une telle question?
Fondamentalement, de nouvelles façons de systèmes de construction à partir de seulement ceux qui ont vraiment changé par rapport à l'adoption de nouvelles technologies qui ont de tels mécanismes construit par la conception.
Désolé ce n'est pas une réponse directe. Je voulais juste tenter et de vous amener à évaluer le chemin que tu voulais à la tête en bas.
acclamations,
Rob
FlowTracer de RTDA est un autre bon choix que j'ai vu utilisé dans le commerce à grande échelle de l'environnement (des dizaines de milliers d'emplois): http://www.rtda.com/flowtracer-design-flow-infrastructure-software
Il a une interface graphique qui montre le graphe de dépendance avec code de couleur des boîtes pour les emplois et les ovales pour les fichiers. Lorsque le nombre des emplois et des fichiers est élevé, basé sur l'interface de l'outil comme FlowTracer est à peu près indispensable.
La configuration initiale, le coût est supérieur à Faire. Il y a une courbe d'apprentissage pour la configuration de votre premier flux de l'utiliser. Après cela, il devient plus rapide.