diff options
-rw-r--r-- | kde-modules/KDEClangFormat.cmake | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/kde-modules/KDEClangFormat.cmake b/kde-modules/KDEClangFormat.cmake index 057433c8..6d4ef0f4 100644 --- a/kde-modules/KDEClangFormat.cmake +++ b/kde-modules/KDEClangFormat.cmake @@ -40,24 +40,26 @@ endif() # formatting target function(KDE_CLANG_FORMAT) - # add target only if clang-format available + # add target without specific commands first, we add the real calls file-per-file to avoid command line length issues + add_custom_target(clang-format COMMENT "Formatting sources in ${CMAKE_CURRENT_SOURCE_DIR} with ${KDE_CLANG_FORMAT_EXECUTABLE}...") + + # run clang-format only if available, else signal the user what is missing if(KDE_CLANG_FORMAT_EXECUTABLE) - add_custom_target(clang-format - COMMAND - ${KDE_CLANG_FORMAT_EXECUTABLE} - -style=file - -i - ${ARGV} - WORKING_DIRECTORY - ${CMAKE_CURRENT_SOURCE_DIR} - COMMENT - "Formatting sources in ${CMAKE_CURRENT_SOURCE_DIR} with ${KDE_CLANG_FORMAT_EXECUTABLE}..." - ) + foreach(_file ${ARGV}) + add_custom_command(TARGET clang-format + COMMAND + ${KDE_CLANG_FORMAT_EXECUTABLE} + -style=file + -i + ${_file} + WORKING_DIRECTORY + ${CMAKE_CURRENT_SOURCE_DIR} + ) + endforeach() else() - add_custom_target(clang-format - COMMAND - ${CMAKE_COMMAND} -E echo - "Could not set up the clang-format target as the clang-format executable is missing." - ) + add_custom_command(TARGET clang-format + COMMAND + ${CMAKE_COMMAND} -E echo "Could not set up the clang-format target as the clang-format executable is missing." + ) endif() endfunction() |