Menu Chiudi

Progetti CMake in Visual Studio

Lo strumento C++ CMake per Windows usa la funzione Open Folder per consumare direttamente i file di progetto CMake (come CMakeLists.txt) ai fini dell’IntelliSense e della navigazione. Sono supportati sia i generatori Ninja che quelli di Visual Studio. Se usi un generatore di Visual Studio, genera un file di progetto temporaneo e lo passa a msbuild.exe. Tuttavia, il progetto non viene mai caricato per IntelliSense o per la navigazione. Puoi anche importare una cache CMake esistente.

Installazione

C++ CMake tools per Windows è installato come parte dei carichi di lavoro Desktop development with C++ e Linux Development with C++. Per maggiori informazioni, vedi Progetti CMake multipiattaforma.

Per maggiori informazioni, vedi Installare il carico di lavoro C++ Linux in Visual Studio.

IDE Integration

Quando scegli File > Open > Folder per aprire una cartella contenente un file CMakeLists.txt, accadono le seguenti cose:

  • Visual Studio aggiunge le voci CMake al menu Progetto, con comandi per visualizzare e modificare gli script CMake.

  • Solution Explorer visualizza la struttura della cartella e i file.

  • Visual Studio esegue cmake.exe e genera il file di cache CMake (CMakeCache.txt) per la configurazione di default (x64 Debug). La riga di comando di CMake viene visualizzata nella finestra di output, insieme ad altri output da CMake.

  • In background, Visual Studio inizia ad indicizzare i file sorgente per abilitare IntelliSense, informazioni di navigazione, refactoring e così via. Mentre lavori, Visual Studio controlla i cambiamenti nell’editor e anche sul disco per mantenere il suo indice in sincronia con i sorgenti.

Puoi aprire cartelle contenenti qualsiasi numero di progetti CMake. Visual Studio rileva e configura tutti i file CMakeLists.txt “root” nel tuo spazio di lavoro. Le operazioni CMake (configurare, costruire, debug), C++ IntelliSense, e la navigazione sono disponibili per tutti i progetti CMake nel tuo spazio di lavoro.

Puoi anche vedere i tuoi progetti organizzati logicamente per obiettivi. Scegli la vista Target dal menu a tendina nella barra degli strumenti di Solution Explorer:

Fai clic sul pulsante Show All Files in cima a Solution Explorer per vedere tutto l’output generato da CMake nelle cartelle out/build/<config>.

Visual Studio usa un file di configurazione chiamato CMakeSettings.json. Questo file permette di definire e memorizzare più configurazioni di compilazione, e passare comodamente da una all’altra nell’IDE. Una configurazione è un costrutto di Visual Studio che incapsula le impostazioni che sono specifiche per un dato tipo di build. Le impostazioni sono usate per configurare le opzioni predefinite della riga di comando che Visual Studio passa a cmake.exe. Puoi anche specificare opzioni CMake aggiuntive qui, e definire qualsiasi variabile aggiuntiva tu voglia. Tutte le opzioni sono scritte nella cache di CMake come variabili interne o esterne. In Visual Studio 2019, l’editor delle impostazioni di CMake fornisce un modo conveniente per modificare le impostazioni. Per maggiori informazioni, vedi Personalizzare le impostazioni di CMake.

Un’impostazione, intelliSenseMode non viene passata a CMake, ma viene utilizzata solo da Visual Studio.

Utilizza il file CMakeLists.txt in ogni cartella di progetto proprio come faresti in qualsiasi progetto CMake. Puoi specificare i file sorgente, trovare le librerie, impostare le opzioni del compilatore e del linker, e specificare altre informazioni relative al sistema di compilazione.

Per passare argomenti ad un eseguibile al momento del debug, puoi usare un altro file chiamato launch.vs.json. In alcuni scenari, Visual Studio genera automaticamente questi file. Puoi modificarli manualmente, o anche creare il file da solo.

Note

Per altri tipi di progetti Open Folder, vengono usati due file JSON aggiuntivi: CppProperties.json e tasks.vs.json. Nessuno di questi è rilevante per i progetti CMake.

Aprire una cache esistente

Quando apri un file di cache CMake esistente (CMakeCache.txt), Visual Studio non prova a gestire la tua cache e l’albero di costruzione per te. I tuoi strumenti personalizzati o preferiti hanno il controllo completo su come CMake configura il tuo progetto. Per aprire una cache esistente in Visual Studio, scegliete File > Open > CMake. Poi, naviga verso un file CMakeCache.txt esistente.

Puoi aggiungere una cache CMake esistente a un progetto aperto. Si fa nello stesso modo in cui si aggiungerebbe una nuova configurazione. Per maggiori informazioni, vedi il nostro post sul blog su come aprire una cache esistente in Visual Studio.

Costruire progetti CMake

