Sdílet prostřednictvím


Vlastní nastavení sestavení CMake

Visual Studio používá konfigurační soubor CMake k řízení generování a sestavení CMake. CMakePresets.json podporuje Visual Studio 2019 verze 16.10 nebo novější a je doporučeným konfiguračním souborem CMake. CMakePresets.json nástroj CMake podporuje přímo a dá se použít k řízení generování a sestavování CMake ze sady Visual Studio, z VS Code, v kanálu kontinuální integrace a z příkazového řádku ve Windows, Linuxu a Macu. Další informace najdete CMakePresets.jsonv tématu Konfigurace a sestavení pomocí předvoleb CMake.

Pokud udržujete projekty, které používají CMakeSettings.json soubor pro konfiguraci sestavení CMake, visual Studio 2019 a novější verze poskytují editor nastavení CMake. Editor umožňuje přidat konfigurace CMake a snadno přizpůsobit jejich nastavení. Má být jednodušší alternativou k ruční úpravě CMakeSettings.json souboru. Pokud ale chcete soubor upravit přímo, můžete v pravém horním rohu editoru vybrat odkaz Upravit JSON .

Editor nastavení CMake otevřete tak, že na hlavním panelu nástrojů vyberete rozevírací seznam Konfigurace a zvolíte Spravovat konfigurace.

Screenshot of the CMake configuration drop-down. Manage Configurations is highlighted.

Teď uvidíte editor Nastavení s nainstalovanými konfiguracemi na levé straně.

Screenshot of the CMake settings editor.

V levém podokně se zobrazují nainstalované konfigurace (x86–Debug). V pravém podokně se zobrazí nastavení pro vybranou konfiguraci. Nastavení zahrnují název konfigurace, typ konfigurace (nastavený na Ladění), sadu nástrojů (nastavenou na msvc_x86), soubor sady nástrojů CMake (prázdný), kořen sestavení (obsahuje ${env:USERPROFILE}\CMakeBuilds\${workspaceHash}\build\${name}), argumenty příkazu CMake (prázdné) a argumenty příkazu sestavení (-v).

Visual Studio ve výchozím nastavení poskytuje jednu x64-Debug konfiguraci. Další konfigurace můžete přidat výběrem zeleného znaménka plus. Nastavení, která vidíte v editoru, se můžou lišit v závislosti na tom, jakou konfiguraci je vybraná.

Možnosti, které zvolíte v editoru, se zapisují do souboru s názvem CMakeSettings.json. Tento soubor poskytuje argumenty příkazového řádku a proměnné prostředí, které se předávají CMake při sestavování projektů. Visual Studio se nikdy automaticky neupravuje CMakeLists.txt . Díky použití CMakeSettings.json sady Visual Studio můžete sestavení přizpůsobit prostřednictvím sady Visual Studio a nechat soubory projektu CMake nedotčené, aby je ostatní uživatelé ve vašem týmu mohli využívat s jinými nástroji, které používají.

Obecné Nastavení CMake

Následující nastavení jsou k dispozici pod nadpisem Obecné :

Název konfigurace

Odpovídá nastavení názvu. Tento název se zobrazí v rozevíracím seznamu konfigurace C++. Makro můžete použít ${name} k vytvoření dalších hodnot vlastností, jako jsou cesty.

Typ konfigurace

Odpovídá nastavení configurationType. Definuje typ konfigurace sestavení pro vybraný generátor. Aktuálně podporované hodnoty jsou Debug, MinSizeRel, Release a RelWithDebInfo. Mapuje se na CMAKE_BUILD_TYPE.

Sada nástrojů

Odpovídá nastavení zděděnéEnvironments. Definuje prostředí kompilátoru, které se používá k sestavení vybrané konfigurace. Podporované hodnoty závisí na typu konfigurace. Pokud chcete vytvořit vlastní prostředí, zvolte odkaz Upravit JSON v pravém horním rohu editoru Nastavení a upravte CMakeSettings.json soubor přímo.

CMake toolchain file

Cesta k souboru toolchain CMake. Tato cesta se předá CMake jako "-DCMAKE_TOOLCHAIN_FILE = <cesta k> souboru". Soubory sady nástrojů určují umístění kompilátorů a nástrojů sady nástrojů a dalších cílových platforem a informací souvisejících s kompilátorem. Visual Studio ve výchozím nastavení používá soubor vcpkg toolchain, pokud toto nastavení není zadané.

Kořen sestavení

Odpovídá buildRoot. Mapy do CMAKE_BINARY_DIRa určuje, kde se má vytvořit mezipaměť CMake. Zadaná složka se vytvoří, pokud neexistuje.

Argumenty příkazů

V záhlaví Argumenty příkazu jsou k dispozici následující nastavení:

Argumenty příkazu CMake

Odpovídá cmakeCommandArgs. Určuje další možnosti příkazového řádku předané CMake.

Argumenty příkazu sestavení

Odpovídá buildCommandArgs. Určuje více přepínačů, které se mají předat do základního systému sestavení. Předání například -v při použití generátoru Ninja vynutí Ninja výstup příkazové řádky.

Argumenty příkazu CTest

Odpovídá ctestCommandArgs. Určuje více možností příkazového řádku, které se mají předat CTest při spouštění testů.

Obecná nastavení pro vzdálené sestavení

Pro konfigurace, jako je Linux, které používají vzdálené sestavení, jsou k dispozici také následující nastavení:

rsync argumenty příkazu

Další možnosti příkazového řádku předané rsync, rychlý, všestranný nástroj pro kopírování souborů.

Proměnné CMake a mezipaměť

