From 4055b360cff55459554a77c6e8e93ba2b99846aa Mon Sep 17 00:00:00 2001 From: Simon Brand Date: Fri, 23 Feb 2018 09:27:34 +0000 Subject: [PATCH] Test C++11 mode --- .travis.yml | 76 ++++++++++++++++++++++++++++++++++++++++++++------ CMakeLists.txt | 4 ++- 2 files changed, 70 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5d485e1..5b5e3fe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,7 @@ matrix: - ubuntu-toolchain-r-test packages: - g++-5 - env: COMPILER=g++-5 + env: COMPILER=g++-5 CXXSTD=11 - compiler: gcc addons: apt: @@ -20,7 +20,7 @@ matrix: - ubuntu-toolchain-r-test packages: - g++-4.9 - env: COMPILER=g++-4.9 + env: COMPILER=g++-4.9 CXXSTD=11 - compiler: gcc addons: apt: @@ -28,7 +28,7 @@ matrix: - ubuntu-toolchain-r-test packages: - g++-4.8 - env: COMPILER=g++-4.8 + env: COMPILER=g++-4.8 CXXSTD=11 - compiler: clang addons: apt: @@ -38,7 +38,7 @@ matrix: packages: - clang++-3.5 - libc++-dev - env: COMPILER=clang++-3.5 + env: COMPILER=clang++-3.5 CXXSTD=11 - compiler: clang addons: apt: @@ -48,7 +48,7 @@ matrix: packages: - clang++-3.6 - libc++-dev - env: COMPILER=clang++-3.6 + env: COMPILER=clang++-3.6 CXXSTD=11 - compiler: clang addons: apt: @@ -58,7 +58,7 @@ matrix: packages: - clang++-3.7 - libc++-dev - env: COMPILER=clang++-3.7 + env: COMPILER=clang++-3.7 CXXSTD=11 - compiler: clang addons: apt: @@ -68,7 +68,7 @@ matrix: packages: - clang++-3.8 - libc++-dev - env: COMPILER=clang++-3.8 + env: COMPILER=clang++-3.8 CXXSTD=11 - compiler: clang addons: apt: @@ -79,8 +79,66 @@ matrix: packages: - clang++-3.9 - libc++-dev - env: COMPILER=clang++-3.9 - + env: COMPILER=clang++-3.9 CXXSTD=11 + - compiler: gcc + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-5 + env: COMPILER=g++-5 CXXSTD=14 + - compiler: clang + addons: + apt: + sources: + - llvm-toolchain-precise-3.5 + - ubuntu-toolchain-r-test + packages: + - clang++-3.5 + - libc++-dev + env: COMPILER=clang++-3.5 CXXSTD=14 + - compiler: clang + addons: + apt: + sources: + - llvm-toolchain-precise-3.6 + - ubuntu-toolchain-r-test + packages: + - clang++-3.6 + - libc++-dev + env: COMPILER=clang++-3.6 CXXSTD=14 + - compiler: clang + addons: + apt: + sources: + - llvm-toolchain-precise-3.7 + - ubuntu-toolchain-r-test + packages: + - clang++-3.7 + - libc++-dev + env: COMPILER=clang++-3.7 CXXSTD=14 + - compiler: clang + addons: + apt: + sources: + - llvm-toolchain-precise-3.8 + - ubuntu-toolchain-r-test + packages: + - clang++-3.8 + - libc++-dev + env: COMPILER=clang++-3.8 CXXSTD=14 + - compiler: clang + addons: + apt: + sources: + - sourceline: "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main" + key_url: "http://apt.llvm.org/llvm-snapshot.gpg.key" + - ubuntu-toolchain-r-test + packages: + - clang++-3.9 + - libc++-dev + env: COMPILER=clang++-3.9 CXXSTD=14 install: - if [ "$CXX" = "clang++" ]; then export CXX="$COMPILER -stdlib=libc++"; fi diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b46f9d..8ad070d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,7 +24,9 @@ target_sources(expected INTERFACE ${CMAKE_SOURCE_DIR}/tl/expected.hpp) target_include_directories(expected INTERFACE ${CMAKE_SOURCE_DIR}/tl) target_link_libraries(tests Catch expected) -set_property(TARGET tests PROPERTY CXX_STANDARD 14) + +set(CXXSTD 14 CACHE STRING "C++ standard to use, default C++14") +set_property(TARGET tests PROPERTY CXX_STANDARD ${CXXSTD}) set_property(TARGET tests PROPERTY CXX_FLAGS "-Wall -Wextra")