Dostosowywanie ustawień kompilacji narzędzia CMake

Program Visual Studio używa pliku konfiguracji CMake do generowania i kompilowania narzędzia CMake. CMakePresets.json Program jest obsługiwany przez program Visual Studio 2019 w wersji 16.10 lub nowszej i jest zalecanym plikiem konfiguracji narzędzia CMake. CMakePresets.json program jest obsługiwany bezpośrednio przez narzędzie CMake i może służyć do generowania i kompilowania narzędzia CMake z poziomu programu Visual Studio, z programu VS Code w potoku ciągłej integracji oraz z wiersza polecenia w systemach Windows, Linux i Mac. Aby uzyskać więcej informacji na temat CMakePresets.jsonprogramu , zobacz Configure and build with CMake Presets (Konfigurowanie i kompilowanie przy użyciu ustawień wstępnych narzędzia CMake).

W przypadku obsługi projektów, które używają CMakeSettings.json pliku do konfiguracji kompilacji narzędzia CMake, program Visual Studio 2019 i nowsze wersje udostępniają edytor ustawień narzędzia CMake. Edytor umożliwia łatwe dodawanie konfiguracji narzędzia CMake i dostosowywanie ich ustawień. Ma to być prostsza alternatywa dla ręcznego edytowania CMakeSettings.json pliku. Jeśli jednak wolisz edytować plik bezpośrednio, możesz wybrać link Edytuj kod JSON w prawym górnym rogu edytora.

Aby otworzyć edytor ustawień narzędzia CMake, wybierz listę rozwijaną Konfiguracja na głównym pasku narzędzi i wybierz pozycję Zarządzaj konfiguracjami.

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

Teraz zobaczysz edytor Ustawienia z zainstalowanymi konfiguracjami po lewej stronie.

Screenshot of the CMake settings editor.

W lewym okienku są wyświetlane zainstalowane konfiguracje (x86-Debug). W okienku po prawej stronie zostaną wyświetlone ustawienia wybranej konfiguracji. Ustawienia obejmują nazwę konfiguracji, typ konfiguracji (ustawiony na Debugowanie), zestaw narzędzi (ustawiony na msvc_x86), plik łańcucha narzędzi CMake (pusty), katalog główny kompilacji (zawiera ${env:USERPROFILE}\CMakeBuilds\${workspaceHash}\build\${name}), argumenty poleceń narzędzia CMake (puste) i argumenty poleceń kompilacji (-v).

Program Visual Studio domyślnie udostępnia jedną x64-Debug konfigurację. Możesz dodać więcej konfiguracji, wybierając zielony znak plus. Ustawienia widoczne w edytorze mogą się różnić w zależności od wybranej konfiguracji.

Opcje wybrane w edytorze są zapisywane w pliku o nazwie CMakeSettings.json. Ten plik zawiera argumenty wiersza polecenia i zmienne środowiskowe, które są przekazywane do narzędzia CMake podczas kompilowania projektów. Program Visual Studio nigdy nie modyfikuje CMakeLists.txt się automatycznie. Za pomocą programu CMakeSettings.json Visual Studio można dostosować kompilację, pozostawiając pliki projektu CMake nietknięte, aby inni członkowie zespołu mogli korzystać z nich przy użyciu dowolnego używanego narzędzia.

Ustawienia ogólne narzędzia CMake

Następujące ustawienia są dostępne w nagłówku Ogólne :

Nazwa konfiguracji

Odpowiada ustawieniu nazwy . Ta nazwa jest wyświetlana na liście rozwijanej konfiguracji języka C++. Za pomocą makra ${name} można tworzyć inne wartości właściwości, takie jak ścieżki.

Typ konfiguracji

Odpowiada ustawieniu configurationType . Definiuje typ konfiguracji kompilacji dla wybranego generatora. Obecnie obsługiwane wartości to Debug, MinSizeRel, Release i RelWithDebInfo. Mapuje CMAKE_BUILD_TYPEna .

Zestaw narzędzi

Odpowiada dziedziczonemu ustawieniuEnvironments . Definiuje środowisko kompilatora używane do kompilowania wybranej konfiguracji. Obsługiwane wartości zależą od typu konfiguracji. Aby utworzyć środowisko niestandardowe, wybierz link Edytuj kod JSON w prawym górnym rogu edytora Ustawienia i edytuj CMakeSettings.json plik bezpośrednio.

