2023-11-29 21:54:14 +01:00
|
|
|
cmake_minimum_required(VERSION 3.22)
|
|
|
|
|
|
|
|
project(format-demo)
|
|
|
|
|
2023-11-30 16:28:00 +01:00
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "")
|
2023-11-29 21:54:14 +01:00
|
|
|
add_custom_command(OUTPUT main-formatted.cc
|
|
|
|
DEPENDS main-unformatted.cc .clang-format .clang-tidy
|
2023-11-30 16:28:00 +01:00
|
|
|
BYPRODUCTS main-previous.cc main-diff.cc
|
2023-11-29 21:54:14 +01:00
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/main-unformatted.cc main-formatted.cc
|
2023-11-30 16:28:00 +01:00
|
|
|
COMMAND sh -c "test -f main-formatted.cc && ${CMAKE_COMMAND} -E copy main-formatted.cc main-previous.cc"
|
|
|
|
COMMAND clang-format-14 -i --style=file:${CMAKE_CURRENT_SOURCE_DIR}/.clang-format main-formatted.cc
|
|
|
|
COMMAND clang-tidy-14 --use-color --fix --fix-notes -fix-errors -p ${CMAKE_CURRENT_BINARY_DIR} main-formatted.cc
|
|
|
|
COMMAND chmod 0444 main-formatted.cc
|
|
|
|
# COMMAND sh -c "test -f main-previous.cc && diff -u main-previous.cc main-formatted.cc > main-diff.cc"
|
2023-11-29 21:54:14 +01:00
|
|
|
VERBATIM)
|
2023-11-30 16:28:00 +01:00
|
|
|
|
|
|
|
add_executable(output
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/main-formatted.cc)
|
|
|
|
|
|
|
|
|
2023-11-29 21:54:14 +01:00
|
|
|
add_custom_target(format
|
|
|
|
DEPENDS main-formatted.cc
|
|
|
|
COMMENT "Formatting and linting sources"
|
2023-11-30 16:28:00 +01:00
|
|
|
SOURCES main-unformatted.cc
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/main-formatted.cc
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/main-diff.cc
|
|
|
|
.clang-format
|
|
|
|
.clang-tidy
|
2023-11-29 21:54:14 +01:00
|
|
|
VERBATIM)
|