{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    // Available variables which can be used inside of strings.
    // ${workspaceRoot}: the root folder of the team
    // ${file}: the current opened file
    // ${fileBasename}: the current opened file's basename
    // ${fileDirname}: the current opened file's dirname
    // ${fileExtname}: the current opened file's extension
    // ${cwd}: the current working directory of the spawned process
    "version": "2.0.0",
    "tasks": [
        // Invokes ninja in the 'out/active' directory, which is created with
        // the 'gn gen' task (see below).
        {
            "label": "build",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "type": "shell",
            "linux": {
                "command": "sh",
                "args": [
                    "-c",
                    "ninja && echo Done"
                ],
            },
            "osx": {
                "command": "sh",
                "args": [
                    "-c",
                    "ninja && echo Done"
                ],
            },
            "windows": {
                "command": "/C",
                "args": [
                    "ninja && echo Done",
                ],
                "options": {
                    "shell": {
                        "executable": "cmd"
                    },
                }
            },
            "options": {
                "cwd": "${workspaceRoot}/out/active",
            },
            "presentation": {
                "echo": false,
                "reveal": "always",
                "focus": false,
                "panel": "shared",
                "showReuseMessage": false,
                "clear": true,
            },
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": "absolute",
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        },
        // Generates a GN build directory at 'out/<build-type>' with the
        // is_debug argument set to to true iff the build-type is Debug.
        // A symbolic link to this build directory is created at 'out/active'
        // which is used to track the active build directory.
        {
            "label": "gn gen",
            "type": "shell",
            "linux": {
                "command": "sh",
                "args": [
                    "-c",
                    "gn gen 'out/${input:buildType}' --args=is_debug=$(if [ '${input:buildType}' = 'Debug' ]; then echo 'true'; else echo 'false'; fi) && (rm -fr out/active || true) && ln -s ${input:buildType} out/active",
                ],
            },
            "osx": {
                "command": "sh",
                "args": [
                    "-c",
                    "gn gen 'out/${input:buildType}' --args=is_debug=$(if [ '${input:buildType}' = 'Debug' ]; then echo 'true'; else echo 'false'; fi) && (rm -fr out/active || true) && ln -s ${input:buildType} out/active",
                ],
            },
            "windows": {
                "command": "/C",
                "args": [
                    "(IF \"${input:buildType}\" == \"Debug\" ( gn gen \"out\\${input:buildType}\" --args=is_debug=true ) ELSE ( gn gen \"out\\${input:buildType}\" --args=is_debug=false )) && (IF EXIST \"out\\active\" rmdir \"out\\active\" /q /s) && (mklink /j \"out\\active\" \"out\\${input:buildType}\")",
                ],
                "options": {
                    "shell": {
                        "executable": "cmd"
                    },
                }
            },
            "options": {
                "cwd": "${workspaceRoot}"
            },
            "problemMatcher": [],
        },
        // Rebases the current branch on to origin/main and then calls
        // `gclient sync`.
        {
            "label": "sync",
            "type": "shell",
            "linux": {
                "command": "sh",
                "args": [
                    "-c",
                    "git fetch origin && git rebase origin/main && gclient sync && echo Done"
                ],
            },
            "osx": {
                "command": "sh",
                "args": [
                    "-c",
                    "git fetch origin && git rebase origin/main && gclient sync && echo Done"
                ],
            },
            "windows": {
                "command": "/C",
                "args": [
                    "git fetch origin && git rebase origin/main && gclient sync && echo Done",
                ],
                "options": {
                    "shell": {
                        "executable": "cmd"
                    },
                }
            },
            "options": {
                "cwd": "${workspaceRoot}"
            },
            "problemMatcher": [],
        },
        // Pushes the changes at HEAD to gerrit for review
        {
            "label": "push",
            "type": "shell",
            "command": "git",
            "args": [
                "push",
                "origin",
                "HEAD:refs/for/main"
            ],
            "options": {
                "cwd": "${workspaceRoot}"
            },
            "problemMatcher": [],
        }
    ],
    "inputs": [
        {
            "id": "buildType",
            "type": "pickString",
            "options": [
                "Debug",
                "Release",
            ],
            "default": "Debug",
            "description": "The type of build",
        },
    ]
}