{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build Bootstrap",
            "type": "shell",
            "command": "C:\\Program Files\\PowerShell\\7\\pwsh.exe",
            "args": [
                "-ExecutionPolicy",
                "Bypass",
                "-File",
                "${workspaceFolder}/scripts/build.ci.ps1",
                "bootstrap",
                "msvc"
            ],
            "group": "build",
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": [
                    "relative",
                    "${workspaceFolder}"
                ],
                "pattern": {
                    "regexp": "^(.*)\\((\\d+)\\)\\s*:\\s*(warning|error)\\s*(\\w+)\\s*:\\s*(.*)$",
                    "file": 1,
                    "line": 2,
                    "severity": 3,
                    "code": 4,
                    "message": 5
                }
            },
            "presentation": {
                "reveal": "always",
                "panel": "shared",
                "clear": true
            }
        },
        {
            "label": "Build C Library",
            "type": "shell",
            "command": "C:\\Program Files\\PowerShell\\7\\pwsh.exe",
            "args": [
                "-ExecutionPolicy",
                "Bypass",
                "-File",
                "${workspaceFolder}/scripts/build.ci.ps1",
                "c_library",
                "msvc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": [
                    "relative",
                    "${workspaceFolder}"
                ],
                "pattern": {
                    "regexp": "^(.*)\\((\\d+)\\)\\s*:\\s*(warning|error)\\s*(\\w+)\\s*:\\s*(.*)$",
                    "file": 1,
                    "line": 2,
                    "severity": 3,
                    "code": 4,
                    "message": 5
                }
            },
            "presentation": {
                "reveal": "always",
                "panel": "shared",
                "clear": true
            }
        },
        {
            "label": "Build Singleheader (MSVC)",
            "type": "shell",
            "command": "C:\\Program Files\\PowerShell\\7\\pwsh.exe",
            "args": [
                "-ExecutionPolicy",
                "Bypass",
                "-File",
                "${workspaceFolder}/scripts/build.ci.ps1",
                "singleheader",
                "msvc",
                "debug"
            ],
            "group": "build",
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": ["relative", "${workspaceFolder}"],
                "pattern": [
                    {
                        "regexp": "^(.*)\\((\\d+)\\)\\s*:\\s*(error|warning|info|note)\\s+(\\w{1,2}\\d+)\\s*:\\s*(.*)$",
                        "file": 1,
                        "line": 2,
                        "severity": 3,
                        "code": 4,
                        "message": 5
                    }
                ]
            },
            "presentation": {
                "reveal": "always",
                "panel": "shared",
                "clear": true
            }
        },
        {
            "label": "Build Unreal (MSVC)",
            "type": "shell",
            "command": "C:\\Program Files\\PowerShell\\7\\pwsh.exe",
            "args": [
                "-ExecutionPolicy",
                "Bypass",
                "-File",
                "${workspaceFolder}/scripts/build.ci.ps1",
                "unreal",
                "msvc",
                "debug"
            ],
            "group": "build",
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": ["relative", "${workspaceFolder}"],
                "pattern": [
                    {
                        "regexp": "^(.*)\\((\\d+)\\)\\s*:\\s*(error|warning|info|note)\\s+(\\w{1,2}\\d+)\\s*:\\s*(.*)$",
                        "file": 1,
                        "line": 2,
                        "severity": 3,
                        "code": 4,
                        "message": 5
                    }
                ]
            },
            "presentation": {
                "reveal": "always",
                "panel": "shared",
                "clear": true
            }
        }
    ]
}
