Настройте код Visual Studio для CMake с некоторыми опциями

#visual-studio-code #cmake #ubuntu-20.04

Вопрос:

Я хочу использовать расширение CMake Tools для разработки проекта CMake в коде Visual Studio.

Я создаю проект в командной строке с помощью следующей команды:

 PS projectbuild> cmake -G"Visual Studio 14 2015 Win64" -DBOOST_ROOT=somepath -DQT_ROOT=anotherpath projectpath
 

Как я могу задать ту же команду с теми же параметрами в .cmaketools.json файле, который находится в .vscode папке? Я хочу запустить его из редактора и, если возможно, указать также выходную папку вместо создания build папки внутри моего проекта.

Это мой настоящий .cmaketools.json :

 {
  "variant": {
    "label": "Debug",
    "keywordSettings": {
      "buildType": "debug"
    },
    "description": "Emit debug information without performing optimizations"
  },
  "activeEnvironments": [
    "Visual C   14.0 - amd64"
  ]
}
 

Ответ №1:

.vscode.cmaketools.json Файл представляет собой только «кэш рабочей области» расширения Visual Studio Code — CMake Tools. Посмотрите их код:

 /**
 * The workspace cache stores extension state that is convenient to remember
 * between executions. Things like the active variant or enabled environments
 * are stored here so that they may be recalled quickly upon extension
 * restart.
*/
 

Я думаю, что вы хотите .vscodesettings.json , как описано здесь, например, со следующим содержанием:

 {
    "cmake.generator": "Visual Studio 14 2015 Win64",
    "cmake.configureSettings": { "BOOST_ROOT": "some/path", "QT_ROOT": "another/path" }
}
 

Комментарии:

1. Ваши ссылки, похоже, оборваны.

2. Я полагаю, что связанный документ сейчас здесь .

3. Указание QT_ROOT не сработало для меня, но следующее сработало: "cmake.configureArgs" : [ "-DCMAKE_PREFIX_PATH=C:\projects\qt" ]

4. @SebastianK в соответствии с документацией ( vector-of-bool.github.io/docs/vscode-cmake-tools/settings.html ): Предупреждение: Всегда предпочитайте использовать cmake.Настройки или варианты CMake. Никогда не передавайте аргументы D, используя этот параметр.