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 :

Quels outils pour un "makefile portable" ?


Sujet :

Systèmes de compilation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut Quels outils pour un "makefile portable" ?
    Bonjour,

    Actuellement, je créé des petites bibliothèques avec QtCreator, il génère donc un .pro et un .pro.user.

    Mais je souhaiterais que les personnes qui souhaiteraient compiler mes bibliothèques n'aient pas besoin de télécharger QtCreator et puissent, quelque soit leur OS et leur IDE, compiler et installer les bibliothèques ou importer le projet dans leur IDE pour pouvoir travailler dessus.

    N.B. Il faudrait que la compilation et installation reste relativement simple pour être fait par des non-programmeurs.

    J'ai tout de suite pensé à CMake, mais j'ai aussi entendu parler de SCons, automake et premake.

    Quel(s) outil(s) me conseillez-vous? Pourquoi?

  2. #2
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Par défaut
    CMake est vraiment pratique et ne demande pas trop de ligne de code (contrairement au configure.ac que j'ai pu voir).
    Pour l'utilisateur, c'est toujours la même procédure (cd build, cmake .., make, make install). De plus CMake permet de vérifier (facilement) si les dépendances sont déjà installées (find_package, find_library)
    Avec Qt, il y a des commandes spécifiques (pour moc par exemple) (mais rien de bien méchant)

    Les solutions de compilation ne sont pas exclusives

  3. #3
    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 : 50
    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
    Par défaut
    Je plussoie largement l'utilisation de cmake. Le principal avantage que je lui voit est qu'il ne se contente pas de compiler du code, mais il génère des projets aux formats des IDE les plus courants, ce qui permet à ceux qui le souhaitent de travailler avec l'IDE de leur choix et de bénéficier des avantages procurés.

    J'ai fait la transition sur une grosse base de vieux code de simples makefile vers cmake, et le fait de pouvoir sous windows utiliser visual studio, avec sa complétion, son intellisense et tout, était un grand avantage !
    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.

  4. #4
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    N.B. Il faudrait que la compilation et installation reste relativement simple pour être fait par des non-programmeurs.
    A mon sens, l'installation de Qt (1 seul fichier à installer en général sur windows et linux, sur mac il faut également XCode) est probablement le plus simple en général (ide, compilateur et libs installé)

    La première question est est-ce que tu utilises Qt dans ton code ?

    Si tu fais du C++ standard sans lib, il faudra quand même installer cmake et il faudra configurer l'ide si l'utilisateur ne l'a pas encore fait ou (pire) utiliser le mode console

    Avec des libs (non Qt), on faudra installer séparément les libs, chacune ayant probablement leurs propres systèmes de compilation (j'aime beaucoup boost, mais il faut avouer que l'install sous windows est pénible...)
    Déjà là, tu as perdu tous tes utilisateurs non dev

    L'utilisation de Qt te permet d'avoir un seul code, une seule lib pour la majorité des fonctionnalités (ihm, réseau, fichier, etc),un seul ide, un seul système de compilation
    Ca reste à mon sens le plus simple (pour débutant ou non)
    (et le moc, osef, perso, j'ai jamais eu à l'appeler manuellement en utilisant qt Creator)

    Sinon, le plus simple reste quand même de fournir tes libs déjà compilé

  5. #5
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Citation Envoyé par gbdivers Voir le message
    La première question est est-ce que tu utilises Qt dans ton code ?
    Non, je n'utilise pas Qt pour des raisons de licences.

    Citation Envoyé par gbdivers Voir le message
    Avec des libs (non Qt), on faudra installer séparément les libs, chacune ayant probablement leurs propres systèmes de compilation (j'aime beaucoup boost, mais il faut avouer que l'install sous windows est pénible...)
    Déjà là, tu as perdu tous tes utilisateurs non dev
    Je suis un peu obligé d'utiliser boost

    Citation Envoyé par gbdivers Voir le message
    L'utilisation de Qt te permet d'avoir un seul code, une seule lib pour la majorité des fonctionnalités (ihm, réseau, fichier, etc),un seul ide, un seul système de compilation
    Ca reste à mon sens le plus simple (pour débutant ou non)
    (et le moc, osef, perso, j'ai jamais eu à l'appeler manuellement en utilisant qt Creator)
    Certains programmeurs/utilisateurs n'ont peut être pas envie de télécharger QtCreator juste pour ça (et certains n'aiment peut être pas QtCreator ou préfèrent un autre IDE).
    De plus, dès qu'on change de poste, il faut éditer quelques paramètres dans le .pro

    Sinon, le plus simple reste quand même de fournir tes libs déjà compilé
    Je ne peux pas les compiler moi-même pour toutes les plate-formes, je préfère donc les compiler pour les plate-formes que je possèdes et fournir un moyen de les compiler soit-même (et de me les soumettre pour rajouter le nombre de versions disponibles).
    De plus, je ne vais pas tout recompiller à chaque commit mais plutôt à chaque sortie de release.

    Sinon j'ai commencé à lire un tutoriel sur CMake, j'ai vu qu'il est possible de générer des fichiers de projet à partir de fichiers CMake, mais est-il possible (et recommandable) de faire l'inverse?

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    J'ai fini le tutoriel sur CMake et je suis un peu perplexe.

    Apparemment, il faut renseigner dans le CMakecache les dossiers où trouver les bibliothèques ainsi que les dossiers où stocker le résultat de la compilation même si on compile une bibliothèque. Et ce pour chaque architecture/distribution.
    Cela me parait vraiment très étrange...

    Pour les bibliothèques requises, on peut utiliser le module Find, qui permettrait de trouver les bibliothèques plus facilement mais j'ai du mal à comprendre son fonctionnement et son utilité.
    Sinon, si une dépendance (source/bibliothèque) est manquante, est-il possible d'indiquer une URL où la télécharger et de la compiler automatiquement dans le cas d'une bibliothèque ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel outil pour diagrame UML pour Java ?
    Par yup dans le forum Outils
    Réponses: 5
    Dernier message: 27/08/2004, 16h24
  2. [Revue de code] Quels outils pour de grosses applis?
    Par franckR dans le forum Choisir un environnement de développement
    Réponses: 1
    Dernier message: 21/03/2004, 10h03
  3. Quel Outil pour les applis Industrielles ET bases de données
    Par ThierryAIM dans le forum Débats sur le développement - Le Best Of
    Réponses: 8
    Dernier message: 23/04/2003, 09h14
  4. Quel outil pour du développement Client/Serveur (Win XP) ?
    Par jey_bonnet dans le forum Débats sur le développement - Le Best Of
    Réponses: 5
    Dernier message: 02/11/2002, 14h57

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