summaryrefslogtreecommitdiff
path: root/.travis.yml
diff options
context:
space:
mode:
authorKirk Shoop <kirk.shoop@microsoft.com>2015-06-04 09:17:08 -0700
committerKirk Shoop <kirk.shoop@microsoft.com>2015-06-04 09:17:08 -0700
commitb50f346d83ee368337b7f9f4f1dc663cbf573df4 (patch)
tree4500b72e2e15a8f2253ee72f3487530c2c276296 /.travis.yml
parent9c21b7c3b1250ccab0dc543e1eb6de5c9cfd4ced (diff)
parent001ac1e827530a3b0e7411b77c37be89c95251c0 (diff)
downloadRxCpp-b50f346d83ee368337b7f9f4f1dc663cbf573df4.tar.gz
Merge pull request #139 from kirkshoop/fixdoxygen
refactor CMake
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml163
1 files changed, 140 insertions, 23 deletions
diff --git a/.travis.yml b/.travis.yml
index 5b86c92..8e4b442 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,35 +1,152 @@
+sudo: true
language: cpp
-os:
-- linux
-- osx
-compiler:
-- clang
-- gcc
env:
- matrix:
- - CMAKE_BUILD_TYPE=RelWithDebInfo
global:
secure: FNZOWYO89qsT9kQKngrYbpnqCTMCSCSQ2rnZ3l17KHctOfS554TTDS+dfxPYz2XHm6azYDVcyBSs2gWJ6TmXZZZqEfr3X4VV4ooAa9PoeIkvVlT654zjZwxeXPYXrHFXZh/ImLUGWjsxRaUHYOv5SzyNGcZv07dtLKVd0ykhbH4=
+# Test matrix:
+# - Build matrix per compiler: C++11/C++14 + Debug/Release
+# - Optionally: AddressSanitizer (ASAN)
+# - Valgrind: all release builds are also tested with valgrind
+# - clang 3.4, 3.5, 3.6, trunk
+# - Note: 3.4 and trunk are tested with/without ASAN,
+# the rest is only tested with ASAN=On.
+# - gcc 4.9, 5.0
+#
matrix:
- allow_failures:
- - compiler: clang
- os: linux
- exclude:
- - compiler: gcc
- os: osx
+ include:
+ # Test clang-3.4: C++11, Buidd=Debug/Release, ASAN=On/Off
+ # - env: CLANG_VERSION=3.4 BUILD_TYPE=Debug CPP=11 ASAN=On LIBCXX=On
+ # os: linux
+ # compiler: clang34
+ # addons: &clang34
+ # apt:
+ # packages:
+ # - valgrind
+ # sources:
+ # - ubuntu-toolchain-r-test
+
+ # - env: CLANG_VERSION=3.4 BUILD_TYPE=Release CPP=11 ASAN=On LIBCXX=On
+ # os: linux
+ # compiler: clang
+ # addons: *clang34
+
+ # Test clang-3.7: C++11/C++14, Buidd=Debug/Release, ASAN=On/Off
+ # - env: CLANG_VERSION=3.7 BUILD_TYPE=Debug CPP=11 ASAN=On LIBCXX=On
+ # os: linux
+ # addons: &clang37
+ # apt:
+ # packages:
+ # - clang-3.7
+ # - valgrind
+ # sources:
+ # - ubuntu-toolchain-r-test
+ # - llvm-toolchain-precise
+
+ - env: BUILD_TYPE=Release CPP=11 ASAN=On LIBCXX=On
+ os: osx
+ compiler: clang
+
+ - env: CLANG_VERSION=3.7 BUILD_TYPE=Release CPP=11 ASAN=On LIBCXX=On
+ os: linux
+ compiler: clang
+ addons: &clang37
+ apt:
+ packages:
+ - clang-3.7
+ sources:
+ - ubuntu-toolchain-r-test
+ - llvm-toolchain-precise
+
+ # - env: CLANG_VERSION=3.7 BUILD_TYPE=Debug CPP=14 ASAN=On LIBCXX=On
+ # os: linux
+ # addons: *clang37
+
+ # - env: CLANG_VERSION=3.7 BUILD_TYPE=Release CPP=14 ASAN=On LIBCXX=On
+ # os: linux
+ # addons: *clang37
+
+ # - env: CLANG_VERSION=3.7 BUILD_TYPE=Debug CPP=11 ASAN=Off LIBCXX=On
+ # os: linux
+ # addons: *clang37
+
+ # - env: CLANG_VERSION=3.7 BUILD_TYPE=Release CPP=11 ASAN=Off LIBCXX=On
+ # os: linux
+ # addons: *clang37
+
+ # - env: CLANG_VERSION=3.7 BUILD_TYPE=Debug CPP=14 ASAN=Off LIBCXX=On
+ # os: linux
+ # addons: *clang37
+
+ # - env: CLANG_VERSION=3.7 BUILD_TYPE=Release CPP=14 ASAN=Off LIBCXX=On
+ # os: linux
+ # addons: *clang37
+
+ # Test gcc-4.9: C++11, Build=Debug/Release, ASAN=Off
+ # - env: GCC_VERSION=4.9 BUILD_TYPE=Debug CPP=11 ASAN=Off LIBCXX=Off
+ # os: linux
+ # addons: &gcc49
+ # apt:
+ # packages:
+ # - g++-4.9
+ # - valgrind
+ # sources:
+ # - ubuntu-toolchain-r-test
+
+ - env: GCC_VERSION=4.9 BUILD_TYPE=Release CPP=11 ASAN=Off LIBCXX=Off
+ os: linux
+ compiler: gcc
+ addons: &gcc49
+ apt:
+ packages:
+ - g++-4.9
+ - cmake
+ - doxygen
+ - graphviz
+ sources:
+ - ubuntu-toolchain-r-test
+ - kubuntu-backports
+
+ # Test gcc-5.0: C++11/14, Build=Debug/Release, ASAN=Off
+ # - env: GCC_VERSION=5 BUILD_TYPE=Debug CPP=11 ASAN=Off LIBCXX=Off
+ # os: linux
+ # addons: &gcc5
+ # apt:
+ # packages:
+ # - gcc-5
+ # - valgrind
+ # sources:
+ # - ubuntu-toolchain-r-test
+
+ # - env: GCC_VERSION=5 BUILD_TYPE=Release CPP=11 ASAN=Off LIBCXX=Off
+ # os: linux
+ # addons: *gcc5
+
+ # - env: GCC_VERSION=5 BUILD_TYPE=Debug CPP=14 ASAN=Off LIBCXX=Off
+ # os: linux
+ # addons: *gcc5
+
+ # - env: GCC_VERSION=5 BUILD_TYPE=Release CPP=14 ASAN=Off LIBCXX=Off
+ # os: linux
+ # addons: *gcc5
before_install:
+- if [ -n "$GCC_VERSION" ]; then export CXX="g++-${GCC_VERSION}" CC="gcc-${GCC_VERSION}"; fi
+- if [ -n "$CLANG_VERSION" ]; then export CXX="clang++-${CLANG_VERSION}" CC="clang-${CLANG_VERSION}"; fi
+- which $CXX
+- which $CC
- sh projects/scripts/travis-install.sh
+- if [ -n "$CLANG_VERSION" ]; then sh projects/scripts/install_libcxx.sh; fi
install:
-- "$CXX --version"
-- "/usr/local/bin/cmake --version"
-- cd projects
-- "/usr/local/bin/cmake -GUnix\\ Makefiles -HCMake -Bbuild -DCMAKE_C_COMPILER=$CC
- -DCMAKE_CXX_COMPILER=$CXX"
-- cd ..
+- export CXX_FLAGS=""
+- export CXX_LINKER_FLAGS=""
+- if [ -z "$BUILD_TYPE" ]; then export BUILD_TYPE=Release; fi
+- if [ "$ASAN" == "On"]; then export CXX_FLAGS="${CXX_FLAGS} -fsanitize=address,undefined,integer -fno-omit-frame-pointer -fno-sanitize=unsigned-integer-overflow"; fi
+- if [ -n "$CLANG_VERSION" ]; then CXX_FLAGS="${CXX_FLAGS} -D__extern_always_inline=inline"; fi
+- if [ "$LIBCXX" == "On" ]; then CXX_FLAGS="${CXX_FLAGS} -stdlib=libc++ -I/usr/include/c++/v1/"; fi
+- if [ "$LIBCXX" == "On" ]; then CXX_LINKER_FLAGS="${CXX_FLAGS} -L/usr/lib/ -lc++"; fi
+- cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_FLAGS="${CXX_FLAGS}" -DCMAKE_EXE_LINKER_FLAGS="${CXX_LINKER_FLAGS}"
script:
-- cd projects/build
-- make -j1
-- cd ../..
+- make VERBOSE=1
+- if [ -n "$GCC_VERSION" ]; then build/test/rxcppv2_test; fi
after_success:
- sh projects/scripts/travis-doxygen.sh
branches: