L'importation d'un CMake projet dans Eclipse CDT
J'ai un natif CMake projet, et je veux utiliser le Eclipse IDE avec elle afin qu'elle me rend le développement plus facile en fournissant de l'auto-complétion et d'autres caractéristiques. Je n'arrive pas à trouver comment faire pour importer l'un CMake projet dans Eclipse.
PS: je suis ouvert aux suggestions pour d'autres IDE qui fonctionnent bien avec CMake.
Vous devez vous connecter pour publier un commentaire.
KDevelop est une super IDE avec beaucoup de CMake soutien.
Comme pour Eclipse - exécuter ceci:
Cela produira projet Eclipse pour vous.
D'élaborer sur arrowd réponse pour Eclipse:
Tout d'abord, choisissez un répertoire pour les fichiers CMake. Je préfère garder mon Eclipse espaces de travail dans
~/workspaces
et le code source dans~/src
. Les données dont j'ai besoin pour construire ou de tester le projet va dans les sous-dossiers du projet de l'espace de travail dir, donc je suggère de faire la même chose pour CMake.En supposant que les deux votre espace de travail et source de dossiers sont nommés
someproject
, n':Puis, dans votre workspace Eclipse n':
Fichier > Importer... > Général > Projets Existants dans l'espace de travail
Vérifier Sélectionner le répertoire racine et choisissez
~/workspaces/someproject/cmake
. Assurez-vous que Copie des projets dans l'espace de travail n'est PAS cochée.Cliquez sur Finition et vous avez un CMake projet dans votre espace de travail.
Deux choses à noter:
cmake
pour l'espace de travail sous répertoire, mais vous pouvez utiliser un nom de votre choix.Makefile.am
), vous aurez besoin de ré-exécuter la dernière commande dans l'ordre pour Eclipse pour ramasser les modifications.Je viens d'apprendre que CMake du CDT projet générateur de semble être laissés à l'abandon et a l'origine de différents problèmes—en particulier, il semble, avec les dernières versions d'Eclipse (dont j'ai eu ma part aussi).
La recommandation est d'utiliser cmake4eclipse (disponible à partir d'Eclipse Marketplace), qui utilise
CMakeLists.txt
comme sa seule source de vérité. Il vous permet également de conserver l'arborescence des sources distinctes à partir de votre espace de travail.En résumé, seuls les CDT générateur est actuellement une option viable. Pourquoi? Tout simplement parce que Eclipse doit obtenir le préprocesseur, les chemins d'inclusion, et quels fichiers sont inclus dans le construire à partir de quelque part. Sinon nous finirions l'indexation de tout, et mal, sans la bonne macros en cours de définition. Si vous avez coup de pouce à votre repo, ou d'une moyenne ou grande taille de l'arbre, de l'indexation de tout ce qui n'est tout simplement pas aller travailler dans le monde réel - pas avec la vitesse et la fiabilité de l'Éclipse de l'indexeur de toute façon. Comme la plupart des gens probablement besoin de Ninja pour les versions ces jours-ci (qui veut attendre plus de 30 secondes pour une ambiance chaleureuse construire juste pour voir ce qui est sale?), que la seule façon de l'importation de ces informations par l'intermédiaire des makefiles qui est actuellement pris en charge, sauf si vous voulez générer des deux systèmes de construction chaque fois que vous configurez, ce qui ferait de l'automatisation d'une vraie douleur (étant donné que cmake re-fonctionne même lorsque les listes de changement).
Dans Eclipse Photon, il ya une nouvelle option pour importer cmake directement les projets. Toutefois, à ce stade, je dirais qu'il semble la plupart du temps inutile pour rien d'autre que négligeable, car il ne semble pas être un moyen pour importer un déjà configuré répertoire de construction, ou n'importe où pour définir les variables et les arguments qui sont passés à cmake.
Je ne sais pas encore comment cette fonctionnalité fonctionne réellement, mais il semblerait que Eclipse doit être d'analyse à travers la hiérarchie de CMakeLists, suivant la logique de voir ce que add_subdirectory() les appels sont effectués, et ce préprocesseur, ce qui est apparemment une approche sans avenir, étant donné que nous avons cmake mode serveur pour exactement cela, et il faudra sans doute des émules de presque tout d'un cmake analyseur du langage dans Eclipse pour faire ce travail.
Jusqu'à présent, la seule solution viable qui semble répondre à de vrais besoins mondiaux semble être d'utiliser le cmake CDT générateur. Il peut obtenir les informations susvisées directement à partir de l'intérieur de cmake, et l'écrire dans le .cproject fichier. Comme mentionné précédemment, il n'est pas bien maintenu, et s'appuie sur un modèle obsolète pour la .cproject, ce qui provoque certains problèmes.
Mes propres exigences minimales pour cmake en charge sont:
Je ne vois pas comment faire tout avec rien, sauf le CDT générateur à présent, et la seule façon d'obtenir un travail et raffinée de la solution, il faut soit le piratage à cmake est un générateur ou un post-traitement de l'généré .cproject d'être sélectif sur ce qui est indexé (ie. pas tous CMAKE_SOURCE_DIRECTORY). C'est un autre hack (depuis cmake ne dispose d'aucun moyen de joindre post-configurer les tâches de la configuration de l'étape, nous avons à la fourche d'un processus, et de surveiller le parent cmake pour la résiliation. C'est une décision délibérée au nom de la cmake développeurs apparemment, et peut-être à juste titre)
Je serais certainement vraiment reconnaissant d'informations à une meilleure approche. L'état de cmake soutien dans Eclipse est assez triste pour un outil qui est censé être pour le développement en C++. L'indexeur (au moins quand il n'est pas accablé par sa régulière des blocages qui nécessitent le redémarrage d'Eclipse), est en fait parmi les meilleurs du marché, et Eclipse est un très bon environnement pour le saut d'obstacles autour du code.
Une solution simple sur mon bureau:
New -> New C/C++ Project -> Empty or Existing CMake Project
, choisir un nom de projet (par exemple, le projet).Ne le suit:
mkdir debug
(ou de la libération, ou tout autre nom)Assurez-vous de définir le droit Eclipse version
Puis ouvrez le dossier de l'Eclipse (Projets)