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

JetBrains Discussion :

CLion 2020.2 EAP2 apporte la prise en charge des projets Makefile dans l'EDI multiplateforme pour C et C++


Sujet :

JetBrains

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    8 992
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 8 992
    Points : 208 009
    Points
    208 009
    Par défaut CLion 2020.2 EAP2 apporte la prise en charge des projets Makefile dans l'EDI multiplateforme pour C et C++
    CLion 2020.2 EAP2 apporte la prise en charge des projets Makefile dans l'EDI multiplateforme pour C et C++,
    JetBrains assure qu’elle permet déjà de gérer une longue liste de projets

    CLion est un EDI multiplateforme pour C et C++ proposé par JetBrains. Dans sa version 2020.1, CLion apporte de nombreuses améliorations et nouveautés comme l’analyse de code à la volée ou encore une vue d'ensemble de votre projet avec des valeurs de variables qui s'affichent directement dans l'éditeur pendant le débogage.

    L’éditeur propose déjà une EAP de la prochaine mise à jour de son EDI, CLion 2020.2 EAP2. Celle-ci s’accompagne de la très attendue prise en charge des projets Makefile. Bien que cette prise en charge n’en soit encore qu’à ses débuts, avec diverses limitations et problèmes connus, JetBrains assure qu’elle permet déjà de gérer une longue liste de projets.

    L’approche de JetBrains pour l’implémentation

    En début d’année, JetBrains a partagé ses conclusions et décrit l’approche qu’il a décidé d’adopter pour la prise en charge des projets Makefile dans CLion. À cette occasion, il a présenté les approches choisies par divers EDI et éditeurs C++ modernes pour gérer le Makefile :
    • Les wrappers du compilateur sont utilisés pour encapsuler les appels réels du compilateur, puis une build full clean est effectuée et les informations du projet sont extraites.
    • La variable d’environnement LD_PRELOAD est utilisée et une bibliothèque dynamique spécifique est chargée avant l’exécution de tout processus de build pour intercepter les appels du compilateur et collecter les informations du projet.
    • La sortie de la commande make est analysée, souvent utilisée avec l’option --just-print pour éviter une build réelle.

    JetBrains a noté que la troisième option offre plusieurs avantages majeurs :
    • Elle n’affecte pas le processus de build.
    • Elle permet de collecter les informations plus rapidement par rapport à la build complète du projet.
    • Elle fonctionnerait en tant qu’option « portable », car l’EDI peut théoriquement commencer avec la sortie Make enregistrée sur une autre machine.

    Aussi, il a décidé d’adopter la troisième approche et a implémenté un prototype. Il l’a testé sur une longue liste de projets et a fourni un tableau pour indiquer ceux qui marchent, les problèmes connus et apporter différents commentaires. Par exemple, l’approche fonctionne avec le projet Nano, mais JetBrains note que « config.h ainsi que certains autres en-têtes disparaissent parfois de la vue Project Source Files ».

    Comment démarrer avec votre projet Makefile dans CLion

    Pour ouvrir un projet Makefile dans CLion :
    • Sélectionnez le projet dans File | Open.
    • Vous pouvez ouvrir un dossier en tant que projet et CLion recherchera les fichiers Makefile de niveau supérieur (ainsi que les fichiers CMakeList.txt ou compile_commands.json) et suggérera de l’ouvrir en tant que projet. Vous pouvez aussi pointer directement CLion vers un Makefile dans la boîte de dialogue Open.
    • CLion vous demandera peut-être de nettoyer le projet. Cette étape est nécessaire, car la build Make est incrémentielle et si elle s’exécute sur un projet non nettoyé, le rechargement du projet ne fonctionne pas correctement et ne prend pas en compte les fichiers inchangés, donc seuls les fichiers mis à jour sont compilés.
    • CLion va maintenant essayer de charger le projet.
    • Dès que le projet est correctement chargé, vous pouvez commencer à travailler dessus dans CLion et bénéficier ainsi de toutes les fonctionnalités intelligentes de l’IDE.


    Nom : clion.png
