The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.1 KiB
63 lines
2.1 KiB
--- |
|
short-description: Code formatting |
|
... |
|
|
|
# clang-format |
|
|
|
*Since 0.50.0* |
|
|
|
When `clang-format` is installed and a `.clang-format` file is found at the main |
|
project's root source directory, Meson automatically adds a `clang-format` target |
|
that reformat all C and C++ files (currently only with Ninja backend). |
|
|
|
```sh |
|
ninja -C builddir clang-format |
|
``` |
|
|
|
*Since 0.58.0* |
|
|
|
It is possible to restrict files to be reformatted with optional |
|
`.clang-format-include` and `.clang-format-ignore` files. |
|
|
|
The file `.clang-format-include` contains a list of patterns matching the files |
|
that will be reformatted. The `**` pattern matches this directory and all |
|
subdirectories recursively. Empty lines and lines starting with `#` are ignored. |
|
If `.clang-format-include` is not found, the pattern defaults to `**/*` which |
|
means all files recursively in the source directory but has the disadvantage to |
|
walk the whole source tree which could be slow in the case it contains lots of |
|
files. |
|
|
|
Example of `.clang-format-include` file: |
|
``` |
|
# All files in src/ and its subdirectories |
|
src/**/* |
|
|
|
# All files in include/ but not its subdirectories |
|
include/* |
|
``` |
|
|
|
The file `.clang-format-ignore` contains a list of patterns matching the files |
|
that will be excluded. Files matching the include list (see above) that match |
|
one of the ignore pattern will not be reformatted. Unlike include patters, ignore |
|
patterns does not support `**` and a single `*` match any characters including |
|
path separators. Empty lines and lines starting with `#` are ignored. |
|
|
|
The build directory and file without a well known C or C++ suffix are always |
|
ignored. |
|
|
|
Example of `.clang-format-ignore` file: |
|
``` |
|
# Skip C++ files in src/ directory |
|
src/*.cpp |
|
``` |
|
|
|
Note that `.clang-format-ignore` has the same format as used by |
|
[`run-clang-format.py`](https://github.com/Sarcasm/run-clang-format). |
|
|
|
A new target `clang-format-check` has been added. It returns an error code if |
|
any file needs to be reformatted. This is intended to be used by CI. |
|
|
|
*Since 0.60.0* |
|
|
|
If `.clang-format-include` file is missing and source files are in a git |
|
repository, only files tracked by git will be included.
|
|
|