first try
diff --git a/.travis.yml b/.travis.yml
index 929095b..fc631ee 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,175 +1,228 @@
+#########################
+# project configuration #
+#########################
+
+# C++ project
language: cpp
-dist: trusty
-sudo: required
+# container-based build
+sudo: false
-env:
- global:
- # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
- # via the "travis encrypt" command using the project repo's public key
- - secure: "m89SSgE+ASLO38rSKx7MTXK3n5NkP9bIx95jwY71YEiuFzib30PDJ/DifKnXxBjvy/AkCGztErQRk/8ZCvq+4HXozU2knEGnL/RUitvlwbhzfh2D4lmS3BvWBGS3N3NewoPBrRmdcvnT0xjOGXxtZaJ3P74TkB9GBnlz/HmKORA="
+addons:
+ apt:
+ packages:
+ - g++-6
+ sources: &sources
+ - ubuntu-toolchain-r-test
-# from http://stackoverflow.com/a/32127147/266378
+
+################
+# build matrix #
+################
+
matrix:
include:
- - os: linux
- compiler: gcc
- addons:
- apt:
- sources: ['ubuntu-toolchain-r-test']
- packages: ['g++-4.9', 'valgrind', 'python-pip', 'python-yaml']
- before_script:
- - pip install --user git+git://github.com/eddyxu/cpp-coveralls.git
- after_success:
- - make clean
- - touch src/json.hpp
- - make json_unit CXXFLAGS="-fprofile-arcs -ftest-coverage -std=c++11 -lstdc++" CXX=$COMPILER
- - test/json_unit "*"
- - coveralls --build-root test --exclude src/catch.hpp --exclude src/unit-algorithms.cpp --exclude src/unit-allocator.cpp --exclude src/unit-capacity.cpp --exclude src/unit-class_const_iterator.cpp --exclude src/unit-class_iterator.cpp --exclude src/unit-class_lexer.cpp --exclude src/unit-class_parser.cpp --exclude src/unit-comparison.cpp --exclude src/unit-concepts.cpp --exclude src/unit-constructor1.cpp --exclude src/unit-constructor2.cpp --exclude src/unit-convenience.cpp --exclude src/unit-conversions.cpp --exclude src/unit-deserialization.cpp --exclude src/unit-element_access1.cpp --exclude src/unit-element_access2.cpp --exclude src/unit-inspection.cpp --exclude src/unit-iterator_wrapper.cpp --exclude src/unit-iterators1.cpp --exclude src/unit-iterators2.cpp --exclude src/unit-json_patch.cpp --exclude src/unit-json_pointer.cpp --exclude src/unit-modifiers.cpp --exclude src/unit-pointer_access.cpp --exclude src/unit-readme.cpp --exclude src/unit-reference_access.cpp --exclude src/unit-regression.cpp --exclude src/unit-serialization.cpp --exclude src/unit-testsuites.cpp --exclude src/unit-unicode.cpp --include ../src/json.hpp --gcov-options '\-lp' --gcov 'gcov-4.9'
- env: COMPILER=g++-4.9
- - os: linux
- compiler: gcc
- before_install: echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-certificates.crt
- addons:
- apt:
- sources: ['ubuntu-toolchain-r-test']
- packages: ['g++-5', 'valgrind']
- coverity_scan:
- project:
- name: "nlohmann/json"
- description: "Build submitted via Travis CI"
- notification_email: niels.lohmann@gmail.com
- build_command_prepend: "make clean ; sudo cp $(which g++-5) $(which g++)"
- build_command: "make"
- branch_pattern: coverity_scan
- env: COMPILER=g++-5
+ - os: osx
+ osx_image: xcode7.3
- - os: linux
- compiler: gcc
- addons:
- apt:
- sources: ['ubuntu-toolchain-r-test']
- packages: ['g++-6', 'valgrind']
- env: COMPILER=g++-6
+ - os: osx
+ osx_image: xcode8
- # from https://github.com/travis-ci/travis-ci/issues/6120
- - os: linux
- env:
- - LLVM_VERSION=3.8.0
- - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
- - COMPILER=clang++
- - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
- - LDFLAGS=-lc++
- - PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH
- - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
- before_install:
- - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
- - mkdir $HOME/clang-$LLVM_VERSION
- - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
+ - os: linux
+ env: COMPILER=g++-6
+ compiler: gcc
- # Clang 3.5 is not able to compile the code,
- # see https://travis-ci.org/nlohmann/json/jobs/126720186
-# - os: linux
-# compiler: clang
-# addons:
-# apt:
-# sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.6']
-# packages: ['clang-3.6', 'valgrind']
-# env: COMPILER=clang++-3.6
-#
-# - os: linux
-# compiler: clang
-# addons:
-# apt:
-# sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.7']
-# packages: ['clang-3.7', 'valgrind']
-# env: COMPILER=clang++-3.7
-#
-# - os: linux
-# compiler: clang
-# addons:
-# apt:
-# sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.8']
-# packages: ['clang-3.8', 'valgrind']
-# env: COMPILER=clang++-3.8
+#####################
+# installation step #
+#####################
- # - os: linux
- # compiler: clang
- # addons:
- # apt:
- # sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise']
- # packages: ['clang-3.9', 'valgrind']
- # env: COMPILER=clang++-3.9
+install:
+ - if [[ "${COMPILER}" != "" ]]; then export CXX=${COMPILER}; fi
- - os: osx
- osx_image: beta-xcode6.1
- compiler: clang
- env:
- - COMPILER=clang
- - CXXFLAGS=-lstdc++
- - os: osx
- osx_image: beta-xcode6.2
- compiler: clang
- env:
- - COMPILER=clang
- - CXXFLAGS=-lstdc++
-
- - os: osx
- osx_image: beta-xcode6.3
- compiler: clang
- env:
- - COMPILER=clang
- - CXXFLAGS=-lstdc++
-
- - os: osx
- osx_image: xcode6.4
- compiler: clang
- env:
- - COMPILER=clang
- - CXXFLAGS=-lstdc++
-
- - os: osx
- osx_image: xcode7.1
- compiler: clang
- env:
- - COMPILER=clang
- - CXXFLAGS=-lstdc++
-
- - os: osx
- osx_image: xcode7.2
- compiler: clang
- env:
- - COMPILER=clang
- - CXXFLAGS=-lstdc++
-
- - os: osx
- osx_image: xcode7.3
- compiler: clang
- env:
- - COMPILER=clang
- - CXXFLAGS=-lstdc++
-
- - os: osx
- osx_image: xcode8
- compiler: clang
- env:
- - COMPILER=clang
- - CXXFLAGS=-lstdc++
+################
+# build script #
+################
script:
- - uname -a
- - $COMPILER --version
- - make CXX=$COMPILER
- - test/json_unit "*"
- - if [ `which valgrind` ]; then
- valgrind --error-exitcode=1 --leak-check=full test/json_unit ;
- fi
- - if [ `which brew` ]; then
- brew update ;
- brew tap nlohmann/json ;
- brew install nlohmann_json --HEAD ;
- brew test nlohmann_json ;
- fi
+ - make
+ - test/json_unit
+
+#language: cpp
+#
+#dist: trusty
+#sudo: required
+#
+#env:
+# global:
+# # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
+# # via the "travis encrypt" command using the project repo's public key
+# - secure: "m89SSgE+ASLO38rSKx7MTXK3n5NkP9bIx95jwY71YEiuFzib30PDJ/DifKnXxBjvy/AkCGztErQRk/8ZCvq+4HXozU2knEGnL/RUitvlwbhzfh2D4lmS3BvWBGS3N3NewoPBrRmdcvnT0xjOGXxtZaJ3P74TkB9GBnlz/HmKORA="
+#
+## from http://stackoverflow.com/a/32127147/266378
+#matrix:
+# include:
+# - os: linux
+# compiler: gcc
+# addons:
+# apt:
+# sources: ['ubuntu-toolchain-r-test']
+# packages: ['g++-4.9', 'valgrind', 'python-pip', 'python-yaml']
+# before_script:
+# - pip install --user git+git://github.com/eddyxu/cpp-coveralls.git
+# after_success:
+# - make clean
+# - touch src/json.hpp
+# - make json_unit CXXFLAGS="-fprofile-arcs -ftest-coverage -std=c++11 -lstdc++" CXX=$COMPILER
+# - test/json_unit "*"
+# - coveralls --build-root test --exclude src/catch.hpp --exclude src/unit-algorithms.cpp --exclude src/unit-allocator.cpp --exclude src/unit-capacity.cpp --exclude src/unit-class_const_iterator.cpp --exclude src/unit-class_iterator.cpp --exclude src/unit-class_lexer.cpp --exclude src/unit-class_parser.cpp --exclude src/unit-comparison.cpp --exclude src/unit-concepts.cpp --exclude src/unit-constructor1.cpp --exclude src/unit-constructor2.cpp --exclude src/unit-convenience.cpp --exclude src/unit-conversions.cpp --exclude src/unit-deserialization.cpp --exclude src/unit-element_access1.cpp --exclude src/unit-element_access2.cpp --exclude src/unit-inspection.cpp --exclude src/unit-iterator_wrapper.cpp --exclude src/unit-iterators1.cpp --exclude src/unit-iterators2.cpp --exclude src/unit-json_patch.cpp --exclude src/unit-json_pointer.cpp --exclude src/unit-modifiers.cpp --exclude src/unit-pointer_access.cpp --exclude src/unit-readme.cpp --exclude src/unit-reference_access.cpp --exclude src/unit-regression.cpp --exclude src/unit-serialization.cpp --exclude src/unit-testsuites.cpp --exclude src/unit-unicode.cpp --include ../src/json.hpp --gcov-options '\-lp' --gcov 'gcov-4.9'
+# env: COMPILER=g++-4.9
+#
+# - os: linux
+# compiler: gcc
+# before_install: echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-certificates.crt
+# addons:
+# apt:
+# sources: ['ubuntu-toolchain-r-test']
+# packages: ['g++-5', 'valgrind']
+# coverity_scan:
+# project:
+# name: "nlohmann/json"
+# description: "Build submitted via Travis CI"
+# notification_email: niels.lohmann@gmail.com
+# build_command_prepend: "make clean ; sudo cp $(which g++-5) $(which g++)"
+# build_command: "make"
+# branch_pattern: coverity_scan
+# env: COMPILER=g++-5
+#
+# - os: linux
+# compiler: gcc
+# addons:
+# apt:
+# sources: ['ubuntu-toolchain-r-test']
+# packages: ['g++-6', 'valgrind']
+# env: COMPILER=g++-6
+#
+# # from https://github.com/travis-ci/travis-ci/issues/6120
+# - os: linux
+# env:
+# - LLVM_VERSION=3.8.0
+# - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+# - COMPILER=clang++
+# - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
+# - LDFLAGS=-lc++
+# - PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH
+# - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
+# before_install:
+# - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
+# - mkdir $HOME/clang-$LLVM_VERSION
+# - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
+#
+# # Clang 3.5 is not able to compile the code,
+# # see https://travis-ci.org/nlohmann/json/jobs/126720186
+#
+## - os: linux
+## compiler: clang
+## addons:
+## apt:
+## sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.6']
+## packages: ['clang-3.6', 'valgrind']
+## env: COMPILER=clang++-3.6
+##
+## - os: linux
+## compiler: clang
+## addons:
+## apt:
+## sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.7']
+## packages: ['clang-3.7', 'valgrind']
+## env: COMPILER=clang++-3.7
+##
+## - os: linux
+## compiler: clang
+## addons:
+## apt:
+## sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.8']
+## packages: ['clang-3.8', 'valgrind']
+## env: COMPILER=clang++-3.8
+#
+# # - os: linux
+# # compiler: clang
+# # addons:
+# # apt:
+# # sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise']
+# # packages: ['clang-3.9', 'valgrind']
+# # env: COMPILER=clang++-3.9
+#
+# - os: osx
+# osx_image: beta-xcode6.1
+# compiler: clang
+# env:
+# - COMPILER=clang
+# - CXXFLAGS=-lstdc++
+#
+# - os: osx
+# osx_image: beta-xcode6.2
+# compiler: clang
+# env:
+# - COMPILER=clang
+# - CXXFLAGS=-lstdc++
+#
+# - os: osx
+# osx_image: beta-xcode6.3
+# compiler: clang
+# env:
+# - COMPILER=clang
+# - CXXFLAGS=-lstdc++
+#
+# - os: osx
+# osx_image: xcode6.4
+# compiler: clang
+# env:
+# - COMPILER=clang
+# - CXXFLAGS=-lstdc++
+#
+# - os: osx
+# osx_image: xcode7.1
+# compiler: clang
+# env:
+# - COMPILER=clang
+# - CXXFLAGS=-lstdc++
+#
+# - os: osx
+# osx_image: xcode7.2
+# compiler: clang
+# env:
+# - COMPILER=clang
+# - CXXFLAGS=-lstdc++
+#
+# - os: osx
+# osx_image: xcode7.3
+# compiler: clang
+# env:
+# - COMPILER=clang
+# - CXXFLAGS=-lstdc++
+#
+# - os: osx
+# osx_image: xcode8
+# compiler: clang
+# env:
+# - COMPILER=clang
+# - CXXFLAGS=-lstdc++
+#
+#script:
+# - uname -a
+# - $COMPILER --version
+# - make CXX=$COMPILER
+# - test/json_unit "*"
+# - if [ `which valgrind` ]; then
+# valgrind --error-exitcode=1 --leak-check=full test/json_unit ;
+# fi
+# - if [ `which brew` ]; then
+# brew update ;
+# brew tap nlohmann/json ;
+# brew install nlohmann_json --HEAD ;
+# brew test nlohmann_json ;
+# fi
+#
\ No newline at end of file