Projets CMake dans Visual Studio

CMake est un outil open source multiplateforme permettant de définir des processus de génération qui s’exécutent sur plusieurs plateformes. Cet article suppose que vous êtes familiarisé avec CMake. Pour plus d’informations sur CMake, consultez la documentation CMake. Le didacticiel CMake est un bon point de départ pour en savoir plus.

Notes

CMake est devenu de plus en plus intégré à Visual Studio au cours des dernières versions. Pour consulter la documentation de votre version préférée de Visual Studio, utilisez le contrôle sélecteur de version. Elle se trouve en haut de la table des matières de cette page.

la prise en charge native de Visual Studio pour CMake vous permet de modifier, générer et déboguer des projets CMake sur Windows, les systèmes Sous-système Windows pour Linux (WSL) et distants à partir de la même instance de Visual Studio. Les fichiers projet CMake (tels que CMakeLists.txt) sont consommés directement par Visual Studio à des fins de IntelliSense et de navigation. cmake.exeest appelé directement par Visual Studio pour la configuration et la génération de CMake.

Installation

Les outils CMake C++ pour Windows sont installés dans le cadre du développement Desktop avec C++ et le développement Linux avec des charges de travail C++. Les deux outils CMake CMake pour Windows et le développement Linux avec C++ sont requis pour le développement CMake multiplateforme.

Screenshot of the Desktop development with C plus plus dropdown selected and the C plus plus C Make tools for Windows option called out.

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

Intégration de l’IDE

Lorsque vous ouvrez un dossier contenant un CMakeLists.txt fichier, les choses suivantes se produisent.

A screenshot of the Start Window in Visual Studio.

  • Visual Studio ajoute des éléments CMake au menu Project, avec des commandes permettant d’afficher et de modifier des scripts CMake.

  • Le Explorateur de solutions affiche la structure de dossiers et les fichiers.

  • Visual Studio exécute CMake et génère le fichier de cache CMake (CMakeCache.txt) pour la configuration par défaut. La ligne de commande CMake s’affiche dans la fenêtre sortie, ainsi que d’autres sorties de CMake.

  • En arrière-plan, Visual Studio démarre pour indexer les fichiers sources afin d’activer IntelliSense, les informations de navigation, la refactorisation et ainsi de suite. Pendant que vous travaillez, Visual Studio surveille les changements dans l’éditeur et sur le disque pour synchroniser son index avec les sources.

Notes

À compter de Visual Studio 2022 version 17.1 Preview 2, si votre niveau CMakeLists.txt supérieur existe dans un sous-dossier et non à la racine de l’espace de travail, vous serez invité à activer l’intégration de CMake ou non. Pour plus d’informations, consultez L’activation partielle de CMake.

Une fois la génération du cache CMake réussie, vous pouvez également afficher vos projets organisés logiquement par cibles. Sélectionnez le bouton Sélectionner l’affichage dans la barre d’outils Explorateur de solutions. Dans la liste de Explorateur de solutions - Affichages, sélectionnez L’affichage Cibles CMake, puis appuyez sur Entrée pour ouvrir la vue cibles :

Screenshot of the Solution Explorer Views window with the C Make Targets View highlighted.

Choisissez le bouton Afficher tous les fichiers en haut de Explorateur de solutions pour afficher toutes les sorties générées par CMake dans les out/build/<config> dossiers.

Utilisez le CMakeLists.txt fichier dans chaque dossier de projet comme vous le feriez dans n’importe quel projet CMake. Vous pouvez spécifier des fichiers sources, rechercher des bibliothèques, définir les options du compilateur et de l’éditeur de liens, et spécifier d’autres informations relatives au système de génération. Pour plus d’informations sur les services de langage CMake fournis par Visual Studio, consultez Modification des fichiers CMakeLists.txt.

Visual Studio utilise un fichier de configuration CMake pour générer et générer le cache CMake. Pour plus d’informations, consultez Configuration des projets CMake et génération de projets CMake.

Pour passer des arguments à un exécutable au moment du débogage, vous pouvez utiliser un autre fichier appelé launch.vs.json. Pour plus d’informations sur le débogage de projets CMake multiplateformes dans Visual Studio, consultez Débogage de projets CMake.

La plupart des fonctionnalités de langage Visual Studio et C++ sont prises en charge par les projets CMake dans Visual Studio. Voici quelques exemples :

Notes

