This module provides a functionality to format the source code of your repository according to a predefined KDE clang-format file.

This module provides the following function:


Using this function will create a clang-format target that will format all <files> passed to the function with the predefined KDE clang-format style. To format the files you have to invoke the target with make clang-format or ninja clang-format. Once the project is formatted it is recommended to enforce the formatting using a pre-commit hook, this can be done using KDEGitCommitHooks.

The .clang-format file from ECM will be copied to the source directory. This file should not be added to version control. It is recommended to add it to the .gitignore file: /.clang-format.

Since 5.79: If the source folder already contains a .clang-format file it is not overwritten. Since version 5.80 this function is called by default in KDEFrameworkCompilerSettings. If directories should be excluded from the formatting a .clang-format file with “DisableFormat: true” and “SortIncludes: false” should be created.

Example usage:


To exclude directories from the formatting add a .clang-format file in the directory with the following contents:

DisableFormat: true
SortIncludes: false

Since 5.64