Menu Fermer

Projets CMake dans Visual Studio

Le composant C++ CMake tools for Windows utilise la fonctionnalité Open Folder pour consommer directement les fichiers de projet CMake (tels que CMakeLists.txt) à des fins d’IntelliSense et de navigation. Les générateurs Ninja et Visual Studio sont tous deux pris en charge. Si vous utilisez un générateur Visual Studio, il génère un fichier de projet temporaire et le passe à msbuild.exe. Cependant, le projet n’est jamais chargé à des fins d’IntelliSense ou de navigation. Vous pouvez également importer un cache CMake existant.

Installation

Les outils CMake C++ pour Windows sont installés dans le cadre des charges de travail Développement de bureau avec C++ et Développement Linux avec C++. Pour plus d’informations, consultez la section Projets CMake multiplateformes.

Pour plus d’informations, consultez la section Installation de la charge de travail Linux C++ dans Visual Studio.

Intégration de l’IDE

Lorsque vous choisissez Fichier > Ouvrir > Dossier pour ouvrir un dossier contenant un CMakeLists.txt, les choses suivantes se produisent :

  • Visual Studio ajoute des éléments CMake au menu Projet, avec des commandes pour afficher et modifier les scripts CMake.

  • Solution Explorer affiche la structure du dossier et les fichiers.

  • Visual Studio exécute cmake.exe et génère le fichier de cache CMake (CMakeCache.txt) pour la configuration par défaut (x64 Debug). La ligne de commande CMake est affichée dans la fenêtre de sortie, ainsi que des sorties supplémentaires de CMake.

  • En arrière-plan, Visual Studio commence à indexer les fichiers source pour activer IntelliSense, les informations de navigation, le refactoring, etc. Pendant que vous travaillez, Visual Studio surveille les modifications dans l’éditeur et aussi sur le disque pour maintenir son index en synchronisation avec les sources.

Vous pouvez ouvrir des dossiers contenant un nombre quelconque de projets CMake. Visual Studio détecte et configure tous les fichiers CMakeLists.txt « racines » de votre espace de travail. Les opérations CMake (configurer, construire, déboguer), l’IntelliSense C++ et la navigation sont disponibles pour tous les projets CMake de votre espace de travail.

Vous pouvez également visualiser vos projets organisés logiquement par cibles. Choisissez la vue Cibles dans la liste déroulante de la barre d’outils de l’explorateur de solutions :

Cliquez sur le bouton Afficher tous les fichiers en haut de l’explorateur de solutions pour voir toute la sortie générée par CMake dans les dossiers out/build/<config>.

Visual Studio utilise un fichier de configuration appelé CMakeSettings.json. Ce fichier vous permet de définir et de stocker plusieurs configurations de construction, et de passer commodément de l’une à l’autre dans l’IDE. Une configuration est une construction Visual Studio qui encapsule les paramètres spécifiques à un type de construction donné. Les paramètres sont utilisés pour configurer les options de ligne de commande par défaut que Visual Studio transmet à cmake.exe. Vous pouvez également spécifier des options CMake supplémentaires ici, et définir toutes les variables supplémentaires que vous souhaitez. Toutes les options sont écrites dans le cache CMake, soit en tant que variables internes ou externes. Dans Visual Studio 2019, l’éditeur de paramètres CMake offre un moyen pratique de modifier vos paramètres. Pour plus d’informations, consultez Personnaliser les paramètres CMake.

Un paramètre, intelliSenseMode n’est pas transmis à CMake, mais est utilisé uniquement par Visual Studio.

Utilisez le fichier CMakeLists.txt dans chaque dossier de projet comme vous le feriez dans n’importe quel projet CMake. Vous pouvez spécifier des fichiers sources, trouver des bibliothèques, définir des options de compilateur et d’éditeur de liens, et spécifier d’autres informations liées au système de construction.

Pour passer des arguments à un exécutable au moment du débogage, vous pouvez utiliser un autre fichier appelé launch.vs.json. Dans certains scénarios, Visual Studio génère automatiquement ces fichiers. Vous pouvez les modifier manuellement, ou même créer le fichier vous-même.

Note

Pour d’autres types de projets Open Folder, deux fichiers JSON supplémentaires sont utilisés : CppProperties.json et tasks.vs.json. Aucun d’entre eux n’est pertinent pour les projets CMake.

Ouvrir un cache existant

Lorsque vous ouvrez un fichier de cache CMake existant (CMakeCache.txt), Visual Studio n’essaie pas de gérer votre cache et votre arbre de construction pour vous. Vos outils personnalisés ou préférés ont un contrôle total sur la façon dont CMake configure votre projet. Pour ouvrir un cache existant dans Visual Studio, choisissez Fichier > Ouvrir > CMake. Ensuite, naviguez vers un fichier CMakeCache.txt existant.

Vous pouvez ajouter un cache CMake existant à un projet ouvert. Cela se fait de la même manière que vous ajouteriez une nouvelle configuration. Pour plus d’informations, consultez notre article de blog sur l’ouverture d’un cache existant dans Visual Studio.

Construction de projets CMake