Pour d’autres types de projets Open Folder, un fichier CppProperties.json JSON supplémentaire est utilisé. Ce fichier n’est pas pertinent pour les projets CMake.

Configuration des projets CMake

L’étape de configuration CMake génère le système de génération de projet. Il équivaut à appeler cmake.exe à partir de la ligne de commande. Pour plus d’informations sur l’étape de configuration de CMake, consultez la documentation CMake.

Visual Studio utilise un fichier de configuration CMake pour générer et générer CMake. CMakePresets.jsonest pris en charge par Visual Studio 2019 version 16.10 ou ultérieure et est le fichier de configuration CMake recommandé. CMakePresets.jsonest pris en charge directement par CMake et peut être utilisé pour piloter la génération et la génération de CMake à partir de Visual Studio, à partir de VS Code, dans un pipeline d’intégration continue et à partir de la ligne de commande sur Windows, Linux et Mac. Pour plus d’informations sur CMakePresets.json, consultez Configurer et générer avec des présélections CMake. CMakeSettings.jsonest disponible pour les clients utilisant une version antérieure de Visual Studio. Pour plus d’informations sur CMakeSettings.json, consultez Personnaliser les paramètres de build CMake.

Lorsque vous apportez des modifications significatives à votre fichier de configuration CMake ou à un CMakeLists.txt fichier, Visual Studio exécute automatiquement l’étape de configuration de CMake. Vous pouvez appeler l’étape de configuration manuellement : sélectionnez Project > Configurer le cache à partir de la barre d’outils. Vous pouvez également modifier vos préférences de configuration dansOptions>outils>CMake>Général.

CMake configuration options.

Si l’étape de configuration se termine sans erreur, les informations disponibles sont les lecteurs C++ IntelliSense et les services linguistiques. Il est également utilisé dans les opérations de génération et de débogage.

Vous pouvez également ouvrir un cache CMake existant dans Visual Studio. Pour plus d’informations, consultez Ouvrir un cache existant.

Personnaliser les commentaires et les notifications de configuration

Par défaut, la plupart des messages de configuration sont supprimés, sauf s’il existe une erreur. Pour afficher tous les messages, sélectionnezOptions>outils>CMake>Activer la sortie de diagnostic CMake détaillée.

Vous pouvez également désactiver toutes les notifications de cache CMake (barres d’or) en désélectionnant Afficher la notification de cache CMake.

Résolution 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 Project ou le CMakeLists.txt menu contextuel dans Explorateur de solutions pour exécuter l’une de ces commandes :

  • Afficher CMakeCache.txt ouvre le CMakeCache.txt fichier à partir du répertoire de build 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 avoir nettoyé le cache, consultez Personnaliser les paramètres CMake ou Configurer et générer avec des présélections CMake.

  • Supprimer le cache et reconfigurer supprime le répertoire de build et reconfigure à partir d’un cache propre.

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

Génération de projets CMake

L’étape de génération CMake génère une arborescence binaire de projet déjà générée. Il équivaut à appeler cmake --build à partir de la ligne de commande. Pour plus d’informations sur l’étape de génération CMake, consultez la documentation CMake.

Pour générer un projet CMake, vous avez ces possibilités :

  1. Dans la barre d’outils, recherchez la liste déroulante Élément de démarrage . Sélectionnez la cible préférée et appuyez sur F5, ou choisissez le bouton Exécuter dans la barre d’outils. Le projet est d’abord généré automatiquement, comme une solution Visual Studio.

  2. Cliquez avec le bouton droit sur la cible CMake avec l’affichage cibles CMake actif dans le Explorateur de solutions, puis sélectionnez Générer dans le menu contextuel.

  3. Dans le menu principal, sélectionnez Générer > tout. Assurez-vous qu’une cible CMake est déjà sélectionnée dans la liste déroulante Élément de démarrage de la barre d’outils.

Comme attendu, les résultats de génération sont affichés dans la fenêtre sortie et la Liste des erreurs.

CMake build errors.

Modifier les paramètres de build

Visual Studio utilise un fichier de configuration CMake pour générer des builds CMake. Les fichiers de configuration CMake encapsulent des options de génération telles que des commutateurs d’outils de génération natifs et des variables d’environnement. S’il s’agit CMakePresets.json de votre fichier de configuration actif, consultez Configurer et générer avec des présélections CMake. S’il s’agit CMakeSettings.json de votre fichier de configuration actif, consultez Personnaliser les paramètres de build CMake. CMakePresets.jsonest disponible dans Visual Studio 2019 version 16.10 ou ultérieure et est le fichier de configuration CMake recommandé.

Débogage de projets CMake

Toutes les cibles CMake exécutables sont affichées dans la liste déroulante Élément de démarrage de la barre d’outils. Pour démarrer le débogage, sélectionnez-en un, puis appuyez sur le bouton Démarrer > le débogage dans la barre d’outils. Dans un projet CMake, l’option « Document actif » est valide uniquement pour les fichiers .cpp.

A screenshot of the Startup Item dropdown in a CMake project.

Les commandes Debug ou F5 créent d’abord le projet si des modifications ont été apportées depuis la génération précédente. Les modifications apportées au fichier de configuration CMake (CMakePresets.json ou ) ou CMakeSettings.jsonà une CMakeLists.txt cause de 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 personnaliser les paramètres de débogage d’une cible spécifique, sélectionnez la cible dans la liste déroulante Élément de démarrage, puis appuyez sur Déboguer > et Lancer Paramètres pour <la cible> active. Pour plus d’informations sur les sessions de débogage CMake, consultez Configurer des sessions de débogage CMake.

Juste mon code pour les projets CMake

Lorsque vous générez pour Windows à l’aide du compilateur MSVC, les projets CMake prennent en charge le débogage Just My Code. Pour modifier le paramètre Uniquement mon code, accédez à Outils>Options>de débogage>général.

Modifier et continuer pour les projets CMake

Lorsque vous générez pour Windows avec le compilateur MSVC, les projets CMake prennent en charge Edit et Continue. Ajoutez le code suivant à votre CMakeLists.txt fichier pour activer La modification et continuer.

if(MSVC)
  target_compile_options(<target> PUBLIC "/ZI")
  target_link_options(<target> PUBLIC "/INCREMENTAL")
endif()

Attacher à un projet CMake en cours d’exécution sur Linux

Visual Studio vous permet de déboguer un processus s’exécutant sur un système Linux distant ou WSL et de le déboguer avec le débogueur GDB. Pour commencer, sélectionnez Déboguer>Attacher au processus..., définissez le type de connexion sur SSH, puis sélectionnez votre cible de connexion dans la liste des connexions dans le Gestionnaire des connexions. Sélectionnez un processus dans la liste des processus disponibles, puis appuyez sur Attacher. GDB doit être installé sur votre ordinateur Linux. Pour plus d’informations sur les connexions SSH, consultez la Gestionnaire des connexions

A screenshot of the Attach to Process menu.

Activation partielle de CMake

Dans Visual Studio 2022 version 17.1 et ultérieure, la fonctionnalité CMake n’est pas activée automatiquement si votre dossier racine ne contient pas de CMakeLists.txt fichier. Au lieu de cela, une boîte de dialogue vous invite à activer la fonctionnalité CMake pour votre projet. Si vous refusez, la génération du cache CMake ne démarre pas et les configurations CMake (de CMakeSettings.json ou CMakePresets.json) n’apparaissent pas dans la liste déroulante de configuration. Si vous acceptez, vous êtes dirigé vers un fichier de configuration au niveau de l’espace de travail ( CMakeWorkspaceSettings.json stocké dans le .vs répertoire), pour spécifier les dossiers pour lequel vous souhaitez activer CMake. (Ces dossiers contiennent vos fichiers racines CMakeLists.txt ).

Les propriétés acceptées sont les suivantes :

Propriété Description
enableCMake Activez l’intégration de Visual Studio pour cet espace de travail.
sourceDirectory Chaîne ou tableau de chaînes spécifiant le répertoire ou les répertoires avec CMakeLists.txt. Les macros (telles que ${workspaceRoot}) sont autorisées. Les chemins relatifs sont basés sur la racine de l’espace de travail. Les répertoires en dehors de l’espace de travail actuel sont ignorés.

Vous pouvez accéder CMakeWorkspaceSettings.json à la commande de menu Project>CMake Workspace Paramètres à tout moment, même si la fonctionnalité CMake est actuellement désactivée.

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 arborescence de build 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.

Vous pouvez ajouter un cache CMake existant à un projet ouvert. Cette opération est effectuée de la même façon que vous ajouteriez une nouvelle configuration. Pour plus d’informations, consultez notre billet de blog sur l’ouverture d’un cache existant dans Visual Studio.

Notes

