Format.cmake
💅 Stylize your code! Automatic clang-format and cmake-format targets for CMake.
Install / Use
/learn @TheLartians/Format.cmakeREADME
Format.cmake
clang-format and cmake-format for CMake
About
Format.cmake adds three additional targets to your CMake project.
formatShows which files are affected by clang-formatcheck-formatErrors if files are affected by clang-format (for CI integration)fix-formatApplies 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).
To disable using clang_format to format clang-supported files, set the cmake option FORMAT_SKIP_CLANG to a truthy value, e.g. by invoking CMake with -DFORMAT_SKIP_CLANG=YES, or enabling the option when adding the dependency (recommended).
To specify a extra arguments for cmake-format, use the cmake option CMAKE_FORMAT_EXTRA_ARGS, e.g. by invoking CMake with -DCMAKE_FORMAT_EXTRA_ARGS="-c /path/to/cmake-format-config.{yaml,json,py}",
or by enabling the option when adding the dependency (recommended).
Demo

How to integrate
Using CPM.cmake (recommended)
Basic configuration
After adding CPM.cmake, add the following line to the project's CMakeLists.txt after calling project(...).
include(cmake/CPM.cmake)
CPMAddPackage("gh:TheLartians/Format.cmake@1.8.2")
Advanced configuration
This package supports optional parameters that you can specify in the CPM.cmake OPTIONS argument.
CPMAddPackage(
NAME Format.cmake
VERSION 1.8.2
GITHUB_REPOSITORY TheLartians/Format.cmake
OPTIONS
# set to yes skip cmake formatting
"FORMAT_SKIP_CMAKE NO"
# set to yes skip clang formatting
"FORMAT_SKIP_CLANG NO"
# path to exclude (optional, supports regular expressions)
"CMAKE_FORMAT_EXCLUDE cmake/CPM.cmake"
# extra arguments for cmake_format (optional)
"CMAKE_FORMAT_EXTRA_ARGS -c /path/to/cmake-format.{yaml,json,py}"
)
Using git submodules (not suited for libraries)
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)
Dependencies
Format.cmake requires CMake, clang-format, python 2.7 or python 3, and cmake-format (optional).
Related Skills
apple-reminders
348.0kManage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
gh-issues
348.0kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
healthcheck
348.0kHost security hardening and risk-tolerance configuration for OpenClaw deployments
node-connect
348.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
