Personalizzare le impostazioni di compilazione di CMake
Visual Studio usa un file di configurazione CMake per generare e compilare CMake. CMakePresets.json
è supportato da Visual Studio 2019 versione 16.10 o successiva ed è il file di configurazione CMake consigliato. CMakePresets.json
è supportato direttamente da CMake e può essere usato per guidare la generazione e la compilazione di CMake da Visual Studio, da VS Code, in una pipeline di integrazione continua e dalla riga di comando in Windows, Linux e Mac. Per altre informazioni su CMakePresets.json
, vedere Configurare e compilare con i set di impostazioni di CMake.
Se si mantengono progetti che usano un file per la CMakeSettings.json
configurazione di compilazione CMake, Visual Studio 2019 e versioni successive forniscono un editor delle impostazioni CMake. L'editor consente di aggiungere configurazioni CMake e personalizzare facilmente le impostazioni. Si intende essere un'alternativa più semplice alla modifica manuale del CMakeSettings.json
file. Tuttavia, se si preferisce modificare direttamente il file, è possibile selezionare il collegamento Modifica JSON in alto a destra dell'editor.
Per aprire l'editor delle impostazioni di CMake, selezionare l'elenco a discesa Configurazione nella barra degli strumenti principale e scegliere Gestisci configurazioni.
È ora possibile visualizzare l'Editor impostazioni con le configurazioni installate a sinistra.
Il riquadro sinistro mostra le configurazioni installate (x86-Debug). Il riquadro destro mostra le impostazioni per la configurazione selezionata. Le impostazioni includono il nome di configurazione, il tipo di configurazione (impostato su Debug), il set di strumenti (impostato su msvc_x86), il file della toolchain CMake (vuoto), la radice di compilazione (contiene ${env:USERPROFILE}\CMakeBuilds\${workspaceHash}\build\${name}), gli argomenti dei comandi CMake (vuoto) e gli argomenti dei comandi di compilazione (-v).
Visual Studio offre una x64-Debug
configurazione per impostazione predefinita. È possibile aggiungere altre configurazioni scegliendo il segno più verde. Le impostazioni visualizzate nell'editor possono variare a seconda della configurazione selezionata.
Le opzioni scelte nell'editor vengono scritte in un file denominato CMakeSettings.json
. Questo file fornisce gli argomenti della riga di comando e le variabili di ambiente che vengono passate a CMake quando si compilano i progetti. Visual Studio non modifica CMakeLists.txt
mai automaticamente. Usando CMakeSettings.json
è possibile personalizzare la compilazione tramite Visual Studio lasciando invariati i file di progetto CMake in modo che altri utenti del team possano utilizzarli con qualsiasi strumento in uso.
Impostazioni generali di CMake
Le impostazioni seguenti sono disponibili sotto l'intestazione Generale:
Nome configurazione
Corrisponde all'impostazione name. Questo nome viene visualizzato nell'elenco a discesa configurazione C++. È possibile usare la macro ${name}
per la composizione di altri valori delle proprietà, come i percorsi.
Tipo configurazione
Corrisponde all'impostazione configurationType. Definisce il tipo di configurazione della build per il generatore selezionato. I valori attualmente supportati sono Debug, MinSizeRel, Release e RelWithDebInfo. Esegue il mapping a CMAKE_BUILD_TYPE
.
Set di strumenti
Corrisponde all'impostazione inheritedEnvironments. Definisce l'ambiente del compilatore usato per compilare la configurazione selezionata. I valori supportati dipendono dal tipo di configurazione. Per creare un ambiente personalizzato, scegliere il collegamento Modifica JSON nell'angolo superiore destro dell'editor impostazioni e modificare direttamente il CMakeSettings.json
file.
File della toolchain di CMake
Percorso del file toolchain CMake. Questo percorso viene passato a CMake come "-DCMAKE_TOOLCHAIN_FILE = <filepath>
. I file toolchain specificano i percorsi dei compilatori e delle utilità toolchain e altre informazioni relative alla piattaforma di destinazione e al compilatore. Per impostazione predefinita, Visual Studio usa il file toolchain vcpkg se questa impostazione non è specificata.
Radice compilazione
Corrisponde a buildRoot. Esegue il mapping a CMAKE_BINARY_DIR
e specifica dove creare la cache CMake. La cartella specificata viene creata se non esiste.
Gli argomenti del comando
Le impostazioni seguenti sono disponibili sotto l'intestazione Argomenti del comando:
Argomenti del comando CMake
Corrisponde a cmakeCommandArgs. Specifica altre opzioni della riga di comando passate a CMake.
Argomenti del comando Build
Corrisponde a buildCommandArgs. Specifica più opzioni da passare al sistema di compilazione sottostante. Ad esempio, passando -v
quando si usa il generatore Ninja forza Ninja a restituire le righe di comando.
Argomenti del comando CTest
Corrisponde a ctestCommandArgs. Specifica altre opzioni della riga di comando da passare a CTest durante l'esecuzione dei test.
Impostazioni generali per le compilazioni remote
Per le configurazioni come Linux che usano compilazioni remote, sono disponibili anche le impostazioni seguenti:
rsync
argomenti di comando
Opzioni della riga di comando aggiuntive passate a rsync
, uno strumento di copia file veloce e versatile.
Variabili e cache CMake
Queste impostazioni consentono di impostare le variabili CMake e salvarle in CMakeSettings.json
. Vengono passati a CMake in fase di compilazione ed eseguono l'override di qualsiasi valore nel CMakeLists.txt
file. È possibile usare questa sezione nello stesso modo in cui si potrebbe usare CMakeGUI per visualizzare un elenco di tutte le variabili CMake disponibili per la modifica. Scegliere il pulsante Salva e genera cache per visualizzare un elenco di tutte le variabili CMake disponibili per la modifica, incluse le variabili avanzate (in base a CMakeGUI). È possibile filtrare l'elenco in base al nome della variabile.
Corrisponde alle variabili. Contiene una coppia nome-valore di variabili CMake passate come -D name=value
A CMake. Se le istruzioni di compilazione del progetto CMake specificano l'aggiunta di qualsiasi variabile direttamente al file di cache CMake, è consigliabile aggiungerle qui.
Impostazioni avanzate
Generatore CMake
Corrisponde al generatore. Esegue il mapping al commutatore CMake -G
e specifica il generatore CMake da usare. Questa proprietà può essere usata anche come macro, ${generator}
, durante la composizione di altri valori di proprietà. Visual Studio supporta attualmente i generatori CMake seguenti:
- "Ninja"
- "Makefile Unix"
- "Visual Studio 16 2019"
- "Visual Studio 16 2019 Win64"
- "Visual Studio 16 2019 ARM"
- "Visual Studio 15 2017"
- "Visual Studio 15 2017 Win64"
- "Visual Studio 15 2017 ARM"
- "Visual Studio 14 2015"
- "Visual Studio 14 2015 Win64"
- "Visual Studio 14 2015 ARM"
Poiché Ninja è progettato per velocità di compilazione veloci anziché flessibilità e funzione, viene impostato come predefinito. Tuttavia, alcuni progetti CMake potrebbero non essere in grado di compilare correttamente usando Ninja. In tal caso, è possibile indicare a CMake di generare invece un progetto di Visual Studio.
Modalità IntelliSense
Modalità IntelliSense usata dal motore IntelliSense. Se non è selezionata alcuna modalità, Visual Studio eredita la modalità dal set di strumenti specificato.
Directory di installazione
Directory in cui CMake installa le destinazioni. Esegue il mapping a CMAKE_INSTALL_PREFIX
.
Eseguibile di CMake
Percorso completo dell'eseguibile del programma CMake, incluso il nome e l'estensione del file. Consente di usare una versione personalizzata di CMake con Visual Studio. Per le compilazioni remote, specificare il percorso di CMake nel computer remoto.
Per le configurazioni come Linux che usano compilazioni remote, sono disponibili anche le impostazioni seguenti:
Radice di CMakeLists.txt in computer remoto
Directory nel computer remoto che contiene il file radice CMakeLists.txt
.
Radice di installazione in computer remoto
Directory nel computer remoto in cui CMake installa le destinazioni. Esegue il mapping a CMAKE_INSTALL_PREFIX
.
Copia origini in computer remoto
Specifica se copiare i file di origine nel computer remoto e consente di specificare se usare rsync o sftp.
Modificare direttamente CMakeSettings.json
È anche possibile modificare CMakeSettings.json
direttamente per creare configurazioni personalizzate. L'Editor impostazioni dispone di un pulsante Modifica JSON nell'angolo in alto a destra che apre il file per la modifica.
Nell'esempio seguente viene illustrata una configurazione campione, che è possibile usare come punto di partenza:
{
"name": "x86-Debug",
"generator": "Ninja",
"configurationType": "Debug",
"inheritEnvironments": [ "msvc_x86" ],
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "-v",
"ctestCommandArgs": ""
},
IntelliSense JSON consente di modificare il file CMakeSettings.json
:
L'editor JSON informa anche quando si scelgono impostazioni incompatibili.
Per altre informazioni su ognuna delle proprietà nel file, vedere Informazioni di riferimento sullo schema CMakeSettings.json.
Visual Studio 2017 fornisce diverse configurazioni CMake che definiscono il modo in cui viene richiamato CMake per creare la cache CMake per un determinato progetto. Per aggiungere una nuova configurazione, selezionare l'elenco a discesa della configurazione nella barra degli strumenti e scegliere Gestisci configurazioni:
È possibile scegliere dall'elenco di configurazioni predefinite:
La prima volta che si seleziona una configurazione, Visual Studio crea un CMakeSettings.json
file nella cartella radice del progetto. Questo file viene usato per ricreare il file di cache CMake, ad esempio dopo un'operazione di pulizia.
Per aggiungere un'altra configurazione, fare clic con il pulsante destro del mouse CMakeSettings.json
e scegliere Aggiungi configurazione.
È anche possibile modificare il file usando l'Editor impostazioni CMake. Fare clic con il pulsante destro del mouse su CMakeSettings.json
in Esplora soluzioni e scegliere Modifica impostazioni CMake. In alternativa, selezionare Gestisci configurazioni dall'elenco a discesa della configurazione nella parte superiore della finestra dell'editor.
È anche possibile modificare CMakeSettings.json
direttamente per creare configurazioni personalizzate. Nell'esempio seguente viene illustrata una configurazione campione, che è possibile usare come punto di partenza:
{
"name": "x86-Debug",
"generator": "Ninja",
"configurationType": "Debug",
"inheritEnvironments": [ "msvc_x86" ],
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "-v",
"ctestCommandArgs": ""
},
IntelliSense JSON consente di modificare il file CMakeSettings.json
:
Il popup JSON IntelliSense per le "configurazioni" mostra buildCommandArgs, buildRoot, cmakeCommandArgs, configurationType, tra gli altri.
Per altre informazioni su ognuna delle proprietà nel file, vedere CMakeSettings.json
Informazioni di riferimento sullo schema.
Vedi anche
Progetti CMake in Visual Studio
Configurare un progetto CMake per Linux
Connettersi al computer Linux remoto
Configurare le sessioni di debug di CMake
Distribuire, eseguire e sottoporre a debug il progetto Linux
Informazioni di riferimento sulle configurazioni predefinite CMake