Tato nastavení umožňují nastavit proměnné CMake a uložit je do CMakeSettings.jsonsouboru . Předají se do CMake v době sestavení a přepíšou všechny hodnoty, které jsou v CMakeLists.txt souboru. Tento oddíl můžete použít stejným způsobem jako CMakeGUI k zobrazení seznamu všech proměnných CMake, které jsou k dispozici pro úpravy. Výběrem tlačítka Uložit a vygenerovat mezipaměť zobrazíte seznam všech proměnných CMake, které jsou k dispozici pro úpravy, včetně rozšířených proměnných (podle CMakeGUI). Seznam můžete filtrovat podle názvu proměnné.

Odpovídá proměnným. Obsahuje pár name-value proměnných CMake předaných jako -D name=value CMake. Pokud pokyny k sestavení projektu CMake určují přidání všech proměnných přímo do souboru mezipaměti CMake, doporučujeme je sem přidat.

Upřesnit nastavení

Generátor CMake

Odpovídá generátoru. Mapy k přepínači CMake -G a určuje generátor CMake, který se má použít. Tuto vlastnost lze také použít jako makro, ${generator}při vytváření jiných hodnot vlastností. Visual Studio aktuálně podporuje následující generátory CMake:

  • "Ninja"
  • "Unix Makefiles"
  • 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

Protože Ninja je navržen pro rychlé rychlosti sestavení místo flexibility a funkce, je nastavena jako výchozí. Některé projekty CMake ale nemusí správně sestavovat pomocí Ninja. V takovém případě můžete dát CMake pokyn, aby místo toho vygeneroval projekt sady Visual Studio.

Režim IntelliSense

Režim IntelliSense používaný modulem IntelliSense. Pokud není vybraný žádný režim, Sada Visual Studio zdědí režim ze zadané sady nástrojů.

Instalace adresáře

Adresář, ve kterém CMake instaluje cíle. Mapy do CMAKE_INSTALL_PREFIX.

Spustitelný soubor CMake

Úplná cesta ke spustitelnému souboru programu CMake, včetně názvu a přípony souboru. Umožňuje používat vlastní verzi CMake se sadou Visual Studio. V případě vzdálených sestavení zadejte umístění CMake na vzdáleném počítači.

Pro konfigurace, jako je Linux, které používají vzdálené sestavení, jsou k dispozici také následující nastavení:

Vzdálený kořenový adresář CMakeLists.txt

Adresář na vzdáleném počítači, který obsahuje kořenový CMakeLists.txt soubor.

Kořenový adresář vzdálené instalace

Adresář na vzdáleném počítači, ve kterém CMake instaluje cíle. Mapy do CMAKE_INSTALL_PREFIX.

Zdroje vzdáleného kopírování

Určuje, jestli se mají zdrojové soubory kopírovat do vzdáleného počítače, a umožňuje určit, jestli se má použít rsync nebo sftp.

Přímo upravit CMake Nastavení.json

Můžete také přímo upravit CMakeSettings.json a vytvořit vlastní konfigurace. Editor Nastavení má v pravém horním rohu tlačítko Upravit JSON, které otevře soubor pro úpravy.

Následující příklad ukazuje ukázkovou konfiguraci, kterou můžete použít jako výchozí bod:

    {
      "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": ""
    },

Json IntelliSense vám pomůže upravit CMakeSettings.json soubor:

Screenshot of the CMake JSON IntelliSense pop-up in the editor.

Editor JSON vás také informuje, když zvolíte nekompatibilní nastavení.

Další informace o jednotlivých vlastnostech v souboru naleznete v tématu CMake Nastavení.json schema reference.

Visual Studio 2017 poskytuje několik konfigurací CMake, které definují, jak se CMake vyvolá za účelem vytvoření mezipaměti CMake pro daný projekt. Pokud chcete přidat novou konfiguraci, vyberte na panelu nástrojů rozevírací seznam konfigurace a zvolte Spravovat konfigurace:

Screenshot of Manage configurations selected in the drop-down.

Můžete si vybrat ze seznamu předdefinovaných konfigurací:

Add Configuration to CMake Settings dialog list of predefined configurations.

Při prvním výběru konfigurace vytvoří Visual Studio CMakeSettings.json soubor v kořenové složce projektu. Tento soubor slouží k opětovnému vytvoření souboru mezipaměti CMake, například po operaci Vyčištění .

Pokud chcete přidat další konfiguraci, klikněte pravým tlačítkem myši CMakeSettings.json a zvolte Přidat konfiguraci.

Screenshot of the shortcut menu with Add configuration selected.

Soubor můžete také upravit pomocí editoru Nastavení CMake. Klikněte pravým tlačítkem na CMakeSettings.json Průzkumník řešení a zvolte Upravit Nastavení CMake. Nebo v rozevíracím seznamu konfigurace v horní části okna editoru vyberte Spravovat konfigurace .

Můžete také přímo upravit CMakeSettings.json a vytvořit vlastní konfigurace. Následující příklad ukazuje ukázkovou konfiguraci, kterou můžete použít jako výchozí bod:

    {
      "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": ""
    },

Json IntelliSense vám pomůže upravit CMakeSettings.json soubor:

Screenshot of the CMake JSON IntelliSense pop-up in the editor.

Automaticky otevírané okno JSON IntelliSense pro "konfigurace" ukazuje buildCommandArgs, buildRoot, cmakeCommandArgs, configurationType, mimo jiné.

Další informace o jednotlivých vlastnostech v souboru naleznete CMakeSettings.json v referenčních informacích ke schématu.

Viz také

Projekty CMake v sadě Visual Studio
Konfigurace projektu Linux CMake
Připojení ke vzdálenému počítači s Linuxem
Konfigurace ladicích relací CMake
Nasazení, spuštění a ladění projektu Linux
Referenční informace o předdefinované konfiguraci CMake