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.json
programu , 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.
Teraz zobaczysz Edytor ustawień z zainstalowanymi konfiguracjami po lewej stronie.
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.json
pliku . 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:
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:
Możesz wybrać jedną z listy wstępnie zdefiniowanych konfiguracji:
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ę.
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:
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