{ // Note! // Set the value used for ${config:chrome.outputDir} in your settings.json // file with a line like: // "chrome.outputDir": "/path/to/chromium/src/out/current_link", // Then run "0-set_chrome_output_directory" to set the `current_link` // symbolic link (see below). "version": "2.0.0", "runner": "terminal", // The default problem matcher matches build output, which is useful for most tasks. "problemMatcher": [ { "owner": "cpp", "fileLocation": ["relative", "${config:chrome.outputDir}"], "pattern": { "regexp": "^(gen/.*):(\\d+):(\\d+):\\s+(warning|\\w*\\s?error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } }, { "owner": "cpp", "fileLocation": ["relative", "${workspaceRoot}"], "pattern": { "regexp": "^../../(.*):(\\d+):(\\d+):\\s+(warning|\\w*\\s?error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } }, { "owner": "cpp", "fileLocation": ["relative", "${config:chrome.outputDir}"], "pattern": { "regexp": "^(gen/.*?):(.*):\\s+(warning|\\w*\\s?error):\\s+(.*)$", "file": 1, "severity": 3, "message": 4 } }, { "owner": "cpp", "fileLocation": ["relative", "${workspaceRoot}"], "pattern": { "regexp": "^../../(.*?):(.*):\\s+(warning|\\w*\\s?error):\\s+(.*)$", "file": 1, "severity": 3, "message": 4 } } ], "options": { // It's important to set the CWD to the output directory so that file paths // are linked correctly in the terminal output. "cwd": "${config:chrome.outputDir}" }, "inputs": [ { // See 'Set Chrome Output Directory'. "type": "pickString", "id": "chromeOutputDir", "description": "Chrome output directory:", // Configure this to point to all the output directories you use. "options": [ "/path/to/chromium/src/out/pc", "/path/to/chromium/src/out/Debug", "/path/to/chromium/src/out/Debug_x86" ] }, { "type": "promptString", "id": "gtestFilter", "description": "Filter for 4-test_current_file_with_filter", "default": "*" } ], "tasks": [ // Set the Chrome output directory to be used in future task runs. // This uses a symbolic link to remember the current output directory. // If you want to use this, make sure chrome.outputDir is configured to // point to the link created at ${workspaceFolder}/out/current_link. // Alternatively: // * If you want to be prompted for the output directory each // time you run a command, replace // ${config:chrome.outputDir} // with // ${input:chromeOutputDir} // everywhere in this file. // // * If you want to have different tasks for different output directories, // just create duplicate tasks and hard-code the output directory used. { "label": "0-set_chrome_output_directory", "command": "rm -f ${workspaceFolder}/out/current_link; ln -s ${input:chromeOutputDir} ${workspaceFolder}/out/current_link", "type": "shell", // The default problem matcher doesn't make sense here, so remove it. "problemMatcher": [], "options": { "cwd": "${workspaceFolder}" } }, // Some general-purpose build and test tasks. These all inherit the // problemMatcher at the top of the file. { "label": "1-build_chrome", "type": "shell", "command": "autoninja -C ${config:chrome.outputDir} chrome", "group": "test" }, { "label": "2-build_all", "type": "shell", "command": "autoninja -C ${config:chrome.outputDir}" }, { "label": "3-test_current_file", "type": "shell", "command": "${workspaceFolder}/tools/autotest.py -C ${config:chrome.outputDir} --run-all ${file}" }, { "label": "4-test_current_file_with_filter", "type": "shell", "command": "${workspaceFolder}/tools/autotest.py -C ${config:chrome.outputDir} --gtest_filter ${input:gtestFilter} ${file}" }, { "label": "5-test_current_line", "type": "shell", "command": "${workspaceFolder}/tools/autotest.py -C ${config:chrome.outputDir} --line ${lineNumber} ${file}" }, { "label": "6-test_current_directory", "type": "shell", "command": "${workspaceFolder}/tools/autotest.py -C ${config:chrome.outputDir} --run-all ${fileDirname}" }, { "label": "7-build_current_file", "type": "shell", "command": "compile_single_file --build-dir=${config:chrome.outputDir} --file-path=${file}" }, // Some more specific build tasks, which hard-code the output directory. { "label": "8-build_chrome_debug", "type": "shell", "command": "autoninja -C ${workspaceFolder}/out/Debug chrome" }, { "label": "9-build_chrome_release", "type": "shell", "command": "autoninja -C ${workspaceFolder}/out/Release chrome" }, { "label": "10-build_test_debug", "type": "shell", "command": "autoninja -C ${workspaceFolder}/out/Debug unit_tests components_unittests browser_tests" } ] }