diff --git a/.travis.yml b/.travis.yml index 9890d71..861ce7b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,54 @@ language: cpp - sudo: false # Use the new container infrastructure -compiler: - - clang - - gcc +matrix: + include: + - os: linux + env: + - COMPILER=clang++-3.6 STDLIB=libc++ + addons: + apt: + sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.6'] + packages: ["clang-3.6"] + + - os: linux + env: + - COMPILER=clang++-3.7 STDLIB=libc++ + addons: + apt: + sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.7'] + packages: ["clang-3.7"] + + - os: osx + osx_image: xcode6.4 + env: + - COMPILER=clang++ V='Apple LLVM 6.4' + - COMPILER=clang++ V='Apple LLVM 6.4' WITH_CPP14=true + + - os: osx + osx_image: xcode7 + env: + - COMPILER=clang++ V='Apple LLVM 7.0' + - COMPILER=clang++ V='Apple LLVM 7.0' WITH_CPP14=true + +before_install: + - | + if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then + brew install cmake + fi + + - CMAKE_CXX_FLAGS+=" -Wall" + + - if [[ "${WITH_CPP14}" == "true" ]]; then CMAKE_OPTIONS+=" -DWITH_CPP14=1"; fi + - if [[ "${STDLIB}" == "libc++" ]]; then CMAKE_CXX_FLAGS+=" -stdlib=libc++"; fi + + - sh ${COMPILER} --version || true before_script: - - cmake -DWITH_TESTS=1 -DWITH_EXAMPLE=1 . + - rm -rf build/ + - mkdir build + - cd build + - cmake -DCMAKE_CXX_COMPILER=${COMPILER} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -DWITH_TESTS=1 -DWITH_EXAMPLE=1 ${CMAKE_OPTIONS} .. script: - cmake --build . diff --git a/CMakeLists.txt b/CMakeLists.txt index 118297e..201f5f9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,8 @@ cmake_minimum_required(VERSION 2.6.4) option(WITH_TESTS "Build tests." OFF) option(WITH_EXAMPLE "Build example." OFF) option(WITH_STATIC "Build static libs." ON) +option(WITH_CPP11 "Build with C++11." ON) +option(WITH_CPP14 "Build with C++14." OFF) project(docopt.cpp) include_directories("${PROJECT_SOURCE_DIR}") @@ -22,7 +24,11 @@ if(WITH_STATIC) endif() add_library(docopt SHARED ${DOCOPT_SRC}) -add_definitions("-std=c++11") +if(WITH_CPP14) + add_definitions("-std=c++14") +elseif(WITH_CPP11) + add_definitions("-std=c++11") +endif() ######################################################################## # tests