Dostosowywanie ustawień kompilacji narzędzia CMake

Program Visual Studio używa pliku konfiguracji narzędzia CMake do generacji i kompilacji narzędzia CMake. CMakePresets.json jest obsługiwany przez program Visual Studio 2019 w wersji 16.10 lub nowszej i jest zalecanym plikiem konfiguracji narzędzia CMake. CMakePresets.json jest obsługiwany bezpośrednio przez narzędzie CMake i może służyć do generacji I kompilowania narzędzia CMake z 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 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ń. Jest to 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.

Zrzut ekranu przedstawiający listę rozwijaną Konfiguracja narzędzia CMake z wyróżnionym wyborem Zarządzaj konfiguracjami.

Teraz zobaczysz Edytor ustawień z zainstalowanymi konfiguracjami po lewej stronie.

Zrzut ekranu przedstawiający edytor ustawień narzędzia CMake.

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 automatycznie. Za pomocą CMakeSettings.json programu 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 dowolnych używanych narzędzi.

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 konfiguracja języka C++. Możesz użyć makra ${name} , aby utworzyć 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 na CMAKE_BUILD_TYPE.

Zestaw narzędzi

Odpowiada dziedziczonemu ustawieniuŚrodowiskośrodowień . 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 Ustawień 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 jest nieokreślone.

Główny katalog kompilacji

Odpowiada kompilacjiRoot. Mapuje na 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 cmakeCommandArgs. Określa więcej opcji wiersza polecenia przekazanych do narzędzia CMake.

Argumenty poleceń kompilacji

Odpowiada kompilacjiCommandArgs. Określa więcej przełączników, które mają być przekazywane do bazowego systemu kompilacji. Na przykład przekazywanie -v podczas korzystania z generatora Ninja wymusza ninja do wyprowadzania wierszy poleceń.

Argumenty poleceń CTest

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

Ogólne ustawienia 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 przekazywane do rsync, szybkie, uniwersalne narzędzie do kopiowania plików.

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

Te ustawienia umożliwiają ustawienie zmiennych CMake i zapisanie ich w CMakeSettings.jsonpliku . Są one przekazywane do narzędzia CMake w czasie kompilacji i przesłaniają wszystkie wartości w CMakeLists.txt pliku. Możesz użyć tej sekcji w taki sam sposób, jak za pomocą 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 do narzędzia 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. Mapuje na przełącznik CMake i określa generator CMake-G 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 obsługuje obecnie następujące generatory CMake:

  • "Ninja"
  • "Pliki makefile systemu 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"

Ponieważ Ninja jest przeznaczony do szybkiej szybkości kompilacji zamiast elastyczności i funkcji, jest ustawiony jako domyślny. Jednak niektóre projekty CMake mogą nie być w stanie poprawnie skompilować przy użyciu narzędzia Ninja. W takim przypadku możesz zamiast tego poinstruować narzędzie CMake o wygenerowaniu projektu 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 program CMake instaluje obiekty docelowe. Mapuje na CMAKE_INSTALL_PREFIX.

Plik wykonywalny narzędzia CMake

Pełna ścieżka do pliku wykonywalnego programu CMake, w tym nazwy pliku i rozszerzenia. Umożliwia ona używanie niestandardowej wersji narzędzia CMake z programem 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 maszynie zdalnej, który zawiera plik główny CMakeLists.txt .

Katalog główny instalacji zdalnej

Katalog na maszynie zdalnej, na której narzędzie CMake instaluje obiekty docelowe. Mapuje na 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 CMakeSettings.json

Możesz również bezpośrednio edytować CMakeSettings.json , aby tworzyć konfiguracje niestandardowe. Edytor ustawień 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:

Zrzut ekranu przedstawiający wyskakujące okienko CMake JSON IntelliSense w edytorze.

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 CMakeSettings.json schema reference (Dokumentacja schematu CMakeSettings.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:

Zrzut ekranu przedstawiający pozycję Zarządzaj konfiguracjami wybranymi na liście rozwijanej.

Możesz wybrać jedną z listy wstępnie zdefiniowanych konfiguracji:

Dodaj konfigurację do listy wstępnie zdefiniowanych konfiguracji w oknie dialogowym Ustawień narzędzia CMake.

Przy 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ę.

Zrzut ekranu przedstawiający menu skrótów z wybraną pozycją Dodaj konfigurację.

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

Możesz również bezpośrednio edytować CMakeSettings.json , aby tworzyć 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:

Zrzut ekranu przedstawiający wyskakujące okienko CMake JSON IntelliSense w edytorze.

Aby uzyskać więcej informacji na temat każdej właściwości w pliku, zobacz CMakeSettings.json dokumentacja 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