290 lines
7.8 KiB
JSON
290 lines
7.8 KiB
JSON
{
|
|
"version": "2.0.0",
|
|
"tasks": [
|
|
{
|
|
"label": "cargo fmt (workspace check)",
|
|
"type": "cargo",
|
|
"command": "fmt",
|
|
"args": ["--all", "--check"],
|
|
"problemMatcher": [],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "cargo check (workspace all targets)",
|
|
"type": "cargo",
|
|
"command": "check",
|
|
"args": ["--workspace", "--all-targets"],
|
|
"problemMatcher": ["$rustc"],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "cargo clippy (workspace strict)",
|
|
"type": "cargo",
|
|
"command": "clippy",
|
|
"args": ["--workspace", "--all-targets", "--", "-D", "warnings"],
|
|
"problemMatcher": ["$rustc"],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "cargo test (workspace)",
|
|
"type": "cargo",
|
|
"command": "test",
|
|
"args": ["--workspace"],
|
|
"problemMatcher": ["$rustc"],
|
|
"group": "test"
|
|
},
|
|
{
|
|
"label": "cargo clippy (launch feature matrix)",
|
|
"type": "cargo",
|
|
"command": "clippy",
|
|
"args": [
|
|
"-p",
|
|
"editor",
|
|
"-p",
|
|
"game",
|
|
"--bins",
|
|
"--features",
|
|
"dev,hot-reload",
|
|
"--",
|
|
"-D",
|
|
"warnings"
|
|
],
|
|
"problemMatcher": ["$rustc"],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "validate level scenes",
|
|
"type": "cargo",
|
|
"command": "validate-levels",
|
|
"args": [],
|
|
"problemMatcher": ["$rustc"],
|
|
"group": "test"
|
|
},
|
|
{
|
|
"label": "build game (debug)",
|
|
"type": "cargo",
|
|
"command": "build",
|
|
"args": ["-p", "game", "--bin", "game"],
|
|
"problemMatcher": ["$rustc"],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "build editor (debug)",
|
|
"type": "cargo",
|
|
"command": "build",
|
|
"args": ["-p", "editor", "--bin", "editor"],
|
|
"problemMatcher": ["$rustc"],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "build editor (dev fast-link)",
|
|
"type": "cargo",
|
|
"command": "build",
|
|
"args": ["-p", "editor", "--bin", "editor", "--features", "dev"],
|
|
"options": {
|
|
"cwd": "${workspaceFolder}",
|
|
"env": { "CARGO_TARGET_DIR": "${workspaceFolder}/target" }
|
|
},
|
|
"problemMatcher": ["$rustc"],
|
|
"group": { "kind": "build", "isDefault": true }
|
|
},
|
|
{
|
|
"label": "build game (dev fast-link)",
|
|
"type": "cargo",
|
|
"command": "build",
|
|
"args": ["-p", "game", "--bin", "game", "--features", "dev"],
|
|
"options": {
|
|
"cwd": "${workspaceFolder}",
|
|
"env": { "CARGO_TARGET_DIR": "${workspaceFolder}/target" }
|
|
},
|
|
"problemMatcher": ["$rustc"],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "clean dev-link crates",
|
|
"type": "cargo",
|
|
"command": "clean",
|
|
"args": ["-p", "editor", "-p", "game", "-p", "game_hot", "-p", "shared"],
|
|
"options": {
|
|
"cwd": "${workspaceFolder}",
|
|
"env": { "CARGO_TARGET_DIR": "${workspaceFolder}/target" }
|
|
},
|
|
"problemMatcher": []
|
|
},
|
|
{
|
|
"label": "clean build editor (dev)",
|
|
"dependsOrder": "sequence",
|
|
"dependsOn": ["clean dev-link crates", "build editor (dev fast-link)"],
|
|
"problemMatcher": [],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "target cleanup (dry run)",
|
|
"type": "shell",
|
|
"command": "cargo clean-target",
|
|
"options": {
|
|
"cwd": "${workspaceFolder}",
|
|
"env": { "CARGO_TARGET_DIR": "${workspaceFolder}/target" }
|
|
},
|
|
"problemMatcher": [],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "target cleanup (safe apply)",
|
|
"type": "shell",
|
|
"command": "cargo clean-target --apply",
|
|
"options": {
|
|
"cwd": "${workspaceFolder}",
|
|
"env": { "CARGO_TARGET_DIR": "${workspaceFolder}/target" }
|
|
},
|
|
"problemMatcher": [],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "target cleanup (deep stale, 3 days)",
|
|
"type": "shell",
|
|
"command": "cargo clean-target --include-artifacts --days 3 --apply",
|
|
"options": {
|
|
"cwd": "${workspaceFolder}",
|
|
"env": { "CARGO_TARGET_DIR": "${workspaceFolder}/target" }
|
|
},
|
|
"problemMatcher": [],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "run editor (dev fast-link)",
|
|
"type": "cargo",
|
|
"command": "run",
|
|
"args": ["-p", "editor", "--bin", "editor", "--features", "dev"],
|
|
"options": {
|
|
"cwd": "${workspaceFolder}",
|
|
"env": {
|
|
"RUST_BACKTRACE": "1",
|
|
"WGPU_VALIDATION": "0",
|
|
"CARGO_TARGET_DIR": "${workspaceFolder}/target"
|
|
}
|
|
},
|
|
"problemMatcher": ["$rustc"],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "run game (dev fast-link)",
|
|
"type": "cargo",
|
|
"command": "run",
|
|
"args": ["-p", "game", "--bin", "game", "--features", "dev"],
|
|
"options": {
|
|
"cwd": "${workspaceFolder}",
|
|
"env": {
|
|
"RUST_BACKTRACE": "1",
|
|
"WGPU_VALIDATION": "0",
|
|
"CARGO_TARGET_DIR": "${workspaceFolder}/target"
|
|
}
|
|
},
|
|
"problemMatcher": ["$rustc"],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "run editor (hot reload)",
|
|
"type": "cargo",
|
|
"command": "run",
|
|
"args": [
|
|
"-p",
|
|
"editor",
|
|
"--bin",
|
|
"editor",
|
|
"--features",
|
|
"dev,hot-reload"
|
|
],
|
|
"options": {
|
|
"cwd": "${workspaceFolder}",
|
|
"env": {
|
|
"RUST_BACKTRACE": "1",
|
|
"WGPU_VALIDATION": "0",
|
|
"CARGO_TARGET_DIR": "${workspaceFolder}/target"
|
|
}
|
|
},
|
|
"problemMatcher": ["$rustc"],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "run game (hot reload)",
|
|
"type": "cargo",
|
|
"command": "run",
|
|
"args": ["-p", "game", "--bin", "game", "--features", "dev,hot-reload"],
|
|
"options": {
|
|
"cwd": "${workspaceFolder}",
|
|
"env": {
|
|
"RUST_BACKTRACE": "1",
|
|
"WGPU_VALIDATION": "0",
|
|
"CARGO_TARGET_DIR": "${workspaceFolder}/target"
|
|
}
|
|
},
|
|
"problemMatcher": ["$rustc"],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "run editor (SDR fallback)",
|
|
"type": "cargo",
|
|
"command": "run",
|
|
"args": ["-p", "editor", "--bin", "editor", "--features", "dev"],
|
|
"options": {
|
|
"cwd": "${workspaceFolder}",
|
|
"env": {
|
|
"RUST_BACKTRACE": "1",
|
|
"BEVY_FPS_HDR": "0",
|
|
"WGPU_VALIDATION": "0",
|
|
"CARGO_TARGET_DIR": "${workspaceFolder}/target"
|
|
}
|
|
},
|
|
"problemMatcher": ["$rustc"],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "run game (SDR fallback)",
|
|
"type": "cargo",
|
|
"command": "run",
|
|
"args": ["-p", "game", "--bin", "game", "--features", "dev"],
|
|
"options": {
|
|
"cwd": "${workspaceFolder}",
|
|
"env": {
|
|
"RUST_BACKTRACE": "1",
|
|
"BEVY_FPS_HDR": "0",
|
|
"WGPU_VALIDATION": "0",
|
|
"CARGO_TARGET_DIR": "${workspaceFolder}/target"
|
|
}
|
|
},
|
|
"problemMatcher": ["$rustc"],
|
|
"group": "build"
|
|
},
|
|
{
|
|
"label": "watch game_hot (hot reload)",
|
|
"type": "shell",
|
|
"command": "cargo watch -w crates/game_hot -w crates/sim -x \"build -p game_hot --features dylib\"",
|
|
"options": {
|
|
"cwd": "${workspaceFolder}",
|
|
"env": { "CARGO_TARGET_DIR": "${workspaceFolder}/target" }
|
|
},
|
|
"problemMatcher": ["$rustc"],
|
|
"group": "build",
|
|
"isBackground": true,
|
|
"detail": "Requires cargo-watch: cargo install cargo-watch --locked"
|
|
},
|
|
{
|
|
"label": "verify workspace",
|
|
"dependsOrder": "sequence",
|
|
"dependsOn": [
|
|
"cargo fmt (workspace check)",
|
|
"cargo check (workspace all targets)",
|
|
"cargo clippy (workspace strict)",
|
|
"cargo test (workspace)",
|
|
"cargo clippy (launch feature matrix)",
|
|
"validate level scenes",
|
|
"build game (debug)",
|
|
"build editor (debug)"
|
|
],
|
|
"problemMatcher": [],
|
|
"group": "build"
|
|
}
|
|
]
|
|
}
|