web-dev-qa-db-fra.com

cmake et netbeans peuvent-ils bien jouer?

Je travaille sur un gros projet, certains pourraient dire génial.

Le projet est développé en c ++ avec cmake et netbeans. Tout fonctionne bien, sauf du fait que chaque fois que je mets à jour le projet, j'ajoute ou supprime des fichiers source, netbeans exécute cmake et ajoute un nouveau projet à la liste des "projets". C'est un peu ennuyeux car j'ai tendance à faire beaucoup.

Existe-t-il un moyen intelligent de s'assurer que netbeans ne crée pas de nouveaux projets chaque fois qu'un sous-répertoire est ajouté?

34
Martin Kristiansen

Bonnes nouvelles!

Depuis NetBeans 6.8, CMake est géré avec élégance, comme tout autre script configure:

  1. Créez une nouvelle "Application C/C++ à partir de sources existantes".
  2. Spécifiez le répertoire du projet (où CMakeLists.txt réside).
  3. Dans le "Select configuration mode", sélectionnez "Automatic".

Et NetBeans exécutera cmake pour construire le Makefile quand c'est nécessaire
(ou lorsque vous cliquez sur "Reconfigurer le projet").

Voir le fil d'origine sur les forums NetBeans pour plus d'informations.

27
Alba Mendez

Les projets basés sur CMake fonctionnent parfaitement avec NetBeans.

Variation à jmendeth réponse:

  1. Créez un nouveau C/C++ Project with Existing Sources
  2. Définissez le chemin des projets (= répertoire du principal CMakeLists.txt)
  3. À Select Configuration mode défini Custom
  4. Cliquez sur Next
  5. Sélectionnez Run Configure Script in Subfolder (le dossier par défaut est build)
  6. Si vous n'avez pas d'autres paramètres, cliquez sur Next jusqu'à ce que vous puissiez cliquer sur Terminer
  7. Cliquez sur Finish, Cmake s'exécutera et construira votre projet

Cette méthode est un peu plus longue que l'automatique, mais en pratique, il s'agit simplement de définir deux ticks.

L'avantage et donc la raison des dépenses supplémentaires: CMake va maintenant mettre tous ses fichiers cache locaux dans un sous-dossier (build) et gardez-les séparés à un seul endroit - sans les mélanger avec vos autres projets.

Cela conserve une structure de projet propre, car ces fichiers sont uniquement pour votre projet et créés par chaque exécution de configuration.

Et en plus: si vous devez supprimer le cache CMake manuellement - cela arrive parfois - il y a un seul répertoire où tout se trouve.

Note latérale:

Depuis NetBeans 8.0 il y a coloration de la syntaxe pour tous les fichiers CMake.

24
ollo

J'obtenais cette erreur: "impossible de démarrer cmake: aucun fichier ou répertoire"

J'ai dû NetBeans -> Préférences -> C/C++ (Build Tools) -> définir la commande CMake sur/opt/local/bin/cmake.

6
berardino

J'utilise Cmake, netbeans et SVN avec un grand projet c ++, sans problème.

Je configure généralement le projet avec l'option "c ++ avec les sources existantes" et sélectionne le makefile généré par cmake afin que les netbeans ne sachent pas quel outil de création j'utilise. Sélectionnez ensuite uniquement les dossiers contenant les sources sur lesquelles vous devez travailler.

Chaque fois que vous mettez à jour les sources, vous devez mettre à jour votre Makefile (et le projet Netbeans mettra également à jour les sources) en exécutant cmake afin que vous puissiez le faire manuellement ou simplement dans la commande de construction du projet: "cmake .. && make" (c'est délicat mais ça marche bien). J'espère être utile.

4
JoniPichoni