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.json
programu , 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.
Po lewej stronie zostanie wyświetlony Edytor ustawień z zainstalowanymi konfiguracjami.
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_TYPE
na .
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 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 nie jest określone.
Kompiluj katalog główny
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 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. Mapuje na przełącznik 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. Mapuje na 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. 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 CMakeSettings.json
Możesz również bezpośrednio edytować CMakeSettings.json
, aby utworzyć 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 dokumentacja schematu.
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ć spośród listy wstępnie zdefiniowanych konfiguracji:
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ę.
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 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:
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