В вашем .code-workspace
файле может быть раздел tasks
. Там вы можете создать задачу типа «Построить все» и определить dependsOn
задачи. Однако там вы также не можете ссылаться на задачи сборки из папок рабочей области (для меня это звучит как разумная функция, и я считаю, что они должны реализовать ее в какой-то момент). Мой обходной путь - скопировать соответствующую задачу сборки из файлов подзадач в файл .code-workspace
и сослаться на них в моей задаче «Собрать все».
Пример .code-workspace
:
{
"folders": [
{
"path": "proj-A"
},
{
"path": "proj-B"
}
],
"tasks": {
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "Build A",
"command": "make",
"args": ["-j4"],
"options": {
"cwd": "${workspaceFolder}/../proj-A",
},
"problemMatcher": [
"$gcc"
],
"group": "build",
},
{
"type": "shell",
"label": "Build B",
"command": "make",
"args": ["-j4"],
"options": {
"cwd": "${workspaceFolder}/../proj-B",
},
"problemMatcher": [
"$gcc"
],
"group": "build",
},
{
"type": "shell",
"label": "Build all",
"command": "echo",
"args": ["Building everything"],
"options": {},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"dependsOrder":"sequence",
"dependsOn": ["Build A", "Build B"]
},
]
}
}
Обратите внимание на параметр cwd
в отдельных задачах сборки. ${workspaceFolder}
, похоже, установлен на первый путь в разделе "folders"
. Вы также можете установить cwd
на абсолютные пути.
Это немного взломано, и тот факт, что нужно копировать задачи сборки, некрасив, но на данный момент он работает, и его можно легко адаптировать, как только можно будет ссылаться на задачи файлов подзадач.
person
felwolff
schedule
14.11.2019