Per costruire un progetto CMake, hai queste scelte:

  1. Nella barra degli strumenti General, trova il menu a tendina Configurations. Probabilmente mostra “x64-Debug” per impostazione predefinita. Seleziona la configurazione preferita e premi F5, o clicca il pulsante Run (triangolo verde) sulla barra degli strumenti. Il progetto costruisce automaticamente per primo, proprio come una soluzione di Visual Studio.

  2. Fai clic destro su CMakeLists.txt e seleziona Build dal menu contestuale. Se hai più target nella tua struttura di cartelle, puoi scegliere di costruire tutti o solo un target specifico.

  3. Dal menu principale, seleziona Build > Build All (F7 o Ctrl+Shift+B). Assicurati che un obiettivo CMake sia già selezionato nel menu a tendina Startup Item nella barra degli strumenti General.

Come ci si aspetta, i risultati della compilazione sono mostrati nella Output Window e nella Error List.

In una cartella con più obiettivi di compilazione, puoi specificare quale obiettivo CMake compilare: Scegli la voce Build nel menu CMake o il menu contestuale CMakeLists.txt per specificare il target. Se inserisci Ctrl+Shift+B in un progetto CMake, costruisce il documento attivo corrente.

Debug di progetti CMake

Per eseguire il debug di un progetto CMake, scegli la configurazione preferita e premi F5, o premi il pulsante Run nella barra degli strumenti. Se il pulsante Run dice “Select Startup Item”, seleziona la freccia a discesa. Scegli il target che vuoi eseguire. (In un progetto CMake, l’opzione “Current document” è valida solo per i file .cpp.)

I comandi Run o F5 costruiscono prima il progetto se sono state fatte delle modifiche dalla precedente build. Le modifiche a CMakeSettings.json causano la rigenerazione della cache di CMake.

Puoi personalizzare una sessione di debug di CMake impostando le proprietà nel file launch.vs.json. Per maggiori informazioni, vedi Configurare le sessioni di debug di CMake.

Just My Code per progetti CMake

Quando costruisci per Windows usando il compilatore MSVC, i progetti CMake hanno il supporto per il debug Just My Code. Per cambiare l’impostazione Just My Code, vai su Tools > Options > Debugging > General.

Integrazione vcpkg

Se hai installato vcpkg, i progetti CMake aperti in Visual Studio integrano automaticamente il file vcpkg toolchain. Ciò significa che non è richiesta alcuna configurazione aggiuntiva per usare vcpkg con i tuoi progetti CMake. Questo supporto funziona sia per installazioni locali di vcpkg che per installazioni di vcpkg su sistemi remoti a cui stai puntando. Questo comportamento è disabilitato automaticamente quando specifichi qualsiasi altra toolchain nella tua configurazione di CMake Settings.

Personalizza il feedback della configurazione

Per impostazione predefinita, la maggior parte dei messaggi di configurazione sono soppressi a meno che non ci sia un errore. Puoi vedere tutti i messaggi abilitando questa funzione in Tools > Options > CMake.

Modificare i file CMakeLists.txt

Per modificare un file CMakeLists.txt, clicca con il tasto destro sul file in Solution Explorer e scegli Open. Se fai delle modifiche al file, appare una barra di stato gialla che ti informa che IntelliSense si aggiornerà. Ti dà la possibilità di annullare l’operazione di aggiornamento. Per informazioni su CMakeLists.txt, vedi la documentazione di CMake.

Non appena salvi il file, il passo di configurazione viene automaticamente eseguito di nuovo e mostra informazioni nella finestra Output. Gli errori e gli avvertimenti sono mostrati nella Error List o nella finestra Output. Fai doppio click su un errore nella Error List per navigare alla linea incriminata in CMakeLists.txt.

CMake configure step

Quando fai delle modifiche significative al file CMakeSettings.json o al file CMakeLists.txt, Visual Studio riesegue automaticamente il passo CMake configure. Se il passo di configurazione finisce senza errori, le informazioni raccolte sono disponibili in C++ IntelliSense e nei servizi linguistici. È anche usato nelle operazioni di compilazione e debug.

Risolvere gli errori della cache di CMake

Se hai bisogno di maggiori informazioni sullo stato della cache di CMake per diagnosticare un problema, apri il menu principale del progetto o il menu contestuale CMakeLists.txt in Solution Explorer per eseguire uno di questi comandi:

  • View Cache apre il file CMakeCache.txt dalla cartella principale di compilazione nell’editor. (Qualsiasi modifica che fai qui a CMakeCache.txt viene cancellata se pulisci la cache. Per fare modifiche che persistono dopo che la cache è stata pulita, vedi Personalizzare le impostazioni di CMake.)

  • Open Cache Folder apre una finestra di Explorer alla cartella principale di build.

  • Clean Cache cancella la cartella principale di build in modo che il prossimo passo di configurazione di CMake inizi da una cache pulita.

  • Generate Cache forza il passo generate ad essere eseguito anche se Visual Studio considera l’ambiente aggiornato.

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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *