diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 000000000000..f44b7418125e --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,10 @@ +--- +Checks: > + -*, + performance-faster-string-find, + performance-for-range-copy, + +WarningsAsErrors: '*' +HeaderFilterRegex: '/(?!external)/.*' +AnalyzeTemporaryDtors: false +FormatStyle: none diff --git a/.travis.yml b/.travis.yml index a24f88911744..7e2fa0f4057d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,12 @@ matrix: - secure: M5lyDs0qai15mWHzJdkh0WPfVJJmVZu6SWtYULxatukGPXVwoQvmEtYAwAW+iz6aM+tXksQ/mk6nW5L8UFbHm+n6yrsa5bZU9sGXjilPE8p8bLFYDmIbPRazU+E6pBP3J2CDoAm0XnWkiYQ8feTxKTo6ysLnHAEjyaHTw0+Q1GM= sudo: required language: cpp + # clang-tidy + - os: linux + dist: xenial + env: BUILD_TARGET=linux_clang_tidy + language: cpp + sudo: required # mac_cmake - os: osx env: BUILD_TARGET=mac_cmake diff --git a/tools/travis-scripts/before-install.sh b/tools/travis-scripts/before-install.sh index d0c2ee71d9d2..003c5438e869 100755 --- a/tools/travis-scripts/before-install.sh +++ b/tools/travis-scripts/before-install.sh @@ -65,6 +65,9 @@ function install_environement_for_pull_request() if [ "$BUILD_TARGET" == "linux" ]; then install_linux_environment fi + if [ "$BUILD_TARGET" == "linux_clang_tidy" ]; then + install_linux_environment + fi fi if [ "$TRAVIS_OS_NAME" == "osx" ]; then diff --git a/tools/travis-scripts/run-script.sh b/tools/travis-scripts/run-script.sh index 2505b4525344..7a9bd3dd7c9b 100755 --- a/tools/travis-scripts/run-script.sh +++ b/tools/travis-scripts/run-script.sh @@ -37,6 +37,16 @@ function build_linux() cmake --build . } +function build_linux_clang_tidy() +{ + echo "Building clang tidy test on Linux ..." + cd $COCOS2DX_ROOT/build + mkdir -p clang-tidy-build + cd clang-tidy-build + cmake ../.. -DCMAKE_EXPORT_COMPILE_COMMANDS=on + python $(dirname $(dirname $(readlink -f `which clang-tidy`)))/share/clang/run-clang-tidy.py +} + function build_mac() { NUM_OF_CORES=`getconf _NPROCESSORS_ONLN` @@ -291,6 +301,11 @@ function run_pull_request() build_linux fi + # linux_clang_tidy_test + if [ $BUILD_TARGET == 'linux_clang_tidy' ]; then + build_linux_clang_tidy + fi + # android if [ $BUILD_TARGET == 'android_cpp_ndk-build' ]; then build_android_cpp_ndk-build