{
	"version": "2.0.0",
	"tasks": [
		{
			"label": "Compile C program",
			"type": "shell",
			"command": "/usr/bin/gcc",
			"args": [
				"-std=c17",
				"-Wall",
				"-Wextra",
				"-pedantic",
				"-g",
				"${file}",
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			}
		},
		{
			"label": "Compile C++ program",
			"type": "shell",
			"command": "/usr/bin/g++",
			"args": [
				"-std=c++20",
				"-Wall",
				"-Wextra",
				"-pedantic",
				"-g",
				"${file}",
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			}
		},
		{
			"label": "Assemble NASM program",
			"type": "shell",
			"command": "/usr/bin/nasm",
			"args": [
				"-f",
				"elf64",
				"${file}",
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}.o"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			}
		},
		{
			"label": "Link object file",
			"type": "shell",
			"command": "/usr/bin/ld",
			"args": [
				"${fileDirname}/${fileBasenameNoExtension}.o",
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			}
		},
		{
			"label": "Run program",
			"type": "shell",
			"command": "qemu-x86_64",
			"args": [
				"${fileDirname}/${fileBasenameNoExtension}"
			],
			"group": {
				"kind": "test",
				"isDefault": true
			}
		}
	]
}