IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Systèmes de compilation Discussion :

Alternative aux makefiles, cmake (sans EDI)


Sujet :

Systèmes de compilation

  1. #21
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 113
    Points : 32 958
    Points
    32 958
    Billets dans le blog
    4
    Par défaut
    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.

  2. #22
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    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.

  3. #23
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2012
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2012
    Messages : 163
    Points : 624
    Points
    624
    Par défaut
    Je ne l'ai pas beaucoup utilisé mais meson a l'air sympa (simple, portable...).

    Sinon, il y a tup, qui est vraiment rapide et efficace, combiné à pkg-config.

  4. #24
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 611
    Points
    30 611
    Par défaut
    Citation Envoyé par Songbird_ Voir le message
    Bonjour tout le monde,


    Bon, j'apprécie les retours, là-dessus aucun problème, en revanche les discours moralisateurs un peu moins. Je n'ouvre pas un sujet pour que l'on me fasse une leçon mais bien recevoir de l'aide, comme je peux le faire à mon tour.
    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.
    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.
    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.

    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

  5. #25
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Points : 718
    Points
    718
    Par défaut
    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

  6. #26
    Membre expert

    Avatar de Songbird
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Juin 2015
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2015
    Messages : 493
    Points : 3 872
    Points
    3 872
    Billets dans le blog
    8
    Par défaut
    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.
    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.

    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 pouvez me contacter par MP (Sorry, we're closed!) ou contacter directement la rédaction.

  7. #27
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    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.

  8. #28
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2012
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2012
    Messages : 163
    Points : 624
    Points
    624
    Par défaut
    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

  9. #29
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    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.

  10. #30
    Membre expert

    Avatar de Songbird
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Juin 2015
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2015
    Messages : 493
    Points : 3 872
    Points
    3 872
    Billets dans le blog
    8
    Par défaut
    Bonjour,

    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.
    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)

    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 pouvez me contacter par MP (Sorry, we're closed!) ou contacter directement la rédaction.

  11. #31
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2012
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2012
    Messages : 163
    Points : 624
    Points
    624
    Par défaut
    Citation Envoyé par Songbird_ Voir le message
    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)
    Sur ce point, je ne suis pas vraiment d'accord.
    Par exemple, pour linker boost thread, il suffit de charger le module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find_package( Boost COMPONENTS thread system REQUIRED )
    et ensuite de l'ajouter dans les exécutables qui en ont besoin
    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} )
    Je vois difficilement comment faire plus simple; où alors j'ai mal compris le problème.

  12. #32
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 611
    Points
    30 611
    Par défaut
    Citation Envoyé par Songbird_ Voir le message
    Bonjour,

    Ce que je trouve répétitif: la déclaration des dépendances,
    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

    ç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)
    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:
    • 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

  13. #33
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 176
    Points
    1 176
    Par défaut
    Sous linux, les autotools c'est sympa je trouve.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. alternatives aux curseurs sans succès
    Par maxtin dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 21/09/2006, 15h15
  2. [CSS] Tableau aux coins arrondis (Sans images)
    Par FrankOVD dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 01/12/2005, 11h45
  3. alternatives aux propriétés filter sous mozilla
    Par rol666 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 29/08/2005, 20h23
  4. [Applet] alternative aux applets
    Par topaze dans le forum Applets
    Réponses: 18
    Dernier message: 09/12/2004, 17h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo