78 lines
1.8 KiB
YAML
78 lines
1.8 KiB
YAML
#########################
|
|
# project configuration #
|
|
#########################
|
|
|
|
# C++ project
|
|
language: cpp
|
|
|
|
dist: trusty
|
|
sudo: required
|
|
group: edge
|
|
|
|
matrix:
|
|
include:
|
|
- os: linux
|
|
compiler: gcc
|
|
env: COMPILER=g++-4.9
|
|
addons:
|
|
apt:
|
|
sources: ['ubuntu-toolchain-r-test']
|
|
packages: ['g++-4.9', 'ninja-build']
|
|
|
|
- os: linux
|
|
compiler: gcc
|
|
env: COMPILER=g++-5
|
|
addons:
|
|
apt:
|
|
sources: ['ubuntu-toolchain-r-test']
|
|
packages: ['g++-5', 'ninja-build']
|
|
|
|
- os: linux
|
|
compiler: gcc
|
|
env: COMPILER=g++-6
|
|
addons:
|
|
apt:
|
|
sources: ['ubuntu-toolchain-r-test']
|
|
packages: ['g++-6', 'ninja-build']
|
|
|
|
- os: linux
|
|
compiler: gcc
|
|
env: COMPILER=g++-7
|
|
addons:
|
|
apt:
|
|
sources: ['ubuntu-toolchain-r-test']
|
|
packages: ['g++-7', 'ninja-build']
|
|
|
|
script:
|
|
# get CMake and Ninja (only for systems with brew - macOS)
|
|
- |
|
|
if [[ (-x $(which brew)) ]]; then
|
|
brew update
|
|
brew install cmake ninja
|
|
brew upgrade cmake
|
|
fi
|
|
# make sure CXX is correctly set
|
|
- if [[ "${COMPILER}" != "" ]]; then export CXX=${COMPILER}; fi
|
|
|
|
# show OS/compiler version
|
|
- uname -a
|
|
- cmake --version
|
|
- $CXX --version
|
|
|
|
# put json.hpp to nlohmann
|
|
- mkdir -p nlohmann && wget https://github.com/nlohmann/json/releases/download/v3.8.0/json.hpp -O nlohmann/json.hpp
|
|
|
|
# compile and execute unit tests
|
|
- mkdir -p build && cd build
|
|
- cmake .. -Dnlohmann_json_DIR=.. ${CMAKE_OPTIONS} -GNinja && cmake --build . --config Release
|
|
- ctest -C Release -V -j
|
|
- cd ..
|
|
|
|
# Remove previous build and tests
|
|
- rm -r build
|
|
|
|
# Compile and execute with Hunter package manager instead of using local json.hpp
|
|
- mkdir -p build && cd build
|
|
- cmake .. -DHUNTER_ENABLED=ON ${CMAKE_OPTIONS} -GNinja && cmake --build . --config Release
|
|
- ctest -C Release -V -j
|
|
- cd .. |