Pour construire un projet CMake, vous avez ces choix :

  1. Dans la barre d’outils Générale, trouvez la liste déroulante Configurations. Elle affiche probablement  » x64-Debug  » par défaut. Sélectionnez la configuration préférée et appuyez sur F5, ou cliquez sur le bouton Run (triangle vert) dans la barre d’outils. Le projet se construit automatiquement en premier, tout comme une solution Visual Studio.

  2. Cliquez avec le bouton droit sur CMakeLists.txt et sélectionnez Build dans le menu contextuel. Si vous avez plusieurs cibles dans votre structure de dossiers, vous pouvez choisir de les construire toutes ou seulement une cible spécifique.

  3. Dans le menu principal, sélectionnez Build > Build All (F7 ou Ctrl+Shift+B). Assurez-vous qu’une cible CMake est déjà sélectionnée dans la liste déroulante Startup Item de la barre d’outils Générale.

Comme vous pouvez vous y attendre, les résultats de la construction sont affichés dans la fenêtre de sortie et la liste des erreurs.

Dans un dossier avec plusieurs cibles de construction, vous pouvez spécifier quelle cible CMake construire : Choisissez l’élément Build dans le menu CMake ou le menu contextuel CMakeLists.txt pour spécifier la cible. Si vous entrez Ctrl+Shift+B dans un projet CMake, il construit le document actif actuel.

Débogage des projets CMake

Pour déboguer un projet CMake, choisissez la configuration préférée et appuyez sur F5, ou appuyez sur le bouton Run dans la barre d’outils. Si le bouton Run indique « Sélectionner l’élément de démarrage », sélectionnez la flèche déroulante. Choisissez la cible que vous voulez exécuter. (Dans un projet CMake, l’option  » Document actuel  » n’est valable que pour les fichiers .cpp.)

Les commandes Run ou F5 construisent d’abord le projet si des modifications ont été apportées depuis la précédente construction. Les modifications apportées à CMakeSettings.json entraînent la régénération du cache CMake.

Vous pouvez personnaliser une session de débogage CMake en définissant des propriétés dans le fichier launch.vs.json. Pour plus d’informations, voir Configurer les sessions de débogage CMake.

Just My Code pour les projets CMake

Lorsque vous construisez pour Windows à l’aide du compilateur MSVC, les projets CMake prennent en charge le débogage Just My Code. Pour modifier le paramètre Just My Code, allez dans Outils > Options > Débogage > Général.

Intégration de vcpkg

Si vous avez installé vcpkg, les projets CMake ouverts dans Visual Studio intègrent automatiquement le fichier toolchain vcpkg. Cela signifie qu’aucune configuration supplémentaire n’est nécessaire pour utiliser vcpkg avec vos projets CMake. Cette prise en charge fonctionne à la fois pour les installations vcpkg locales et pour les installations vcpkg sur les systèmes distants que vous ciblez. Ce comportement est désactivé automatiquement lorsque vous spécifiez toute autre chaîne d’outils dans votre configuration CMake Settings.

Personnaliser les retours de configuration

Par défaut, la plupart des messages de configuration sont supprimés, sauf en cas d’erreur. Vous pouvez voir tous les messages en activant cette fonctionnalité dans Tools > Options > CMake.

Modification des fichiers CMakeLists.txt

Pour modifier un fichier CMakeLists.txt, cliquez avec le bouton droit de la souris sur le fichier dans Solution Explorer et choisissez Ouvrir. Si vous apportez des modifications au fichier, une barre d’état jaune apparaît et vous informe qu’IntelliSense va se mettre à jour. Elle vous donne la possibilité d’annuler l’opération de mise à jour. Pour plus d’informations sur CMakeLists.txt, consultez la documentation CMake.

Dès que vous enregistrez le fichier, l’étape de configuration s’exécute à nouveau automatiquement et affiche des informations dans la fenêtre Sortie. Les erreurs et les avertissements sont affichés dans la liste des erreurs ou dans la fenêtre Sortie. Double-cliquez sur une erreur dans la liste d’erreurs pour naviguer vers la ligne incriminée dans CMakeLists.txt.

Étape de configuration de CMake

Lorsque vous apportez des modifications importantes aux fichiers CMakeSettings.json ou CMakeLists.txt, Visual Studio réexécute automatiquement l’étape de configuration de CMake. Si l’étape de configuration se termine sans erreur, les informations recueillies sont disponibles dans l’IntelliSense C++ et les services linguistiques. Elles sont également utilisées dans les opérations de construction et de débogage.

Dépannage des erreurs de cache CMake

Si vous avez besoin de plus d’informations sur l’état du cache CMake pour diagnostiquer un problème, ouvrez le menu principal Projet ou le menu contextuel CMakeLists.txt dans Solution Explorer pour exécuter l’une de ces commandes :

  • Voir le cache ouvre le fichier CMakeCache.txt du dossier racine de la construction dans l’éditeur. (Toutes les modifications que vous apportez ici à CMakeCache.txt sont effacées si vous nettoyez le cache. Pour apporter des modifications qui persistent après le nettoyage du cache, consultez Personnaliser les paramètres CMake.)

  • Ouvrir le dossier cache ouvre une fenêtre de l’Explorateur vers le dossier racine de la construction.

  • Clean Cache supprime le dossier racine de la construction afin que la prochaine étape de configuration de CMake démarre à partir d’un cache propre.

  • Générer le cache force l’étape de génération à s’exécuter même si Visual Studio considère que l’environnement est à jour.

Automatic cache generation can be disabled in the Tools > Options > CMake > General dialog.

Run CMake from the command line

If you have installed CMake from the Visual Studio Installer, you can run it from the command line by following these steps:

  1. Run the appropriate vsdevcmd.bat (x86/x64). For more information, see Building on the Command Line.

  2. Switch to your output folder.

  3. Run CMake to build/configure your app.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *