web-dev-qa-db-fra.com

Utiliser Cmake avec Qt Creator

J'aimerais utiliser Qt creator et Cmake ensemble (s'il vous plaît, ne me posez pas de question sur ma motivation, acceptez cela comme une donnée.)

J'ai configuré avec succès Qt Creator pour qu'il utilise cmake "Cmake": voir this , this et this des documents expliquant comment je l'ai fait.

J'ai réussi à créer le projet hello world, mais je ne peux pas créer de fichiers dans le projet, mais seulement à ajouter des fichiers existants à l'arborescence du projet, puis à l'ajouter à la liste cmake . ne fonctionne pas et je ne trouve pas pourquoi.

Est-ce que quelqu'un utilise Qt creator et "Cmake" ensemble? La combinaison est-elle réellement possible? 

Remarque: j'utilise Qt creator v2.4.1.

20
themean

Vous pouvez ajouter des fichiers en utilisant une expression globale dans votre CMakeLists.txt, comme ceci:

file(GLOB SRC . *.cpp)
add_executable (your_exe_name ${SRC})

Cmake choisira vos nouveaux fichiers cpp la prochaine fois que vous l’exécuterez et QtCreator les affichera dans le navigateur du projet.

Mettre à jour

Cette solution peut être utile mais, comme indiqué dans les commentaires, ce n’est pas une bonne pratique. Chaque fois que quelqu'un ajoute un nouveau fichier source et valide des modifications, vous devez réexécuter cmake pour créer toutes les sources. Habituellement, je viens de touch l'un des fichiers CMakeLists.txt si ma construction est interrompue après le regroupement des modifications récentes du référentiel. Après cela, make fonctionnera automatiquement cmake et je n'aurais pas eu besoin de l'exécuter à la main. Malgré cela, je pense que les listes de sources explicites dans CMakeLists.txt sont une bonne chose, ils ont appelé chose CMake Lists pour une raison.

14
Lazin

Lorsque vous ajoutez de nouveaux fichiers dans QtCreator à l'aide de la boîte de dialogue "Nouveau fichier ou projet ...", il ne crée que les fichiers sur le disque. Il n'ajoute pas automatiquement les fichiers au fichier CMakeLists.txt. Vous devez le faire à la main en modifiant le fichier CMakeLists.txt.

Lors de la prochaine construction du projet, CMake sera ré-exécuté et QtCreator récupérera les nouveaux fichiers et les affichera dans le navigateur du projet.

10
alanxz

Je résous ce problème que j'ai ajouté de nouveaux fichiers de manière standard (CTRL + N), puis ajouté les fichiers nécessaires dans CMakeLists. Après cela, cliquez avec le bouton droit de la souris sur le projet dans l’arborescence du projet et choisissez l’option Run CMake. Après cela, les fichiers apparaissaient dans l'arborescence de la liste de projets. Seulement construire n'était pas suffisant.

5
chao

J'ai testé ici et ai eu le même comportement parce que les options que vous demandiez étaient vraiment désactivées. 

Utilisez Fichier -> "Nouveau fichier ou projet ..." ou CTRL + N pour ajouter de nouveaux fichiers, puis ajoutez-les à CMakeLists.txt. 

2
para.cavalcante

J'ajoute une réponse mise à jour pour les nouvelles versions de QtCreator (4.x). Dans le menu Outils> Options ..., choisissez la section Build & Run, puis l'onglet CMake. Vous verrez les paramètres Ajout de fichiers et vous pourrez le définir sur Copier les chemins de fichiers.

Ainsi, lorsque vous souhaitez ajouter un nouveau fichier à votre projet, dans la vue Projet, cliquez avec le bouton droit de la souris sur le nom de CMake Executable/Library souhaité et sélectionnez Ajouter nouveau ..., parcourez la Ajouter une boîte de dialogue, et lorsque vous validerez la boîte de dialogue, QtCreator ouvrira CMakeLists.txt dans la vue Editor. Enfin, collez le contenu du presse-papiers à la fin de la liste de fichiers source correspondante et enregistrez CMakeLists.txt. Le projet CMake sera analysé et votre nouveau fichier apparaîtra dans la vue Project.

0
aTom