Affichages : 31764
Taille : 303,8 Ko

    Vous pouvez jouer sur certains paramètres clés si les réglages par défaut ne vous conviennent pas. Cliquez sur Settings/Preferences | Build, Execution, Deployment | Makefile settings :

    Nom : Clion1.png
Affichages : 1538
Taille : 21,1 Ko

    Ici, vous pouvez changer les éléments suivants :
    • La Chaîne d’outils utilisée pour charger le projet Makefile. Toutes les chaînes d’outils locales (Clang, GCC, MinGW, Cygwin, WSL) sont prises en charge. La chaîne d’outils Visual Studio s’appuie sur NMake, qui n’est actuellement pas pris en charge, mais si vous parvenez à générer votre projet à l’aide de GNU Make, il fonctionnera dans CLion. Le mode à distance n’est pas encore inclus.
    • Les Arguments utilisés pour appeler la commande make dans CLion afin d’extraire les informations du projet.
    • Les cibles Build et Clean utilisées avec la commande make dans CLion pour extraire les informations du projet. Pour Build, un champ vide signifie que CLion prend la première cible spécifiée dans le Makefile du projet.

    Problèmes et limitations connus

    La partie la plus fragile de l’algorithme utilisé est l’extraction des commandes de compilation de la sortie de la commande make. JetBrains a constaté des problèmes dans certains cas
    • Le projet supprime l’impression des répertoires. Et donc l’algorithme ne parvient pas à détecter correctement les fichiers source en cours de génération.
    • Le compilateur est inconnu ou les indicateurs de compilation ne peuvent pas être extraits correctement. Plusieurs wrappers comme libtool aggravent les choses en masquant les indicateurs de compilation et en interférant avec la sortie du Make.

    L’éditeur a intégré plusieurs heuristiques pour surmonter les cas similaires à ceux rencontrés sur ses projets de test. Les utilisateurs peuvent également contrôler les arguments utilisés pour appeler la commande make lors de l’extraction des informations du projet : Settings/Preferences | Build, Execution, Deployment | Makefile | Arguments.

    Qu’est-il prévu pour la suite ?
    • Il existe un plugin de prise en charge de Makefile qui fournit la mise en évidence du code et une prise en charge partielle de la génération de projets make. JetBrains va le retravailler et l’intégrer dans CLion.
    • L’intégration des tests unitaires sera activée pour les projets Makefile ultérieurement.
    • Il est prévu d’ajouter la possibilité de lier Makefile à un projet existant.
    • La modification de la chaîne d’outils ou d’autres paramètres affectant le chargement du projet pour déclencher le rechargement.
    • Pour étendre la prise en charge des projets GNU Autotool, autoriser les utilisateurs à paramétrer l’étape de « préconfiguration » pour les projets Makefile.
    • Prendre en charge des Makes non GNU (NMake, BSD).
    • Implémenter l’approche avec les wrappers du compilateur pour la rendre fonctionnelle en combinaison avec l’approche actuelle.

    Liste des projets
    Téléchargez gratuitement CLion 2020.2 EAP2

    Source : JetBrains

  2. #2
    Membre actif
    Profil pro
    Ingenieur
    Inscrit en
    Décembre 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingenieur

    Informations forums :
    Inscription : Décembre 2003
    Messages : 138
    Points : 280
    Points
    280
    Par défaut Enfin!
    Enfin!

Discussions similaires

  1. La plateforme d'orchestration de containers Kubernetes passe en version 1.20
    Par Stéphane le calme dans le forum Cloud Computing
    Réponses: 2
    Dernier message: 10/12/2020, 15h43
  2. Réponses: 0
    Dernier message: 18/06/2020, 16h27
  3. Réponses: 0
    Dernier message: 13/04/2020, 21h00
  4. Réponses: 1
    Dernier message: 18/04/2019, 09h56
  5. Réponses: 5
    Dernier message: 23/05/2007, 18h48

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