Я пытаюсь определить задачу VSCode в tasks.json
, которая бы адаптировалась к конкретной архитектуре, в которой работает VSCode. Чтобы сделать это, я хочу получить архитектуру uname --m
(, например"aarch64" или "amd64"). Моя цель - интерполировать вывод uname
в переменную окружения, например,
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "cmake",
"args": [
"-DMYLIB_INCLUDE_DIR=$MYLIB/include",
"-DMYLIB_LIBRARY=$MYLIB/lib"
],
"options": {
"env": {
"MYLIB": "${workspaceFolder}/mylib/${command:get_arch}"
}
},
}
]
В моем случае у меня будут специфичные для архитектуры версии mylib
в mylib/aarch64
, mylib/amd64
, и т. Д. .
Моя попытка определить вторую задачу get_arch
, используемую в определении среды MYLIB
, которая просто запускает uname
.
{
"label": "get_arch",
"type": "shell",
"command": "uname --m"
}
Конечно, эта задача не является правильной командой, и поэтому она не обнаруживается VSCode, и моя задача сборки не выполняется. Я проверил документацию по подстановке переменных, но они не упоминают, можно ли заменить команду оболочки . Я думаю, это будет возможно изнутри расширения, но я хочу, чтобы все было как можно проще.