Menu Sluiten

CMake projecten in Visual Studio

De C++ CMake tools voor Windows component gebruikt de Open Folder functie om CMake project bestanden (zoals CMakeLists.txt) direct te consumeren voor de doeleinden van IntelliSense en browsen. Zowel Ninja als Visual Studio generators worden ondersteund. Als je een Visual Studio generator gebruikt, genereert het een tijdelijk projectbestand en geeft het door aan msbuild.exe. Het project wordt echter nooit geladen voor IntelliSense of browsing doeleinden. U kunt ook een bestaande CMake cache importeren.

Installatie

C++ CMake tools voor Windows wordt geïnstalleerd als onderdeel van de Desktop ontwikkeling met C++ en Linux Ontwikkeling met C++ werklasten. Zie Cross-platform CMake-projecten voor meer informatie.

Voor meer informatie, zie De C++ Linux-werklast installeren in Visual Studio.

IDE Integratie

Wanneer u File > Open > Map kiest om een map te openen die een CMakeLists.txt-bestand bevat, gebeuren de volgende dingen:

  • Visual Studio voegt CMake-items toe aan het Project-menu, met opdrachten voor het bekijken en bewerken van CMake-scripts.

  • Solution Explorer geeft de mapstructuur en bestanden weer.

  • Visual Studio voert cmake.exe uit en genereert het CMake-cachebestand (CMakeCache.txt) voor de standaardconfiguratie (x64 Debug). De opdrachtregel van CMake wordt weergegeven in het uitvoervenster, samen met aanvullende uitvoer van CMake.

  • Op de achtergrond begint Visual Studio met het indexeren van de bronbestanden om IntelliSense, browse-informatie, refactoring, enzovoort mogelijk te maken. Terwijl u werkt, controleert Visual Studio de wijzigingen in de editor en ook op schijf om de index synchroon te houden met de bronnen.

U kunt mappen openen die een willekeurig aantal CMake-projecten bevatten. Visual Studio detecteert en configureert alle “root” CMakeLists.txt-bestanden in uw werkruimte. CMake-bewerkingen (configureren, bouwen, debuggen), C++ IntelliSense en browsen zijn beschikbaar voor alle CMake-projecten in uw werkruimte.

U kunt uw projecten ook logisch geordend op targets bekijken. Kies Targets in de vervolgkeuzelijst van de werkbalk Solution Explorer:

Klik op de knop Alle bestanden weergeven bovenin Solution Explorer om alle door CMake gegenereerde uitvoer in de mappen out/build/<config> te zien.

Visual Studio gebruikt een configuratiebestand genaamd CMakeSettings.json. Met dit bestand kunt u meerdere bouwconfiguraties definiëren en opslaan, en er in de IDE gemakkelijk tussen schakelen. Een configuratie is een Visual Studio constructie die instellingen inkapselt die specifiek zijn voor een bepaald bouwtype. De instellingen worden gebruikt om de standaard command-line opties te configureren die Visual Studio doorgeeft aan cmake.exe. U kunt hier ook extra CMake-opties opgeven, en eventuele extra variabelen definiëren. Alle opties worden naar de CMake-cache geschreven, hetzij als interne of externe variabelen. In Visual Studio 2019 biedt de CMake Settings Editor een handige manier om je instellingen te bewerken. Zie CMake-instellingen aanpassen voor meer informatie.

Een instelling, intelliSenseMode wordt niet doorgegeven aan CMake, maar wordt alleen door Visual Studio gebruikt.

Gebruik het CMakeLists.txt-bestand in elke projectmap, net zoals u in elk CMake-project zou doen. U kunt bronbestanden specificeren, bibliotheken vinden, compiler- en linkeropties instellen, en andere bouwsysteem-gerelateerde informatie opgeven.

Om argumenten aan een uitvoerbaar bestand door te geven tijdens debugtijd, kunt u een ander bestand gebruiken, genaamd launch.vs.json. In sommige scenario’s genereert Visual Studio deze bestanden automatisch. U kunt ze handmatig bewerken, of zelfs het bestand zelf maken.

Note

Voor andere soorten Open Map-projecten worden twee extra JSON-bestanden gebruikt: CppProperties.json en tasks.vs.json. Geen van beide zijn relevant voor CMake-projecten.

Een bestaande cache openen

Wanneer u een bestaand CMake-cachebestand (CMakeCache.txt) opent, probeert Visual Studio niet om uw cache en build tree voor u te beheren. Uw aangepaste of voorkeur tools hebben volledige controle over hoe CMake uw project configureert. Om een bestaande cache in Visual Studio te openen, kies je File > Open > CMake. Navigeer vervolgens naar een bestaand CMakeCache.txt bestand.

Je kunt een bestaande CMake cache toevoegen aan een open project. Dat gaat op dezelfde manier als wanneer je een nieuwe configuratie zou toevoegen. Zie voor meer informatie onze blogpost over het openen van een bestaande cache in Visual Studio.

Bouwen van CMake-projecten