L’expérience de cache existante par défaut s’appuie sur cmake-server, qui a été supprimée de CMake dans la version 3.20. Pour continuer à utiliser les fonctionnalités de cache existantes dans Visual Studio 2019 version 16.10 et ultérieures, effectuez l’une des étapes suivantes :

  • Installez manuellement CMake version 3.19 ou antérieure. Ensuite, définissez la cmakeExecutable propriété dans votre configuration de cache existante pour utiliser cette version de CMake.
  • Dans votre configuration de cache existante, définissez la cacheGenerationCommand propriété pour permettre à Visual Studio demander les fichiers API CMake nécessaires. Pour plus d’informations sur cette propriété, consultez la référence CMakeSettings.json.
  • Utilisez un fichier de requête pour demander les fichiers API CMake lors de la génération de votre cache avant son ouverture dans Visual Studio. Pour obtenir des instructions sur les fichiers de requête, consultez la section suivante, résolution des problèmes de cache CMake avancés.

Résolution des problèmes de cache CMake avancés

Visual Studio utilise l’API basée sur les fichiers CMake (dans les versions 3.14 et ultérieures) pour remplir l’éditeur avec des informations spécifiques à votre structure de projet. Pour plus d’informations, consultez le billet de blog de l’équipe C++ sur les espaces de travail multi-racines et l’API basée sur des fichiers.

Avant de générer le cache CMake, vos outils personnalisés ou préférés peuvent avoir besoin de créer un fichier de requête nommé .cmake/api/v1/query/client-MicrosoftVS/query.json dans votre dossier de sortie de build (le dossier qui contient CMakeCache.txt). Le fichier de requête doit contenir ce contenu :

{"requests":[{"kind":"cache","version":2},{"kind":"cmakeFiles","version":1},{"kind":"codemodel","version":2}]}

Lorsque vos outils personnalisés ou préférés génèrent votre cache, CMake place les fichiers sous .cmake/api/v1/response cette Visual Studio utilise pour remplir l’éditeur avec des informations spécifiques à votre structure de projet.

Modification de CMakeLists.txt fichiers

Pour modifier un CMakeLists.txt fichier, cliquez avec le bouton droit sur le fichier dans Explorateur de solutions et choisissez Ouvrir. Si vous apportez des modifications au fichier, une barre d’état jaune s’affiche et vous informe que IntelliSense sera mis à jour. Il vous donne la possibilité d’annuler l’opération de mise à jour. Pour plus d’informations sur CMakeLists.txt, consultez la documentation CMake.

CMakeLists.txt file editing.

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

CMakeLists.txt file errors.

Services de langage pour CMake

Les services de langage pour CMake sont disponibles dans Visual Studio 2019 version 16.5 ou ultérieure. Il prend en charge les fonctionnalités de navigation de code telles que Go To Definition, Peek Definition et Find All References for CMake variables, functions et targets dans les fichiers de script CMake. Pour plus d’informations, consultez Navigation dans le code pour les scripts CMake.

Find All References on a CMake variable, target, or function.

Manipulation de projet CMake

La manipulation de projet CMake est disponible dans Visual Studio version 16.5 ou ultérieure de la version 2019. Project manipulation vous permet d’ajouter, de supprimer et de renommer des fichiers sources et des cibles dans votre projet CMake sans modifier manuellement vos scripts CMake. Lorsque vous ajoutez ou supprimez des fichiers du Explorateur de solutions, Visual Studio modifie automatiquement votre projet CMake. Il peut y avoir plusieurs endroits où il est logique d’ajouter ou de supprimer une référence à un script CMake. Si c’est le cas, Visual Studio vous demande où vous souhaitez apporter la modification et affiche un aperçu des modifications proposées. Pour obtenir des instructions pas à pas, consultez Ajouter, supprimer et renommer des fichiers et des cibles dans les projets CMake.

Resolving ambiguity with CMake project manipulation.

IntelliSense pour les projets CMake

Par défaut, Visual Studio utilise le mode IntelliSense qui correspond à l’architecture du compilateur et de la cible spécifiée par la configuration CMake active.

S’il CMakePresets.json s’agit de votre fichier de configuration CMake actif, vous pouvez spécifier IntelliSense options à l’aide intelliSenseMode et intelliSenseOptions dans le mappage du fournisseur Visual Studio Paramètres. Pour plus d’informations, consultez les informations de référence sur la carte du fournisseur Visual Studio Paramètres.

