123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- {
- // 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": [
- // Matches output from clang.
- {
- "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
- }
- },
- // Matches output from clang-cl / msvc.
- {
- "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"
- },
- {
- "label": "11-generate_compile_commands",
- "type": "shell",
- "command": "${workspaceFolder}/tools/clang/scripts/generate_compdb.py -p ${config:chrome.outputDir} > ${workspaceFolder}/compile_commands.json"
- }
- ]
- }
|