clang-format and cmake-format for CMake
Format.cmake adds three additional targets to your CMake project.
format
Shows which files are affected by clang-formatcheck-format
Errors if files are affected by clang-format (for CI integration)fix-format
Applies clang-format to all affected files
To run the targets, invoke CMake with cmake --build <build directory> --target <target name>
.
To disable using cmake_format to format CMake files, set the cmake option FORMAT_SKIP_CMAKE
to a truthy value, e.g. by invoking CMake with -DFORMAT_SKIP_CMAKE=YES
, or enabling the option when adding the dependency (recommended).
Using CPM.cmake (recommended)
Run the following from the project's root directory to add CPM to your project.
mkdir -p cmake
wget -O cmake/CPM.cmake https://raw.githubusercontent.com/TheLartians/CPM/master/cmake/CPM.cmake
Add the following lines to the project's CMakeLists.txt
after calling project(...)
.
include(cmake/CPM.cmake)
CPMAddPackage(
NAME Format.cmake
VERSION 1.7.0
GITHUB_REPOSITORY TheLartians/Format.cmake
OPTIONS # set to yes skip cmake formatting
"FORMAT_SKIP_CMAKE NO"
# path to exclude (optional, supports regular expressions)
"CMAKE_FORMAT_EXCLUDE cmake/CPM.cmake"
)
Run the following from the project's root directory.
git submodule add https://github.com/TheLartians/Format.cmake
In add the following lines to the project's CMakeLists.txt
after calling project(...)
.
add_subdirectory(Format.cmake)
Format.cmake requires CMake, clang-format, python 2.7 or python 3, and cmake-format (optional).