S’il CMakeSettings.json s’agit de votre fichier de configuration CMake actif, vous pouvez spécifier IntelliSense options à l’aide intelliSenseMode de CMakeSettings.json. Pour plus d’informations, consultez la CMakeSettings.json référence.

Configurer IntelliSense avec des fichiers de chaîne d’outils CMake

Dans Visual Studio 2019 version 16.9 et ultérieure, Visual Studio configure automatiquement les IntelliSense dans les projets CMake basés sur des variables CMake lorsque vous utilisez un fichier de chaîne d’outils CMake. Pour plus d’informations, consultez Configurer IntelliSense avec les fichiers de chaîne d’outils CMake.

Intégration de Vcpkg

Les projets CMake ouverts dans Visual Studio s’intègrent à vcpkg, un gestionnaire de dépendances C/C++ multiplateforme. Avant d’utiliser vcpkg avec Visual Studio, vous devez exécuter vcpkg integrate install. Pour obtenir des instructions et plus d’informations sur vcpkg, consultez la documentation vcpkg.

S’il CMakeSettings.json s’agit de votre fichier de configuration actif, Visual Studio transmet automatiquement le vcpkg fichier de chaîne d’outils (vcpkg.cmake) à CMake. Ce comportement est désactivé automatiquement lorsque vous spécifiez une autre chaîne d’outils dans votre configuration de Paramètres CMake.

S’il CMakePresets.json s’agit de votre fichier de configuration actif, vous devez définir le chemin d’accès vcpkg.cmake dans CMakePresets.json. Nous vous recommandons d’utiliser la VCPKG_ROOT variable d’environnement au lieu d’un chemin absolu pour conserver le fichier partageable. Pour plus d’informations, consultez Activer vcpkg intégration à CMake Presets. CMakePresets.jsonest disponible dans Visual Studio 2019 version 16.10 ou ultérieure et est le fichier de configuration CMake recommandé.

Exécuter CMake à partir de la ligne de commande

S’il CMakePresets.json s’agit de votre fichier de configuration CMake actif, vous pouvez facilement reproduire vos builds locales en dehors de Visual Studio. Pour plus d’informations, consultez Exécuter CMake à partir de la ligne de commande ou d’un pipeline CI. CMakePresets.jsonest pris en charge dans Visual Studio 2019 version 16.10 ou ultérieure et est le fichier de configuration CMake recommandé.

S’il CMakeSettings.json s’agit de votre fichier de configuration CMake actif, vous devez passer manuellement les arguments encodés dans votre CMakeSettings.json fichier à CMake. Si vous avez installé CMake à partir de Visual Studio Installer, vous pouvez l’exécuter à partir de la ligne de commande en suivant les étapes suivantes :

  1. Exécutez le fichier approprié vsdevcmd.bat (x86/x64). Pour plus d’informations, consultez Génération sur la ligne de commande .

  2. Revenez à votre dossier de sortie.

  3. Exécutez CMake pour générer ou configurer votre application.

Visual Studio 2017 offre une prise en charge enrichie de CMake, notamment des projets CMake multiplateformes. Le composant Visual C++ Tools pour CMake utilise la fonctionnalité Ouvrir le dossier pour permettre à l’IDE de consommer des fichiers projet CMake (tels que CMakeLists.txt) directement à des fins de IntelliSense et de navigation. Les générateurs Ninja et Visual Studio sont pris en charge. Si vous utilisez un générateur Visual Studio, il génère un fichier projet temporaire et le transmet à MSBuild. Toutefois, le projet n’est jamais chargé à des fins de navigation ou de IntelliSense. Vous pouvez également importer un cache CMake existant.

Installation

Visual C++ Tools pour CMake est installé dans le cadre du développement Desktop avec C++ et le développement Linux avec des charges de travail C++.

Screenshot of the Individual components tab with the Visual C plus plus tools for C make option called out.

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

Intégration de l’IDE

Lorsque vous choisissez Fichier > ouvert > dossier pour ouvrir un dossier contenant un CMakeLists.txt fichier, les événements suivants se produisent :

  • Visual Studio ajoute un élément de menu CMake au menu principal, avec des commandes pour voir et modifier les scripts CMake.

  • L’Explorateur de solutions affiche la structure de dossiers et les fichiers.

  • Visual Studio exécute CMake et génère éventuellement le cache CMake pour la configuration par défaut, qui est x86 Debug. La ligne de commande CMake s’affiche dans la fenêtre sortie, ainsi que d’autres sorties de CMake.

  • En arrière-plan, Visual Studio démarre pour indexer les fichiers sources afin d’activer IntelliSense, les informations de navigation, la refactorisation et ainsi de suite. Pendant que vous travaillez, Visual Studio surveille les changements dans l’éditeur et sur le disque pour synchroniser son index avec les sources.

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

CMake project with multiple roots.

Vous pouvez également voir vos projets organisées logiquement par cibles. Choisissez Targets view (Affichage des cibles) dans la liste déroulante dans la barre d’outils de l’Explorateur de solutions :

CMake targets view button.

Visual Studio utilise un fichier appelé CMakeSettings.json pour stocker des variables d’environnement ou des options de ligne de commande pour CMake. CMakeSettings.json vous permet également de définir et de stocker plusieurs configurations de build CMake. Vous pouvez facilement basculer entre eux dans l’IDE.

Sinon, utilisez le tout comme vous le CMakeLists.txt feriez dans n’importe quel projet CMake pour spécifier des fichiers sources, rechercher des bibliothèques, définir les options du compilateur et de l’éditeur de liens, et spécifier d’autres informations relatives au système de génération.

Si vous avez besoin 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.

Notes

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

Importer un cache existant

Lorsque vous importez un fichier existantCMakeCache.txt, Visual Studio extrait automatiquement des variables personnalisées et crée un fichier prérempli CMakeSettings.json en fonction de ces variables. Le cache d’origine n’est modifié d’aucune façon. Il peut toujours être utilisé à partir de la ligne de commande, ou avec l’outil ou l’IDE utilisé pour le générer. Le nouveau CMakeSettings.json fichier est placé en même temps que la racine CMakeLists.txtdu projet. Visual Studio génère un nouveau cache en fonction du fichier de paramètres. Vous pouvez remplacer la génération automatique du cache dans la boîte de dialogue Outils > Options > CMake > Général .

Le contenu du cache n’est pas importé en totalité. Des propriétés comme le générateur et l’emplacement des compilateurs sont remplacées par les valeurs par défaut qui fonctionnent avec l’IDE.

Pour importer un cache existant

  1. Dans le menu principal, choisissez Fichier > Ouvrir > CMake :

    Open CMake.

    Cette commande affiche l’Assistant Importation de CMake à partir du cache .

  2. Accédez au CMakeCache.txt fichier que vous souhaitez importer, puis choisissez OK. L’Assistant Importer un projet CMake à partir du cache apparaît :

    Import a CMake cache.

    Une fois l’Assistant terminé, vous pouvez voir le nouveau CMakeCache.txt fichier dans Explorateur de solutions en regard du fichier racine CMakeLists.txt de votre projet.

Génération de projets CMake

Pour générer un projet CMake, vous avez ces possibilités :

  1. Dans la barre d’outils Général, recherchez la liste déroulante Configurations. Il affiche probablement « Linux-Debug » ou « x64-Debug » par défaut. Sélectionnez la configuration par défaut et appuyez sur F5, ou choisissez le bouton Exécuter (triangle vert) dans la barre d’outils. Le projet est d’abord généré automatiquement, comme une solution Visual Studio.

  2. Cliquez avec CMakeLists.txt le bouton droit sur Explorateur de solutions, puis sélectionnez Générer dans le menu contextuel. Si vous avez plusieurs cibles dans votre structure de dossiers, vous pouvez choisir de générer toutes les cibles ou une seule cible spécifique.

  3. Dans le menu principal, sélectionnez Build > Solution (F7 ou Ctrl+Maj+B). Vérifiez qu’une cible CMake est déjà sélectionnée dans la liste déroulante Élément de démarrage dans la barre d’outils Général.

CMake build menu command.

Vous pouvez personnaliser les configurations de build, les variables d’environnement, les arguments de ligne de commande et d’autres paramètres dans le CMakeSettings.json fichier. Il vous permet d’apporter des modifications sans modifier le CMakeLists.txt fichier. Pour plus d’informations, consultez Personnaliser les paramètres CMake.

Comme attendu, les résultats de génération sont affichés dans la fenêtre sortie et la Liste des erreurs.

CMake build errors.

Dans un dossier avec plusieurs cibles de génération, vous pouvez spécifier la cible CMake à générer : choisissez l’élément Build dans le menu CMake ou le CMakeLists.txt menu contextuel pour spécifier la cible. Si vous entrez Ctrl+Maj+B dans un projet CMake, il génère le document actif actif.

