diff --git a/.travis.sh b/.travis.sh index bb8ebc8c..acbe37ac 100755 --- a/.travis.sh +++ b/.travis.sh @@ -58,6 +58,9 @@ elif [[ ${MODE} = cmake-oos ]]; then find ROOT -printf "%P\n" | sort elif [[ ${MODE} = cppcheck ]]; then cppcheck --quiet --error-exitcode=1 . +elif [[ ${MODE} = clang-format ]]; then + ./apply-clang-format.sh + git diff --exit-code else ./qa.sh ${CONFIGURE_ARGS} fi diff --git a/.travis.yml b/.travis.yml index 01dd26e7..71a434a3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,6 +21,8 @@ env: matrix: include: + - os: linux + env: MODE=clang-format - os: linux env: MODE=cmake-oos CMAKE_ARGS=-DXML_ATTR_INFO=ON - os: linux @@ -46,6 +48,7 @@ addons: - ubuntu-toolchain-r-test packages: - clang-9 + - clang-format-9 - cmake - cppcheck - docbook2x diff --git a/expat/apply-clang-format.sh b/expat/apply-clang-format.sh new file mode 100755 index 00000000..420b62c4 --- /dev/null +++ b/expat/apply-clang-format.sh @@ -0,0 +1,49 @@ +#! /usr/bin/env bash +# __ __ _ +# ___\ \/ /_ __ __ _| |_ +# / _ \\ /| '_ \ / _` | __| +# | __// \| |_) | (_| | |_ +# \___/_/\_\ .__/ \__,_|\__| +# |_| XML parser +# +# Copyright (c) 2019 Expat development team +# Licensed under the MIT license: +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to permit +# persons to whom the Software is furnished to do so, subject to the +# following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +# NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +# USE OR OTHER DEALINGS IN THE SOFTWARE. + +set -e +set -u +set -o pipefail + +find \ + -name '*.[ch]' \ + -o -name '*.cpp' \ + -o -name '*.cxx' \ + -o -name '*.h.cmake' \ + | sort \ + | xargs clang-format -i -style=file -verbose + +dos2unix expat_config.h.cmake +sed \ + -e 's, @$,@,' \ + -e 's,#\( \+\)cmakedefine,\1#cmakedefine,' \ + -i \ + expat_config.h.cmake +unix2dos expat_config.h.cmake