Ici nous utilisons Premake et Fastbuild.
Ici nous utilisons Premake et Fastbuild.
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
J'y vais aussi de ma contribution car personne n'a encore cité waf. Je suis loin d'être afficionado de Python, mais ce build system fonctionne vraiment bien pour un investissement en temps d'apprentissage très raisonnable.
Je ne cherchais absolument pas à être "moralisateur"...
Par contre, il faut être bien conscient que la manière dont on pose une question influera systématiquement sur la manière dont les réponses sont apportées.
Ainsi, apporter un jugement (que je ne remet nullement en question, même si je ne partage pas ton avis) impliquera justement que les réponses s'orienteront d'avantage sur un jugement de ton jugement (essayer de te convaincre que tu as raison ou tord) que sur le fond du problème en lui-même à savoir : quels outils existent.
Cela ne me fend pas le coeur de voir mes outils se faire bousculer, par contre, le fait que les gens n'arrivent pas à poser une question sans dénigrer (à tord ou à raison) un outil, une manière de faire ou un idée préconçue, ca, ca me chagrine énormément.Si ça te fend tant le coeur de voir l'un de tes outils chéris se faire bousculer, tu es libre de passer ton chemin... Après tout, je n'oblige personne à répondre.
Et c'est la raison principale pour laquelle je t'ai fait (gentiment, car il ne m'a pas semblé être agressif en le faisant) une remarque sur la manière dont ta question est posée oriente forcément la réponse.
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Salut,
Je viens apporter ma petite réponse: il y a premake aussi (c'est en langage lua qui semble plus simple à prendre en main).
Par contre pour CMake, il est vrai que c'est répétitif si tu ne fais pas de macro/fonction. Perso, j'ai fait une petite série de scripts CMake qui fonctionnent bien avec CMake 2.8 (sans doute avec les dernières versions également).
[EDIT]: Je n'avais pas vu la deuxième page du sujet qui parlé déjà de premake
Il y a des gens pour dénigrer les outils, d'autres pour écrire des pavés pour se plaindre de ces gens, la boucle est bouclée.Cela ne me fend pas le coeur de voir mes outils se faire bousculer, par contre, le fait que les gens n'arrivent pas à poser une question sans dénigrer (à tord ou à raison) un outil, une manière de faire ou un idée préconçue, ca, ca me chagrine énormément.
Non, sérieusement, ça sert à rien de jouer les butors là où le troll n'est pas.
Merci de me faire des remarques en MP, c'est inutile de polluer un thread pour ça.
Avant de poster: FAQ Rust; FAQ Dart; FAQ Java; FAQ JavaFX.
Vous souhaiteriez vous introduire au langage Rust ? C'est par ici ou ici !
Une question à propos du langage ? N'hésitez pas à vous rendre sur le forum !
Pour contribuer à la rubrique, vous pouvezme contacter par MP(Sorry, we're closed!) ou contacter directement la rédaction.
Vous pouvez m’indiquer ce que vous trouvez répétitif dans cmake ? J'en ai fait un peu, et ça m'avais semblé assez direct (bien que parfois étrange) comme syntaxe.
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
Je ne sais pas si c'est à ça qu'il faisait référence mais apparement cmake recommande de spécificier explicitement les fichiers à compiler au lieu d'utiliser GLOB pour les collecter automatiquement. Ça devient alors effectivement assez répétitif.
http://stackoverflow.com/questions/1...files-in-cmake
Répétitif, peut être, mais ce n'est pas une chose que nous faisons tous les jours non plus. Je crois que le problème est le même sur les autotools et les développeurs s'en sont défendus et ont laissé ainsi.
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
Bonjour,
Je "reproche" à cmake exactement la même chose qu'à Ant: Pour des très gros projets qui ont besoin d'une certaine précision dans le scripting de la toolchain, c'est adapté, par contre réécrire à chaque fois un manifest pour de petits modules qu'on souhaite importer ailleurs, c'est vite décourageant. (parce qu'il faudra pratiquement la même structure minimale pour chaque manifest)Vous pouvez m’indiquer ce que vous trouvez répétitif dans cmake ? J'en ai fait un peu, et ça m'avais semblé assez direct (bien que parfois étrange) comme syntaxe.
Ce que je trouve répétitif: la déclaration des dépendances, ça m'a vite calmé quand j'ai vu l'exemple de cmake.org pour simplement linker une lib... (non pas que l'exemple soit à lui seul décourageant, mais devoir refaire toute la procédure à chaque déclaration, ça ne m'intéresse pas)
Et c'est le même problème pour Ant.
Cela n'a rien d'un troll, juste un constat personnel. (d'ailleurs ce topic n'introduisait pas au débat, sauf pour ceux qui en cherchent là où il n'y en a pas, évidemment)
Bonne journée.
Avant de poster: FAQ Rust; FAQ Dart; FAQ Java; FAQ JavaFX.
Vous souhaiteriez vous introduire au langage Rust ? C'est par ici ou ici !
Une question à propos du langage ? N'hésitez pas à vous rendre sur le forum !
Pour contribuer à la rubrique, vous pouvezme contacter par MP(Sorry, we're closed!) ou contacter directement la rédaction.
Sur ce point, je ne suis pas vraiment d'accord.
Par exemple, pour linker boost thread, il suffit de charger le module
et ensuite de l'ajouter dans les exécutables qui en ont besoin
Code : Sélectionner tout - Visualiser dans une fenêtre à part find_package( Boost COMPONENTS thread system REQUIRED )
Je vois difficilement comment faire plus simple; où alors j'ai mal compris le problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 add_executable( a.out main.cpp ) target_link_libraries( a.out ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY} )
Effectivement, l'édition de liens, quel que soit l'outil utilisé pour compiler du C++, a toujours été relativement répétitif. Mais cela n'a rien à voir avec l'outil permettant de configurer la compilation : c'est à cause du principe même d'une programmation modulaire, par laquelle nous veillons à ne mettre que "aussi peu de choses" que possible dans chaque unité de compilation.
Après, il faut bien forcément regrouper tous ces "petits morceaux" d'une manière ou d'une autre, afin d'obtenir l'exécutable final
Et ca, il n'y a rien à faire, C et C++ ont choisi une manière de faire (qui n'est très certainement pas la plus intéressante qui soit), et nous devons donc "faire avec". Et il n'y a au final aucun outil qui pourra nous macher le travail
Ca, malheureusement, tu n'as pas le choix : tôt ou tard, la chaine de compilation a besoin d'un certain nombre d'informations telles que:ça m'a vite calmé quand j'ai vu l'exemple de cmake.org pour simplement linker une lib... (non pas que l'exemple soit à lui seul décourageant, mais devoir refaire toute la procédure à chaque déclaration, ça ne m'intéresse pas)
- où aller chercher les fichiers d'en-tête
- où aller chercher les bibliothèques afin de founir la partie binaire correspondant aux fonctionnalités issues des bibliothèques tierces
Et comme tout nous incite à travailler par module, par bibliothèques (si possible en faisant en sorte que chaque module soit aussi indépendant que faire se peu des autres), il faut bien trouver le moyen de fournir ces informations d'une manière ou d'une autre.
Et oui, cela signifie que, si tu as dix modules différents dans ton projet, hé bien, tu devras veiller à fournir toutes les informations nécessaires à chacun de ces modules, et donc, que tu retrouveras certaines de ces informations à plusieurs endroits.
Mais, si tu organises correctement ces dix modules, il est tout à fait possible de faire en sorte d'ajouter automatiquement la dépendance sur "le dernier module précédant" pour qu'elle soit prise en compte pour "les modules qui seront compilés après", et ce, sans avoir besoin de copier quoi que ce soit (ou peu s'en faut).
Mais il ne faut pas oublier que cmake ou les autotools fonctionnent parfaitement sur des arborescences de dossiers particulièrement complexes, et que ce qu'il connaissent dans un dossier parent est connu dans le dossier enfant, et en définissant les bonnes variables aux bons endroits, il est parfaitement possible d'obtenir quelque chose où les répétitions se trouvent limitées aux stricte minimum
Si bien que je me pose sincèrement la question de savoir la répétition à laquelle tu dis avoir été confronté est du à l'outil ou à l'organisation même de ton projet.
Dis toi bien que je ne juge absolument pas là. Je ne sais rien du projet pour lequel tu as commencé à haïr cmake, je ne suis donc absolument pas en mesure de me faire la moindre opinion à son sujet. Mais il faut se rendre compte que, si le projet est physiquement mal organisé au départ (et je me garderai bien de dire que c'est le cas du tien), aucun outil ne pourras éviter de te prendre les pieds dans le tapis : les différents outils dont on dispose ne sont jamais que des aide, ce ne sont pas des solutions miracles
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Sous linux, les autotools c'est sympa je trouve.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager