diff options
author | Michael Kruse <llvm@meinersbur.de> | 2015-09-14 16:59:50 +0000 |
---|---|---|
committer | Michael Kruse <llvm@meinersbur.de> | 2015-09-14 16:59:50 +0000 |
commit | 69f3788c36f90432cf130fa974fffc517d241742 (patch) | |
tree | dbae596a8573b1c03e069ce91c76a638c4cf6075 /polly | |
parent | 64aa388efaff48652ac235c6e6edab86f9a8df33 (diff) | |
download | llvm-69f3788c36f90432cf130fa974fffc517d241742.tar.gz |
Revise polly-{update|check}-format targets
Summary:
Make clang-format run on each file independently using
add_custom_format (instead using a shell script in utils/). The targets
polly-{update|check}-format depend on these.
The primary motivation is to make them work on Windows, but also
improves them generally:
- Each file update/check can run in parallel (Although they do not take
long to run anyway)
- Implicit dependency on clang-format, so it recompiles if necessary
- polly-check-format shows the formatting difference if failing
Differential Revision: http://reviews.llvm.org/D12837
llvm-svn: 247581
Diffstat (limited to 'polly')
-rw-r--r-- | polly/CMakeLists.txt | 33 | ||||
-rwxr-xr-x | polly/utils/check_format.sh | 31 | ||||
-rwxr-xr-x | polly/utils/update_format.sh | 16 |
3 files changed, 25 insertions, 55 deletions
diff --git a/polly/CMakeLists.txt b/polly/CMakeLists.txt index a020571f8a44..20209e953f44 100644 --- a/polly/CMakeLists.txt +++ b/polly/CMakeLists.txt @@ -188,15 +188,32 @@ file( GLOB_RECURSE islfiles lib/External/isl/*.h lib/External/isl/*.c lib/External/isl/include/isl/*.h lib/External/isl/imath/*.h lib/External/isl/imath/*.c) list( REMOVE_ITEM files ${jsonfiles} ${islfiles}) -add_custom_command( OUTPUT formatting COMMAND - CLANG_FORMAT=${LLVM_BINARY_DIR}/bin/clang-format - ${CMAKE_CURRENT_SOURCE_DIR}/utils/check_format.sh ${files}) -add_custom_target(polly-check-format DEPENDS formatting) + +set(check_format_depends) +set(update_format_depends) +set(i 0) +foreach (file IN LISTS files) + add_custom_command(OUTPUT polly-check-format${i} + COMMAND clang-format -style=llvm ${file} | diff -u ${file} - + VERBATIM + COMMENT "Checking format of ${file}..." + ) + list(APPEND check_format_depends "polly-check-format${i}") + + add_custom_command(OUTPUT polly-update-format${i} + COMMAND clang-format -i -style=llvm ${file} + VERBATIM + COMMENT "Updating format of ${file}..." + ) + list(APPEND update_format_depends "polly-update-format${i}") + + math(EXPR i ${i}+1) +endforeach () + +add_custom_target(polly-check-format DEPENDS ${check_format_depends}) set_target_properties(polly-check-format PROPERTIES FOLDER "Polly") -add_custom_command( OUTPUT formatting-update COMMAND - CLANG_FORMAT=${LLVM_BINARY_DIR}/bin/clang-format - ${CMAKE_CURRENT_SOURCE_DIR}/utils/update_format.sh ${files}) -add_custom_target(polly-update-format DEPENDS formatting-update) + +add_custom_target(polly-update-format DEPENDS ${update_format_depends}) set_target_properties(polly-update-format PROPERTIES FOLDER "Polly") # Set the variable POLLY_LINK_LIBS in the llvm/tools/ dir. diff --git a/polly/utils/check_format.sh b/polly/utils/check_format.sh deleted file mode 100755 index 4d7b033d1a79..000000000000 --- a/polly/utils/check_format.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -CLANG_FORMAT=${CLANG_FORMAT} - -if [ "${CLANG_FORMAT}x" = "x" ]; then - CLANG_FORMAT=`which clang-format` - if [ "${CLANG_FORMAT}x" = "x" ]; then - echo "Error: cannot find clang-format in your path" - exit 1 - fi -fi - -OK=0 - -for ARG in "$@" - do - ${CLANG_FORMAT} -style=llvm $ARG | diff -u $ARG - >&2 - - if [[ $? -eq 1 ]]; then - OK=1 - fi - done - -if [[ $OK -eq "1" ]]; then - echo "Error: clang-format reported formatting differences" - exit 1 -else - echo "OK: clang-format reported no formatting differences" - exit 0 -fi - diff --git a/polly/utils/update_format.sh b/polly/utils/update_format.sh deleted file mode 100755 index 9226fc6af526..000000000000 --- a/polly/utils/update_format.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -CLANG_FORMAT=${CLANG_FORMAT} - -if [ "${CLANG_FORMAT}x" = "x" ]; then - CLANG_FORMAT=`which clang-format` - if [ "${CLANG_FORMAT}x" = "x" ]; then - echo "Error: cannot find clang-format in your path" - exit 1 - fi -fi - -for ARG in "$@" - do - ${CLANG_FORMAT} -i $ARG - done |