mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2025-01-12 17:30:15 +00:00
Travis CI: add clang-format check
Fixes https://github.com/KhronosGroup/SPIRV-Tools/issues/1029
This commit is contained in:
parent
1af6c4ad28
commit
235ef34571
11
.travis.yml
11
.travis.yml
@ -32,6 +32,8 @@ matrix:
|
|||||||
- env: BUILD_ANDROID_CMAKE=ON
|
- env: BUILD_ANDROID_CMAKE=ON
|
||||||
# Additional build using Android NDK with Android.mk
|
# Additional build using Android NDK with Android.mk
|
||||||
- env: BUILD_ANDROID_MK=ON
|
- env: BUILD_ANDROID_MK=ON
|
||||||
|
# Additional check over format
|
||||||
|
- env: CHECK_FORMAT=ON
|
||||||
exclude:
|
exclude:
|
||||||
# Skip GCC builds on macOS.
|
# Skip GCC builds on macOS.
|
||||||
- os: osx
|
- os: osx
|
||||||
@ -54,6 +56,9 @@ before_install:
|
|||||||
git clone --depth=1 https://github.com/taka-no-me/android-cmake.git $HOME/android-cmake;
|
git clone --depth=1 https://github.com/taka-no-me/android-cmake.git $HOME/android-cmake;
|
||||||
export TOOLCHAIN_PATH=$HOME/android-cmake/android.toolchain.cmake;
|
export TOOLCHAIN_PATH=$HOME/android-cmake/android.toolchain.cmake;
|
||||||
fi
|
fi
|
||||||
|
- if [[ "$CHECK_FORMAT" == "ON" ]]; then
|
||||||
|
curl -L http://llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format/clang-format-diff.py -o utils/clang-format-diff.py;
|
||||||
|
fi
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- git clone --depth=1 https://github.com/KhronosGroup/SPIRV-Headers external/spirv-headers
|
- git clone --depth=1 https://github.com/KhronosGroup/SPIRV-Headers external/spirv-headers
|
||||||
@ -65,8 +70,8 @@ script:
|
|||||||
# Due to the limitation of Travis platform, we cannot start too many concurrent jobs.
|
# Due to the limitation of Travis platform, we cannot start too many concurrent jobs.
|
||||||
# Otherwise GCC will panic with internal error, possibility because of memory issues.
|
# Otherwise GCC will panic with internal error, possibility because of memory issues.
|
||||||
# ctest with the current tests doesn't profit from using more than 4 threads.
|
# ctest with the current tests doesn't profit from using more than 4 threads.
|
||||||
- export NPROC=4;
|
- export NPROC=4
|
||||||
- mkdir build && cd build;
|
- mkdir build && cd build
|
||||||
- if [[ "$BUILD_ANDROID_MK" == "ON" ]]; then
|
- if [[ "$BUILD_ANDROID_MK" == "ON" ]]; then
|
||||||
export BUILD_DIR=$(pwd);
|
export BUILD_DIR=$(pwd);
|
||||||
mkdir ${BUILD_DIR}/libs;
|
mkdir ${BUILD_DIR}/libs;
|
||||||
@ -82,6 +87,8 @@ script:
|
|||||||
-DSPIRV_BUILD_COMPRESSION=ON
|
-DSPIRV_BUILD_COMPRESSION=ON
|
||||||
-DSPIRV_SKIP_TESTS=ON ..;
|
-DSPIRV_SKIP_TESTS=ON ..;
|
||||||
make -j${NPROC};
|
make -j${NPROC};
|
||||||
|
elif [[ "$CHECK_FORMAT" == "ON" ]]; then
|
||||||
|
./utils/check_code_format.sh;
|
||||||
else
|
else
|
||||||
cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DSPIRV_BUILD_COMPRESSION=ON -DCMAKE_INSTALL_PREFIX=install ..;
|
cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DSPIRV_BUILD_COMPRESSION=ON -DCMAKE_INSTALL_PREFIX=install ..;
|
||||||
make -j${NPROC} install;
|
make -j${NPROC} install;
|
||||||
|
37
utils/check_code_format.sh
Executable file
37
utils/check_code_format.sh
Executable file
@ -0,0 +1,37 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Copyright (c) 2017 Google Inc.
|
||||||
|
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
# Script to determine if source code in Pull Request is properly formatted.
|
||||||
|
# Exits with non 0 exit code if formatting is needed.
|
||||||
|
#
|
||||||
|
# This script assumes to be invoked at the project root directory.
|
||||||
|
|
||||||
|
FILES_TO_CHECK=$(git diff --name-only master | grep -E ".*\.(cpp|cc|c\+\+|cxx|c|h|hpp)$")
|
||||||
|
|
||||||
|
if [ -z "${FILES_TO_CHECK}" ]; then
|
||||||
|
echo "No source code to check for formatting."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
FORMAT_DIFF=$(git diff -U0 master -- ${FILES_TO_CHECK} | python ./utils/clang-format-diff.py -p1 -style=file)
|
||||||
|
|
||||||
|
if [ -z "${FORMAT_DIFF}" ]; then
|
||||||
|
echo "All source code in PR properly formatted."
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "Found formatting errors!"
|
||||||
|
echo "${FORMAT_DIFF}"
|
||||||
|
exit 1
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user