{
    "folders": [
        {
            "name": "JabyEngine",
            "path": ".",
        },
        {
            "name": "Include",
            "path": "..\\..\\include"
        },
        {
            "name": "Root",
            "path": "..\\.."
        }
    ],
    "tasks": {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "make",
                "type": "shell",
                "windows": {
                    "command": "wsl make ${input:target} BUILD_PROFILE=${input:build cfg} PSX_TV_FORMAT=${input:tv format} CUSTOM_CONFIG=${input:config options}",
                },
                "linux":   {
                    "command": "make ${input:target} BUILD_PROFILE=${input:build cfg} PSX_TV_FORMAT=${input:tv format} CUSTOM_CONFIG=${input:config options}",
                },
                "group": "build"
            },
            {
                "label": "make_all",
                "type": "shell",
                "windows": {
                    "command": "wsl make -f MakeAll.mk ${input:target prefix}_${input:target} BUILD_PROFILE=${input:build cfg} CUSTOM_CONFIG=${input:config options}",
                },
                "linux":   {
                    "command": "make -f MakeAll.mk ${input:target} BUILD_PROFILE=${input:build cfg}",
                },
                "group": "build"
            }
        ],
        "inputs": [
            {
                "id": "build cfg",
                "type": "pickString",
                "options": ["debug", "release"],
                "default": "release",
                "description": "build configuration"
            },
            {
                "id": "tv format",
                "type": "pickString",
                "options": ["PAL", "NTSC"],
                "default": "PAL",
                "description": "TV format to use"
            },
            {
                "id": "config options",
                "type": "command",
                "command": "shellCommand.execute",
                "args": {
                    "command": "echo ^|^<Default^> && dir /b /a:d",
                    "cwd": "${workspaceFolder}/../../config",
                    "fieldSeparator": "|"
                }
            },
            {
                "id": "target prefix",
                "type": "pickString",
                "options": ["jabyengine", "all_jabyengine"],
                "default": "jabyengine",
                "description": "To build JabyEngine or JabyEngine with all configs"
            },
            {
                "id": "target",
                "type": "pickString",
                "options": ["all", "clean", "rebuild"],
                "default": "all",
                "description": "build target",
            }
        ]
    },
    "extensions": {
        "recommendations": ["augustocdias.tasks-shell-input"]
    },
    "settings": {
        "cmake.configureOnOpen": false,
        "C_Cpp.default.includePath": [
            "include",
            "../../include"
            ],
        "C_Cpp.default.compilerPath": "",
        "C_Cpp.default.cStandard": "c17",
        "C_Cpp.default.cppStandard": "c++20",
        "C_Cpp.default.intelliSenseMode": "linux-gcc-x86",
        "C_Cpp.default.compilerArgs": [
            ],
        "C_Cpp.default.defines": [
            "JABYENGINE_PAL",
            "__DEBUG_SPU_MMU__",
            "__friends=public"
            ],
        "files.exclude": {
            "**/*.o": true,
            "**/*.dep": true
        },
        "files.associations": {
            "stdio.h": "c",
            "TUTO0.C": "cpp",
            "MAIN.C": "cpp"
        }
    }	
}