| name | include-cleaner |
| description | Runs the WebRTC include-cleaner tool (IWYU replacement) to fix headers in C++ files. Use when preparing a CL for upload, after modifying .cc or .h files, or when instructed to fix include regressions. |
WebRTC Include Cleaner
This skill provides instructions for using
tools_webrtc/iwyu/apply-include-cleaner, a tool that automatically manages C++
#include directives in the WebRTC codebase. It ensures that every header used
is explicitly included and that unused headers are removed.
When to Use
- Pre-upload: Run this tool before uploading a CL to ensure clean includes.
- After refactoring: When moving code or changing dependencies, use this to
update
#include blocks.
- Fixing regressions: Use this if a presubmit or bot identifies
include-related issues.
Basic Usage
To run the include cleaner on specific files:
tools_webrtc/iwyu/apply-include-cleaner path/to/file.cc path/to/file.h
To run it on all modified files relative to the upstream branch (ideal for CL
preparation):
tools_webrtc/iwyu/apply-include-cleaner
Note: This is as expensive as a build for each file, so use it sparingly.
Options
-p, --print: Don't modify the files, just print the proposed changes.
-w WORK_DIR, --work-dir WORK_DIR: Specify the GN work directory (default:
out/Default).
Post-Execution Steps
After running the include cleaner, it is recommended to perform the following
steps to ensure build and style consistency:
- Check for build errors: The tool might occasionally make mistakes. Run a
build to verify.
- Fix GN dependencies: Use
tools_webrtc/gn_check_autofix.py to fix any
deps issues caused by include changes.
tools_webrtc/gn_check_autofix.py -C out/Default
- Format code: Run
git cl format to fix any formatting issues in the
#include blocks.
git cl format
Prerequisites
- The tool automatically generates
compile_commands.json in the output
directory if out/Default exists.
clangd must be checked out in your .gclient file
("checkout_clangd": True).