Использование команды оболочки в качестве значения переменной задачи VSCode - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь определить задачу 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, и моя задача сборки не выполняется. Я проверил документацию по подстановке переменных, но они не упоминают, можно ли заменить команду оболочки . Я думаю, это будет возможно изнутри расширения, но я хочу, чтобы все было как можно проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...