summaryrefslogtreecommitdiffstats
path: root/cmake/lint-targets.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/lint-targets.cmake')
-rw-r--r--cmake/lint-targets.cmake32
1 files changed, 32 insertions, 0 deletions
diff --git a/cmake/lint-targets.cmake b/cmake/lint-targets.cmake
new file mode 100644
index 0000000..1ffd8c0
--- /dev/null
+++ b/cmake/lint-targets.cmake
@@ -0,0 +1,32 @@
+set(
+ FORMAT_PATTERNS
+ src/*.cc src/*.hh
+ test/*.cc test/*.hh
+ CACHE STRING
+ "; separated patterns relative to the project source dir to format"
+)
+
+set(FORMAT_COMMAND clang-format CACHE STRING "Formatter to use")
+
+add_custom_target(
+ format-check
+ COMMAND "${CMAKE_COMMAND}"
+ -D "FORMAT_COMMAND=${FORMAT_COMMAND}"
+ -D "PATTERNS=${FORMAT_PATTERNS}"
+ -P "${PROJECT_SOURCE_DIR}/cmake/lint.cmake"
+ WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
+ COMMENT "Linting the code"
+ VERBATIM
+)
+
+add_custom_target(
+ format-fix
+ COMMAND "${CMAKE_COMMAND}"
+ -D "FORMAT_COMMAND=${FORMAT_COMMAND}"
+ -D "PATTERNS=${FORMAT_PATTERNS}"
+ -D FIX=YES
+ -P "${PROJECT_SOURCE_DIR}/cmake/lint.cmake"
+ WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
+ COMMENT "Fixing the code"
+ VERBATIM
+)