Plik łańcucha narzędzi CMake

Ścieżka do pliku łańcucha narzędzi CMake. Ta ścieżka jest przekazywana do narzędzia CMake jako "-DCMAKE_TOOLCHAIN_FILE = <filepath>". Pliki łańcucha narzędzi określają lokalizacje kompilatorów i narzędzi łańcucha narzędzi oraz inne informacje dotyczące platformy docelowej i kompilatora. Domyślnie program Visual Studio używa pliku łańcucha narzędzi vcpkg, jeśli to ustawienie nie jest określone.

Kompiluj katalog główny

Odpowiada kompilacjiRoot. Mapy do CMAKE_BINARY_DIR, i określa, gdzie utworzyć pamięć podręczną CMake. Określony folder jest tworzony, jeśli nie istnieje.

Argumenty poleceń

Następujące ustawienia są dostępne w nagłówku Argumenty poleceń:

Argumenty poleceń narzędzia CMake

Odpowiada polecenia cmakeCommandArgs. Określa więcej opcji wiersza polecenia przekazywanych do narzędzia CMake.

Argumenty poleceń kompilacji

Odpowiada kompilacjiCommandArgs. Określa więcej przełączników do przekazania do bazowego systemu kompilacji. Na przykład przekazywanie -v w przypadku używania generatora Ninja wymusza, aby ninja wyprowadzało wiersze polecenia.

Argumenty poleceń CTest

Odpowiada ctestCommandArgs. Określa więcej opcji wiersza polecenia, które mają być przekazywane do testu CTest podczas uruchamiania testów.

Ustawienia ogólne dla kompilacji zdalnych

W przypadku konfiguracji, takich jak Linux korzystających z kompilacji zdalnych, dostępne są również następujące ustawienia:

rsync argumenty poleceń

Dodatkowe opcje wiersza polecenia przekazane do rsync, szybkie, uniwersalne narzędzie do kopiowania plików.

Zmienne i pamięć podręczna narzędzia CMake

Te ustawienia umożliwiają ustawianie zmiennych CMake i zapisywanie ich w programie CMakeSettings.json. Są one przekazywane do narzędzia CMake w czasie kompilacji i zastępują wszystkie wartości w CMakeLists.txt pliku. Tej sekcji można użyć w taki sam sposób, jak w przypadku użycia interfejsu CMakeGUI, aby wyświetlić listę wszystkich zmiennych CMake dostępnych do edycji. Wybierz przycisk Zapisz i wygeneruj pamięć podręczną, aby wyświetlić listę wszystkich zmiennych CMake dostępnych do edycji, w tym zmiennych zaawansowanych (zgodnie z CMakeGUI). Listę można filtrować według nazwy zmiennej.

Odpowiada zmiennym. Zawiera parę zmiennych CMake o nazwie przekazanej jako -D name=value CMake. Jeśli instrukcje kompilacji projektu CMake określają dodanie dowolnych zmiennych bezpośrednio do pliku pamięci podręcznej CMake, zalecamy dodanie ich tutaj.

Ustawienia zaawansowane

Generator CMake

Odpowiada generatorowi. Mapy do przełącznika CMake -G i określa generator CMake do użycia. Ta właściwość może być również używana jako makro , ${generator}podczas tworzenia innych wartości właściwości. Program Visual Studio obecnie obsługuje następujące generatory 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"

Ponieważ Ninja jest przeznaczony do szybkiego tworzenia szybkości zamiast elastyczności i funkcji, jest ustawiony jako domyślny. Jednak niektóre projekty narzędzia CMake mogą nie być w stanie poprawnie skompilować przy użyciu narzędzia Ninja. W takim przypadku możesz poinstruować narzędzie CMake, aby zamiast tego wygenerował projekt programu Visual Studio.

Tryb IntelliSense

Tryb IntelliSense używany przez aparat IntelliSense. Jeśli nie wybrano trybu, program Visual Studio dziedziczy tryb z określonego zestawu narzędzi.

Instalowanie katalogu

Katalog, w którym narzędzie CMake instaluje obiekty docelowe. Mapy do CMAKE_INSTALL_PREFIX.