Om een CMake-project te bouwen, heb je de volgende keuzes:

  1. In de werkbalk Algemeen, zoek je de vervolgkeuzelijst Configuraties. Waarschijnlijk staat hier standaard “x64-Debug”. Selecteer de gewenste configuratie en druk op F5, of klik op de knop Uitvoeren (groen driehoekje) op de werkbalk. Het project wordt automatisch eerst gebouwd, net als een Visual Studio-oplossing.

  2. Rechtsklik op CMakeLists.txt en selecteer Build (Bouwen) in het contextmenu. Als je meerdere targets in je mapstructuur hebt, kun je ervoor kiezen om ze allemaal te bouwen of slechts één specifiek target.

  3. Van het hoofdmenu, selecteer je Build > Build All (F7 of Ctrl+Shift+B). Zorg ervoor dat er al een CMake-doel is geselecteerd in de vervolgkeuzelijst Opstartitem in de werkbalk Algemeen.

Zoals u zou verwachten, worden de bouwresultaten weergegeven in het Uitvoervenster en de Foutenlijst.

In een map met meerdere bouwdoelen, kunt u opgeven welk CMake-doel u wilt bouwen: Kies het Build item in het CMake menu of het CMakeLists.txt context menu om het target te specificeren. Als u in een CMake project Ctrl+Shift+B invoert, wordt het huidige actieve document gebouwd.

Debuggen van CMake projecten

Om een CMake project te debuggen, kiest u de gewenste configuratie en drukt u op F5, of u drukt op de Run knop in de toolbar. Als de Uitvoeren-knop “Selecteer opstartitem” zegt, selecteer dan de dropdown-pijl. Kies de target die je wilt uitvoeren. (In een CMake-project is de optie “Huidig document” alleen geldig voor .cpp-bestanden.)

De opdrachten Uitvoeren of F5 bouwen eerst het project als er wijzigingen zijn aangebracht sinds de vorige keer dat het project werd gebouwd. Wijzigingen in CMakeSettings.json zorgen ervoor dat de CMake-cache opnieuw wordt gegenereerd.

Je kunt een CMake debug-sessie aanpassen door eigenschappen in te stellen in het bestand launch.vs.json. Zie CMake debug-sessies configureren voor meer informatie.

Just My Code voor CMake-projecten

Wanneer u bouwt voor Windows met de MSVC-compiler, hebben CMake-projecten ondersteuning voor Just My Code debugging. Om de Just My Code instelling te wijzigen, ga naar Extra > Opties > Debugging > Algemeen.

Vcpkg integratie

Als u vcpkg hebt geïnstalleerd, integreren CMake projecten die in Visual Studio worden geopend automatisch het vcpkg toolchain bestand. Dat betekent dat er geen extra configuratie nodig is om vcpkg te gebruiken met uw CMake projecten. Deze ondersteuning werkt zowel voor lokale vcpkg-installaties als voor vcpkg-installaties op systemen op afstand waarop u zich richt. Dit gedrag wordt automatisch uitgeschakeld als u een andere toolchain specificeert in uw CMake Instellingen configuratie.

Configuratie feedback aanpassen

De standaardinstelling is dat de meeste configuratie meldingen worden onderdrukt, tenzij er een fout is. U kunt alle berichten zien door deze functie in te schakelen in Tools > Options > CMake.

Editing CMakeLists.txt files

Om een CMakeLists.txt bestand te bewerken, klikt u met de rechtermuisknop op het bestand in Solution Explorer en kiest u Openen. Als je wijzigingen aanbrengt in het bestand, verschijnt er een gele statusbalk die je informeert dat IntelliSense zal updaten. Het geeft u een kans om de update operatie te annuleren. Raadpleeg de CMake-documentatie voor informatie over CMakeLists.txt.

Zodra u het bestand opslaat, wordt de configuratiestap automatisch opnieuw uitgevoerd en wordt informatie weergegeven in het uitvoervenster. Fouten en waarschuwingen worden weergegeven in de foutenlijst of in het uitvoervenster. Dubbelklik op een fout in de Error List om naar de betreffende regel in CMakeLists.txt te gaan.

CMake-configuratiestap

Wanneer u belangrijke wijzigingen aanbrengt in de bestanden CMakeSettings.json of CMakeLists.txt, voert Visual Studio de CMake-configuratiestap automatisch opnieuw uit. Als de configure stap zonder fouten wordt afgesloten, is de verzamelde informatie beschikbaar in C++ IntelliSense en language services. De informatie wordt ook gebruikt bij het bouwen en debuggen.

Fouten in de CMake-cache opsporen

Als u meer informatie nodig hebt over de toestand van de CMake-cache om een probleem vast te stellen, opent u het Project-hoofdmenu of het contextmenu CMakeLists.txt in Solution Explorer om een van de volgende opdrachten uit te voeren:

  • View Cache opent het CMakeCache.txt-bestand van de hoofdmap van de build in de editor. (Alle wijzigingen die je hier in CMakeCache.txt aanbrengt, worden gewist als je de cache opschoont. Zie CMake-instellingen aanpassen als u wijzigingen wilt aanbrengen die blijven bestaan nadat de cache is opgeschoond.)

  • Open Cache Folder opent een Verkenner-venster naar de hoofdmap van de build.

  • Clean Cache verwijdert de hoofdmap van de build, zodat de volgende CMake-configuratiestap start vanuit een schone cache.

  • Generate Cache dwingt de genereerstap uit te voeren, zelfs als Visual Studio van mening is dat de omgeving up-to-date is.

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.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *