{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "presentation": {
        //  Dont show the "Terminal will be reused by tasks, press any key to close it" message
        "showReuseMessage": false,
        //  Dont echo executed command in the terminal
        "echo" : false
      },
      "tasks": [
        {
        "label": "control shift B",
        "type": "shell",
        //  displays time stamp of executable in directory
        "command": "cd ${relativeFileDirname}; ls ${fileBasenameNoExtension}/${fileBasenameNoExtension}.exe |tail -n3 |head -1",
        "dependsOn": ["default run executable"],
        "group": {"kind": "build","isDefault": true}
        },
        {
        "label": "overwritten",
        "type": "shell",
        // delete current executable so it can be overwritten with new one
        "command": "make clean p=${relativeFileDirname} f=${fileBasenameNoExtension}.exe",
        "dependsOn": ["default directory"]
        },
        {
        "label": "default compile",
        "type": "shell",
        "command": "make p=${relativeFileDirname} ${fileBasenameNoExtension}.exe",
        "dependsOn": ["overwritten"]
        },
        {
        "label": "default run executable",
        "type": "shell",
        "command": "cd ${relativeFileDirname}; ${fileBasenameNoExtension}/${fileBasenameNoExtension}.exe",
        "dependsOn": ["default compile"]
        },
        {
        "label": "default directory",
        "windows" : {
            "command": "$(cd ${relativeFileDirname}; test-path ${fileBasenameNoExtension}) -or $(mkdir ${fileBasenameNoExtension}) >$null"
            },
        "type": "shell",
        "presentation" : {
            //  Dont bring the terminal panel to the front view
            "reveal": "never",
            //  clears terminal as first step, only do this once
            "clear" :true
            }
        }
    ]
}