From 32391d24200ae5cb0eeea65f39d67a8ba5779ee3 Mon Sep 17 00:00:00 2001 From: Jared Grubb Date: Wed, 14 Oct 2015 00:24:13 -0700 Subject: [PATCH 1/3] Travis-CI: add packages for the various clang and gcc versions (https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise) --- .travis.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.travis.yml b/.travis.yml index 9890d71..4acdd63 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,17 @@ compiler: - clang - gcc +addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - gcc-5 + - clang-3.5 + - clang-3.6 + - clang-3.7 + - clang-3.8 + before_script: - cmake -DWITH_TESTS=1 -DWITH_EXAMPLE=1 . From daadc73235a1c76327ce37cab48c519187ede4c8 Mon Sep 17 00:00:00 2001 From: Jared Grubb Date: Wed, 14 Oct 2015 00:34:36 -0700 Subject: [PATCH 2/3] Travis-CI: another take at getting clang/gcc set up --- .travis.yml | 51 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4acdd63..09356fd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,19 +6,48 @@ compiler: - clang - gcc -addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - gcc-5 - - clang-3.5 - - clang-3.6 - - clang-3.7 - - clang-3.8 +matrix: + include: + - os: linux + env: COMPILER=clang++-3.5 + addons: + apt: + packages: ["clang-3.5"] + + - os: linux + env: COMPILER=clang++-3.6 + addons: + apt: + packages: ["clang-3.6"] + + - os: linux + env: COMPILER=clang++-3.7 + addons: + apt: + packages: ["clang-3.7"] + + - os: linux + env: COMPILER=clang++-3.8 + addons: + apt: + packages: ["clang-3.8"] + + - os: linux + env: COMPILER=g++-5 + addons: + apt: + packages: ["gcc-5"] + + - os: osx + env: COMPILER=clang++ + osx_image: xcode6.4 + + - os: osx + env: COMPILER=clang++ + osx_image: xcode7 before_script: - - cmake -DWITH_TESTS=1 -DWITH_EXAMPLE=1 . + - cmake -DCMAKE_CXX_COMPILER=${COMPILER} -DWITH_TESTS=1 -DWITH_EXAMPLE=1 . script: - cmake --build . From 75864d2adb2b227926f1fbd3c7f46dd9d19c3d35 Mon Sep 17 00:00:00 2001 From: Jared Grubb Date: Wed, 14 Oct 2015 00:40:00 -0700 Subject: [PATCH 3/3] Travis-CI: adjust how the matrix works. Hint: it's the red pill. --- .travis.yml | 57 +++++++++++++++++++++++++------------------------- CMakeLists.txt | 8 ++++++- 2 files changed, 36 insertions(+), 29 deletions(-) diff --git a/.travis.yml b/.travis.yml index 09356fd..861ce7b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,53 +1,54 @@ language: cpp - sudo: false # Use the new container infrastructure -compiler: - - clang - - gcc - matrix: include: - os: linux - env: COMPILER=clang++-3.5 - addons: - apt: - packages: ["clang-3.5"] - - - os: linux - env: COMPILER=clang++-3.6 + 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 + env: + - COMPILER=clang++-3.7 STDLIB=libc++ addons: apt: + sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.7'] packages: ["clang-3.7"] - - os: linux - env: COMPILER=clang++-3.8 - addons: - apt: - packages: ["clang-3.8"] - - - os: linux - env: COMPILER=g++-5 - addons: - apt: - packages: ["gcc-5"] - - os: osx - env: COMPILER=clang++ osx_image: xcode6.4 + env: + - COMPILER=clang++ V='Apple LLVM 6.4' + - COMPILER=clang++ V='Apple LLVM 6.4' WITH_CPP14=true - os: osx - env: COMPILER=clang++ 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 -DCMAKE_CXX_COMPILER=${COMPILER} -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