diff --git a/.travis.yml b/.travis.yml index 33e6af00..21f5f9bc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,97 +7,91 @@ matrix: apt: sources: ['ubuntu-toolchain-r-test'] packages: ['g++-4.4'] - env: SCRIPT=cmake CMAKE_CXX_COMPILER=g++-4.4 + env: SCRIPT=cmake GCC=4.4 - compiler: gcc addons: apt: sources: ['ubuntu-toolchain-r-test'] packages: ['g++-4.5'] - env: SCRIPT=cmake CMAKE_CXX_COMPILER=g++-4.5 + env: SCRIPT=cmake GCC=4.5 - compiler: gcc addons: apt: sources: ['ubuntu-toolchain-r-test'] packages: ['g++-4.6'] - env: SCRIPT=cmake CMAKE_CXX_COMPILER=g++-4.6 + env: SCRIPT=cmake GCC=4.6 - compiler: gcc addons: apt: sources: ['ubuntu-toolchain-r-test'] packages: ['g++-4.7'] - env: SCRIPT=cmake CMAKE_CXX_COMPILER=g++-4.7 + env: SCRIPT=cmake GCC=4.7 - compiler: gcc addons: apt: sources: ['ubuntu-toolchain-r-test'] packages: ['g++-4.8'] - env: SCRIPT=cmake CMAKE_CXX_COMPILER=g++-4.8 + env: SCRIPT=cmake GCC=4.8 SANITIZE=address - compiler: gcc addons: apt: sources: ['ubuntu-toolchain-r-test'] packages: ['g++-4.9'] - env: SCRIPT=cmake CMAKE_CXX_COMPILER=g++-4.9 + env: SCRIPT=cmake GCC=4.9 SANITIZE=leak - compiler: gcc addons: apt: sources: ['ubuntu-toolchain-r-test'] packages: ['g++-5'] - env: SCRIPT=cmake CMAKE_CXX_COMPILER=g++-5 + env: SCRIPT=cmake GCC=5 SANITIZE=undefined - compiler: clang - env: SCRIPT=cmake CMAKE_CXX_COMPILER=clang++ + env: SCRIPT=cmake - compiler: clang addons: apt: sources: ['ubuntu-toolchain-r-test','llvm-toolchain-precise-3.5'] packages: ['clang-3.5'] - env: SCRIPT=cmake CMAKE_CXX_COMPILER=clang++-3.5 + env: SCRIPT=cmake CLANG=3.5 SANITIZE=address - compiler: clang addons: apt: sources: ['ubuntu-toolchain-r-test','llvm-toolchain-precise-3.6'] packages: ['clang-3.6'] - env: SCRIPT=cmake CMAKE_CXX_COMPILER=clang++-3.6 + env: SCRIPT=cmake CLANG=3.6 SANITIZE=leak - compiler: clang addons: apt: sources: ['ubuntu-toolchain-r-test','llvm-toolchain-precise-3.7'] packages: ['clang-3.7'] - env: SCRIPT=cmake CMAKE_CXX_COMPILER=clang++-3.7 + env: SCRIPT=cmake CLANG=3.7 - compiler: clang addons: apt: sources: ['ubuntu-toolchain-r-test','llvm-toolchain-precise-3.8'] packages: ['clang-3.8'] - env: SCRIPT=cmake CMAKE_CXX_COMPILER=clang++-3.8 - - compiler: clang - addons: - apt: - sources: ['ubuntu-toolchain-r-test','llvm-toolchain-precise-3.8'] - packages: ['clang-3.8'] - env: SCRIPT=sanitize CMAKE_CXX_COMPILER=clang++-3.8 + env: SCRIPT=cmake CLANG=3.8 SANITIZE=undefined - compiler: gcc env: SCRIPT=coverage - os: osx osx_image: xcode6.4 compiler: clang - env: SCRIPT=cmake-osx + env: SCRIPT=cmake - os: osx osx_image: xcode7 compiler: clang - env: SCRIPT=cmake-osx + env: SCRIPT=cmake - os: osx osx_image: xcode7.1 compiler: clang - env: SCRIPT=cmake-osx + env: SCRIPT=cmake - os: osx osx_image: xcode7.2 compiler: clang - env: SCRIPT=cmake-osx + env: SCRIPT=cmake - os: osx osx_image: xcode7.3 compiler: clang - env: SCRIPT=cmake-osx + env: SCRIPT=cmake SANITIZE=address - env: SCRIPT=arduino VERSION=1.6.7 BOARD=arduino:avr:uno - env: SCRIPT=arduino VERSION=1.6.12 BOARD=arduino:avr:uno - env: SCRIPT=platformio BOARD=uno diff --git a/CMakeLists.txt b/CMakeLists.txt index d5c77399..05994f4e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,8 +18,4 @@ if(${COVERAGE}) set(CMAKE_CXX_FLAGS "-g -O0 -fprofile-arcs -ftest-coverage") endif() -if(${SANITIZE}) - set(CMAKE_CXX_FLAGS "-fsanitize=address,undefined") -endif() - add_subdirectory(test) diff --git a/scripts/travis/cmake-osx.sh b/scripts/travis/cmake-osx.sh deleted file mode 100755 index 54a7719c..00000000 --- a/scripts/travis/cmake-osx.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -eux - -URL=https://cmake.org/files/v3.4/cmake-3.4.3-Darwin-x86_64.tar.gz - -curl -sS $URL | tar xz -C /tmp --strip 1 - -/tmp/CMake.app/Contents/bin/cmake . -make -make test diff --git a/scripts/travis/cmake.sh b/scripts/travis/cmake.sh index 0aa9bd14..44bf5ffb 100755 --- a/scripts/travis/cmake.sh +++ b/scripts/travis/cmake.sh @@ -1,9 +1,30 @@ -#!/bin/sh -eux - -URL=https://cmake.org/files/v3.4/cmake-3.4.3-Linux-x86_64.tar.gz +#!/bin/sh -ex +if [ $(uname) = 'Darwin' ]; then + URL=https://cmake.org/files/v3.4/cmake-3.4.3-Darwin-x86_64.tar.gz + CMAKE=/tmp/CMake.app/Contents/bin/cmake + CTEST=/tmp/CMake.app/Contents/bin/ctest +else + URL=https://cmake.org/files/v3.4/cmake-3.4.3-Linux-x86_64.tar.gz + CMAKE=/tmp/bin/cmake + CTEST=/tmp/bin/ctest +fi curl -sS $URL | tar xz -C /tmp --strip 1 -/tmp/bin/cmake -DCMAKE_CXX_COMPILER=$CMAKE_CXX_COMPILER . -make -make test +if [ -n "$GCC" ]; then + export CC="gcc-$GCC" + export CXX="g++-$GCC" +fi + +if [ -n "$CLANG" ]; then + export CC="clang-$CLANG" + export CXX="clang++-$CLANG" +fi + +if [ -n "$SANITIZE" ]; then + export CXXFLAGS="-fsanitize=$SANITIZE" +fi + +$CMAKE . +$CMAKE --build . +$CTEST -VV . diff --git a/scripts/travis/sanitize.sh b/scripts/travis/sanitize.sh deleted file mode 100755 index 7a42500d..00000000 --- a/scripts/travis/sanitize.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -eux - -curl https://cmake.org/files/v3.4/cmake-3.4.0-Linux-x86_64.tar.gz | tar xz -C /tmp --strip 1 - -/tmp/bin/cmake -DSANITIZE=true . -cmake --build . -ctest -VV .