Plik wykonywalny narzędzia CMake

Pełna ścieżka pliku wykonywalnego programu CMake, w tym nazwa pliku i rozszerzenie. Umożliwia korzystanie z niestandardowej wersji narzędzia CMake w programie Visual Studio. W przypadku kompilacji zdalnych określ lokalizację narzędzia CMake na maszynie zdalnej.

W przypadku konfiguracji, takich jak Linux korzystających z kompilacji zdalnych, dostępne są również następujące ustawienia:

Zdalny katalog główny CMakeLists.txt

Katalog na komputerze zdalnym zawierającym plik główny CMakeLists.txt .

Katalog główny instalacji zdalnej

Katalog na maszynie zdalnej, w której narzędzie CMake instaluje obiekty docelowe. Mapy do CMAKE_INSTALL_PREFIX.

Zdalne źródła kopiowania

Określa, czy chcesz skopiować pliki źródłowe na maszynę zdalną, i pozwala określić, czy używać rsync, czy sftp.

Bezpośrednie edytowanie pliku CMake Ustawienia.json

Możesz również bezpośrednio edytować CMakeSettings.json , aby utworzyć konfiguracje niestandardowe. Edytor Ustawienia ma przycisk Edytuj kod JSON w prawym górnym rogu, który otwiera plik do edycji.

W poniższym przykładzie przedstawiono przykładową konfigurację, której można użyć jako punktu początkowego:

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

Funkcja IntelliSense JSON ułatwia edytowanie CMakeSettings.json pliku:

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

Edytor JSON informuje również o wybraniu niezgodnych ustawień.

Aby uzyskać więcej informacji na temat każdej właściwości w pliku, zobacz CMake Ustawienia.json schema reference (Dokumentacja schematu CMake Ustawienia.json).

Program Visual Studio 2017 udostępnia kilka konfiguracji narzędzia CMake, które definiują sposób wywoływanego narzędzia CMake w celu utworzenia pamięci podręcznej CMake dla danego projektu. Aby dodać nową konfigurację, wybierz listę rozwijaną konfiguracji na pasku narzędzi i wybierz pozycję Zarządzaj konfiguracjami:

Screenshot of Manage configurations selected in the drop-down.

Możesz wybrać spośród listy wstępnie zdefiniowanych konfiguracji:

Add Configuration to CMake Settings dialog list of predefined configurations.

Po pierwszym wybraniu konfiguracji program Visual Studio tworzy CMakeSettings.json plik w folderze głównym projektu. Ten plik służy do ponownego tworzenia pliku pamięci podręcznej CMake, na przykład po operacji Clean .

Aby dodać kolejną konfigurację, kliknij prawym przyciskiem myszy CMakeSettings.json i wybierz polecenie Dodaj konfigurację.

Screenshot of the shortcut menu with Add configuration selected.

Plik można również edytować przy użyciu edytora CMake Ustawienia. Kliknij prawym przyciskiem myszy CMakeSettings.json Eksplorator rozwiązań i wybierz polecenie Edytuj Ustawienia narzędzia CMake. Możesz też wybrać pozycję Zarządzaj konfiguracjami z listy rozwijanej w górnej części okna edytora.

Możesz również bezpośrednio edytować CMakeSettings.json , aby utworzyć konfiguracje niestandardowe. W poniższym przykładzie przedstawiono przykładową konfigurację, której można użyć jako punktu początkowego:

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

Funkcja IntelliSense JSON ułatwia edytowanie CMakeSettings.json pliku:

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

Wyskakujące okienko funkcji IntelliSense JSON dla "konfiguracji" zawiera pozycje buildCommandArgs, buildRoot, cmakeCommandArgs, configurationType, między innymi.

Aby uzyskać więcej informacji na temat każdej właściwości w pliku, zobacz CMakeSettings.json dokumentację schematu.

Zobacz też

Projekty CMake w programie Visual Studio
Konfigurowanie projektu CMake systemu Linux
Nawiązywanie połączenia ze zdalnym komputerem z systemem Linux
Konfigurowanie sesji debugowania narzędzia CMake
Wdrażanie, uruchamianie i debugowanie projektu systemu Linux
Dokumentacja wstępnie zdefiniowanej konfiguracji narzędzia CMake