mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-27 15:41:05 +08:00
Problem: clang-format not run on CI
Solution: add clang-format to cmake, and add another travis-ci build type
This commit is contained in:
parent
41f459e1dc
commit
4161793d19
@ -84,6 +84,8 @@ matrix:
|
|||||||
- env: BUILD_TYPE=android CURVE=tweetnacl
|
- env: BUILD_TYPE=android CURVE=tweetnacl
|
||||||
os: linux
|
os: linux
|
||||||
dist: trusty
|
dist: trusty
|
||||||
|
- env: BUILD_TYPE=cmake DO_CLANG_FORMAT_CHECK=1
|
||||||
|
os: linux
|
||||||
|
|
||||||
sudo: required
|
sudo: required
|
||||||
|
|
||||||
|
@ -1138,3 +1138,5 @@ if (MSVC_VERSION EQUAL 1600)
|
|||||||
file (APPEND "${ZMQ_SLN_FILENAME}" "\n# This should be regenerated!\n")
|
file (APPEND "${ZMQ_SLN_FILENAME}" "\n# This should be regenerated!\n")
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
include(ClangFormat)
|
||||||
|
36
builds/cmake/Modules/ClangFormat.cmake
Normal file
36
builds/cmake/Modules/ClangFormat.cmake
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# additional target to perform clang-format run, requires clang-format
|
||||||
|
|
||||||
|
# get all project files
|
||||||
|
file(GLOB_RECURSE ALL_SOURCE_FILES RELATIVE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/*.cpp ${CMAKE_SOURCE_DIR}/*.h ${CMAKE_SOURCE_DIR}/*.hpp )
|
||||||
|
|
||||||
|
if("${CLANG_FORMAT}" STREQUAL "")
|
||||||
|
set(CLANG_FORMAT "clang-format")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_custom_target(
|
||||||
|
clang-format
|
||||||
|
COMMAND ${CLANG_FORMAT} -style=file -i ${ALL_SOURCE_FILES}
|
||||||
|
)
|
||||||
|
|
||||||
|
function(JOIN VALUES GLUE OUTPUT)
|
||||||
|
string (REPLACE ";" "${GLUE}" _TMP_STR "${VALUES}")
|
||||||
|
set (${OUTPUT} "${_TMP_STR}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
configure_file(builds/cmake/clang-format-check.sh.in clang-format-check.sh @ONLY)
|
||||||
|
|
||||||
|
add_custom_target(
|
||||||
|
clang-format-check
|
||||||
|
COMMAND chmod +x clang-format-check.sh
|
||||||
|
COMMAND ./clang-format-check.sh
|
||||||
|
#COMMAND ${CLANG_FORMAT} -style=file -output-replacements-xml ${ALL_SOURCE_FILES} >clang-format-replacements.xml
|
||||||
|
#COMMAND grep \"<replacement \" clang-format-replacements.xml >/dev/null && exit 1
|
||||||
|
COMMENT "Checking correct formatting according to .clang-format file"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target(
|
||||||
|
clang-format-diff
|
||||||
|
COMMAND ${CLANG_FORMAT} -style=file -i ${ALL_SOURCE_FILES}
|
||||||
|
COMMAND git diff ${ALL_SOURCE_FILES}
|
||||||
|
COMMENT "Formatting with clang-format and showing differences with latest commit"
|
||||||
|
)
|
@ -31,4 +31,11 @@ elif [ $CURVE == "libsodium" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Build, check, and install from local source
|
# Build, check, and install from local source
|
||||||
|
if [ "$DO_CLANG_FORMAT_CHECK" -eq "1" ] ; then
|
||||||
|
if ! (cd ../..; mkdir build_cmake && cd build_cmake && PKG_CONFIG_PATH=${BUILD_PREFIX}/lib/pkgconfig cmake "${CMAKE_OPTS[@]}" .. && make clang-format-check) ; then
|
||||||
|
make clang-format-diff
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
( cd ../..; mkdir build_cmake && cd build_cmake && PKG_CONFIG_PATH=${BUILD_PREFIX}/lib/pkgconfig cmake "${CMAKE_OPTS[@]}" .. && make -j5 all VERBOSE=1 && make install && make -j5 test ) || exit 1
|
( cd ../..; mkdir build_cmake && cd build_cmake && PKG_CONFIG_PATH=${BUILD_PREFIX}/lib/pkgconfig cmake "${CMAKE_OPTS[@]}" .. && make -j5 all VERBOSE=1 && make install && make -j5 test ) || exit 1
|
||||||
|
fi
|
||||||
|
14
builds/cmake/clang-format-check.sh.in
Normal file
14
builds/cmake/clang-format-check.sh.in
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
FAILED=0
|
||||||
|
IFS=";"
|
||||||
|
FILES="@ALL_SOURCE_FILES@"
|
||||||
|
IDS=$(echo -en "\n\b")
|
||||||
|
for FILE in $FILES
|
||||||
|
do
|
||||||
|
@CLANG_FORMAT@ -style=file -output-replacements-xml "$FILE" | grep "<replacement " >/dev/null &&
|
||||||
|
{
|
||||||
|
echo "$FILE is not correctly formatted"
|
||||||
|
FAILED=1
|
||||||
|
}
|
||||||
|
done
|
||||||
|
if [ "$FAILED" -eq "1" ] ; then exit 1 ; fi
|
Loading…
x
Reference in New Issue
Block a user