Update our tooling (Clang 5 -> 7, GCC 7 -> 8)

This change permits to use up-to-date compilers, clang-tidy and
clang-format

It also refactor the tidy/format step to drop the binary selection from
scripts and perform it directly in travis
This commit is contained in:
Loïc Blot 2018-03-23 11:07:19 +01:00 committed by Loïc Blot
parent aafbdd442f
commit a6a04c4b5b
8 changed files with 38 additions and 35 deletions

@ -13,6 +13,7 @@ BraceWrapping:
AfterUnion: true AfterUnion: true
BeforeCatch: false BeforeCatch: false
BeforeElse: false BeforeElse: false
FixNamespaceComments: false
AllowShortIfStatementsOnASingleLine: false AllowShortIfStatementsOnASingleLine: false
IndentCaseLabels: false IndentCaseLabels: false
AccessModifierOffset: -8 AccessModifierOffset: -8

@ -10,24 +10,26 @@ matrix:
fast_finish: true fast_finish: true
include: include:
- env: LINT=1 - env: CLANG_FORMAT=clang-format-7
compiler: clang compiler: clang
os: linux os: linux
addons: addons:
apt: apt:
packages: ['clang-format-5.0'] packages: ['clang-format-7']
sources: &sources sources: &sources
- llvm-toolchain-trusty-5.0 - ubuntu-toolchain-r-test
- llvm-toolchain-trusty-7
- env: CLANG_TIDY=1 - env: CLANG_TIDY=clang-tidy-7
compiler: clang compiler: clang
os: linux os: linux
script: ./util/travis/clangtidy.sh script: ./util/travis/clangtidy.sh
addons: addons:
apt: apt:
packages: ['clang-tidy-5.0'] packages: ['clang-7', 'clang++-7', 'clang-tools-7', 'clang-tidy-7']
sources: &sources sources: &sources
- llvm-toolchain-trusty-5.0 - ubuntu-toolchain-r-test
- llvm-toolchain-trusty-7
- env: PLATFORM=Win32 - env: PLATFORM=Win32
compiler: gcc compiler: gcc
@ -63,12 +65,12 @@ matrix:
sources: &sources sources: &sources
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
- env: PLATFORM=Unix COMPILER=gcc-7 - env: PLATFORM=Unix COMPILER=gcc-8
compiler: gcc compiler: gcc
os: linux os: linux
addons: addons:
apt: apt:
packages: ['gcc-7', 'g++-7'] packages: ['gcc-8', 'g++-8']
sources: &sources sources: &sources
- ubuntu-toolchain-r-test - ubuntu-toolchain-r-test
@ -81,29 +83,33 @@ matrix:
sources: &sources sources: &sources
- llvm-toolchain-trusty-3.6 - llvm-toolchain-trusty-3.6
- env: PLATFORM=Unix COMPILER=clang-5.0 - env: PLATFORM=Unix COMPILER=clang-7
compiler: clang compiler: clang
os: linux os: linux
addons: addons:
apt: apt:
packages: ['clang-5.0', 'clang++-5.0'] packages: ['clang-7', 'clang++-7']
sources: &sources sources: &sources
- llvm-toolchain-trusty-5.0 - ubuntu-toolchain-r-test
- llvm-toolchain-trusty-7
- env: PLATFORM=Unix COMPILER=clang-5.0 FREETYPE=0 - env: PLATFORM=Unix COMPILER=clang-7 FREETYPE=0
compiler: clang compiler: clang
os: linux os: linux
addons: addons:
apt: apt:
packages: ['clang-5.0', 'clang++-5.0'] packages: ['clang-7', 'clang++-7']
sources: &sources sources: &sources
- llvm-toolchain-trusty-5.0 - ubuntu-toolchain-r-test
- llvm-toolchain-trusty-7
- env: PLATFORM=Unix COMPILER=clang-5.0 VALGRIND=1 - env: PLATFORM=Unix COMPILER=clang-7 VALGRIND=1
compiler: clang compiler: clang
os: linux os: linux
addons: addons:
apt: apt:
packages: ['valgrind', 'clang-5.0', 'clang++-5.0'] packages: ['valgrind', 'clang-7', 'clang++-7']
sources: &sources sources: &sources
- llvm-toolchain-trusty-5.0 - ubuntu-toolchain-r-test
- llvm-toolchain-trusty-7

@ -2916,13 +2916,13 @@ public:
ret[0] = unicode::BOM; ret[0] = unicode::BOM;
else if (endian == unicode::EUTFEE_LITTLE) else if (endian == unicode::EUTFEE_LITTLE)
{ {
uchar8_t* ptr8 = reinterpret_cast<uchar8_t*>(&ret[0]); uchar8_t* ptr8 = reinterpret_cast<uchar8_t*>(ret.c_str());
*ptr8++ = unicode::BOM_ENCODE_UTF16_LE[0]; *ptr8++ = unicode::BOM_ENCODE_UTF16_LE[0];
*ptr8 = unicode::BOM_ENCODE_UTF16_LE[1]; *ptr8 = unicode::BOM_ENCODE_UTF16_LE[1];
} }
else else
{ {
uchar8_t* ptr8 = reinterpret_cast<uchar8_t*>(&ret[0]); uchar8_t* ptr8 = reinterpret_cast<uchar8_t*>(ret.c_str());
*ptr8++ = unicode::BOM_ENCODE_UTF16_BE[0]; *ptr8++ = unicode::BOM_ENCODE_UTF16_BE[0];
*ptr8 = unicode::BOM_ENCODE_UTF16_BE[1]; *ptr8 = unicode::BOM_ENCODE_UTF16_BE[1];
} }

@ -4,14 +4,14 @@ echo "Preparing for $TRAVIS_COMMIT_RANGE"
. util/travis/common.sh . util/travis/common.sh
if [[ "${LINT}" == "1" ]]; then if [[ ! -z "${CLANG_FORMAT}" ]]; then
exit 0 exit 0
fi fi
needs_compile || exit 0 needs_compile || exit 0
if [[ $PLATFORM == "Unix" ]] || [[ $CLANG_TIDY == "1" ]]; then if [[ $PLATFORM == "Unix" ]] || [[ ! -z "${CLANG_TIDY}" ]]; then
if [[ $TRAVIS_OS_NAME == "linux" ]] || [[ $CLANG_TIDY == "1" ]]; then if [[ $TRAVIS_OS_NAME == "linux" ]] || [[ ! -z "${CLANG_TIDY}" ]]; then
install_linux_deps install_linux_deps
else else
install_macosx_deps install_macosx_deps

@ -3,9 +3,7 @@
needs_compile || exit 0 needs_compile || exit 0
if hash clang-tidy-5.0 2>/dev/null; then if [ -z "${CLANG_TIDY}" ]; then
CLANG_TIDY=clang-tidy-5.0
else
CLANG_TIDY=clang-tidy CLANG_TIDY=clang-tidy
fi fi

@ -7,15 +7,15 @@ set_linux_compiler_env() {
elif [[ "${COMPILER}" == "gcc-6" ]]; then elif [[ "${COMPILER}" == "gcc-6" ]]; then
export CC=gcc-6 export CC=gcc-6
export CXX=g++-6 export CXX=g++-6
elif [[ "${COMPILER}" == "gcc-7" ]]; then elif [[ "${COMPILER}" == "gcc-8" ]]; then
export CC=gcc-7 export CC=gcc-8
export CXX=g++-7 export CXX=g++-8
elif [[ "${COMPILER}" == "clang-3.6" ]]; then elif [[ "${COMPILER}" == "clang-3.6" ]]; then
export CC=clang-3.6 export CC=clang-3.6
export CXX=clang++-3.6 export CXX=clang++-3.6
elif [[ "${COMPILER}" == "clang-5.0" ]]; then elif [[ "${COMPILER}" == "clang-7" ]]; then
export CC=clang-5.0 export CC=clang-7
export CXX=clang++-5.0 export CXX=clang++-7
fi fi
} }

@ -1,9 +1,7 @@
#! /bin/bash #! /bin/bash
function perform_lint() { function perform_lint() {
echo "Performing LINT..." echo "Performing LINT..."
if hash clang-format-5.0 2>/dev/null; then if [ -z "${CLANG_FORMAT}" ]; then
CLANG_FORMAT=clang-format-5.0
else
CLANG_FORMAT=clang-format CLANG_FORMAT=clang-format
fi fi
echo "LINT: Using binary $CLANG_FORMAT" echo "LINT: Using binary $CLANG_FORMAT"

@ -4,7 +4,7 @@
needs_compile || exit 0 needs_compile || exit 0
if [[ "$LINT" == "1" ]]; then if [[ ! -z "${CLANG_FORMAT}" ]]; then
# Lint and exit CI # Lint and exit CI
perform_lint perform_lint
exit 0 exit 0