Более широкий вопрос:
В этом посте изначально задавался вопрос о том, как указать платформенное средство сопоставления проблем, но, похоже, более важный вопрос, на который нужно ответить:
Как настроить свойства платформы для задач, если эти свойства не распознаются в разделах "windows" или "linux"?
Даже если я разбью эту задачу на две задачи, кажется, что только одна из них может быть установлена в качестве задачи сборки по умолчанию для обеих платформ.
Прежде чем кто-либо спросит, эта проблема связана с необходимостью зафиксировать мой файл tasks.json в репозитории, чтобы другие разработчики могли собрать проект на любой платформе с помощью «Выполнить задачу сборки ...» Команда в VS Code. Я понимаю, что они всегда могут изменить задание по умолчанию после проверки кода.
Оригинальный вопрос:
У меня есть задача в VSCode, которая запускает скрипт shell / batch для сборки моего приложения на C ++ (CMake). В задаче используются команды "windows"
и "linux"
для команд, специфичных для платформы.
{
"label": "Build x64",
"type": "shell",
"windows": { "command": "${workspaceRoot}/Build-Win-x64.bat" },
"linux": { "command": "${workspaceRoot}/Build-Linux-x64.sh" },
"group": { "kind": "build", "isDefault": true }
}
Сценарий Windows создается с помощью компилятора MSVC, для которого требуется добавить в задачу "problemMatcher": "$msCompile"
, чтобы VSCode мог анализировать выходные данные компилятора.
Однако скрипт Linux использует GCC, который требует "problemMatcher": "$gcc"
.
Эти значения кажутся взаимоисключающими, и VSCode не допускает их в свойствах, специфичных для платформы.
Есть ли способ настроить задачу сборки по умолчанию для разных платформ для каждой платформы?
Я думал об использовании такой переменной среды, как эта "problemMatcher": "${env:VSCODE_CPP_MATCHER}"
, но это было бы неудобно для установки на каждую рабочую станцию, которая работает с этим проектом.