Débogage de projets CMake

Pour déboguer un projet CMake, choisissez la configuration par défaut, puis appuyez sur F5. Ou appuyez sur le bouton Exécuter dans la barre d’outils. Si le bouton Exécuter indique « Sélectionner un élément de démarrage », sélectionnez la flèche déroulante et choisissez la cible à exécuter. (Dans un projet CMake, l’option « Document actif » est uniquement valide pour les fichiers .cpp.)

CMake run button.

Les commandes Exécuter ou F5 génèrent d’abord le projet si des modifications ont été apportées depuis la dernière génération.

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, consultez Configurer des sessions de débogage CMake.

Modification de CMakeLists.txt fichiers

Pour modifier un CMakeLists.txt fichier, cliquez avec le bouton droit sur le fichier dans Explorateur de solutions et choisissez Ouvrir. Si vous apportez des modifications au fichier, une barre d’état jaune s’affiche et vous informe que IntelliSense sera mis à jour. Il vous donne la possibilité d’annuler l’opération de mise à jour. Pour plus d’informations sur CMakeLists.txt, consultez la documentation CMake.

CMakeLists.txt file editing.

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

CMakeLists.txt file errors.

Étape de configuration CMake

Lorsque des modifications importantes sont apportées aux fichiers ou aux CMakeSettings.jsonCMakeLists.txt fichiers, Visual Studio réexécuter automatiquement l’étape de configuration de CMake. Si l’étape de configuration se termine sans erreur, les informations collectées sont disponibles en C++ IntelliSense et les services linguistiques. Il est également utilisé dans les opérations de génération et de débogage.

Plusieurs projets CMake peuvent utiliser le même nom de configuration CMake (par exemple, x86-Debug). Tous sont configurés et générés (dans leur propre dossier racine de build) lorsque cette configuration est sélectionnée. Vous pouvez déboguer les cibles de tous les projets CMake qui participent à cette configuration CMake.

CMake Build Only menu item.

Vous pouvez limiter les builds et les sessions de débogage à un sous-ensemble des projets dans l’espace de travail. Créez une configuration avec un nom unique dans le CMakeSettings.json fichier. Ensuite, appliquez la configuration à ces projets uniquement. Lorsque cette configuration est sélectionnée, IntelliSense et les commandes de build et de débogage s’appliquent uniquement à ces projets spécifiés.

Résolution 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 de CMake ou le CMakeLists.txt menu contextuel dans Explorateur de solutions pour exécuter l’une des commandes suivantes :

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

  • Ouvrir le dossier de cache ouvre une fenêtre de l’Explorateur dans le dossier racine de build.

  • Nettoyer le cache supprime le dossier racine de build pour que la prochaine étape de configuration 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 l’environnement à jour.

La génération automatique du cache peut être désactivée dans la boîte de dialogue Options >> outils CMake > Général .

Compilation de fichiers uniques

Pour générer un seul fichier dans un projet CMake, cliquez avec le bouton droit sur le fichier dans Explorateur de solutions. Choisissez Compiler dans le menu contextuel. Vous pouvez également générer le fichier actuellement ouvert dans l’éditeur à l’aide du menu CMake principal :

CMake single file compilation.

Exécuter CMake à partir de la ligne de commande

Si vous avez installé CMake à partir de Visual Studio Installer, vous pouvez l’exécuter à partir de la ligne de commande en suivant les étapes suivantes :

  1. Exécutez le fichier approprié vsdevcmd.bat (x86/x64). Pour plus d’informations, consultez Génération sur la ligne de commande.

  2. Revenez à votre dossier de sortie.

  3. Exécutez CMake pour générer ou configurer votre application.

Dans Visual Studio 2015, les utilisateurs de Visual Studio peuvent utiliser un générateur CMake pour générer des fichiers projet MSBuild, consommés ensuite par l’IDE pour IntelliSense, la navigation et la compilation.

Voir aussi

Tutoriel : Créer des projets multiplateformes C++ dans Visual Studio
Configurer un projet CMake Linux
Se connecter à un ordinateur Linux distant
Personnaliser des paramètres de génération CMake
CMakeSettings.json informations de référence sur le schéma
Configurer des sessions de débogage CMake
Déployer, exécuter et déboguer un projet Linux
Informations de référence sur la configuration prédéfinie de CMake