diff --git a/.travis.yml b/.travis.yml index 17ce1a63a..a257d2562 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,10 +18,14 @@ matrix: env: BUILD_TYPE=Debug - os: linux env: BUILD_TYPE=Release + - os: osx + env: BUILD_TYPE=Debug + - os: osx + env: BUILD_TYPE=Release before_install: - - docker pull berkus/docker-cpp-ci:latest + - .travis/os_setup.sh script: - mkdir _build_ - - docker run --rm -v $PWD:/repo -v ~/.travis:/travis berkus/docker-cpp-ci /bin/sh -c "/repo/.travis/build.sh" + - .travis/os_build.sh diff --git a/.travis/build.sh b/.travis/build.sh index 382d2d0a7..2117f7b1e 100755 --- a/.travis/build.sh +++ b/.travis/build.sh @@ -1,6 +1,8 @@ #!/bin/bash -cd /repo/_build_ -cmake -G Ninja -DTRAVIS_CI=YES -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_TESTING=ON .. || exit 1 -cmake --build . || exit 1 -ASAN_OPTIONS=alloc_dealloc_mismatch=0 ctest || exit 1 +set -x + +conan install .. --build missing +cmake -G Ninja -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_TESTING=ON .. || exit 1 +cmake --build . -- -v || exit 1 +ASAN_OPTIONS=alloc_dealloc_mismatch=0 ctest . || exit 1 diff --git a/.travis/os_build.sh b/.travis/os_build.sh new file mode 100755 index 000000000..c8e6a71a6 --- /dev/null +++ b/.travis/os_build.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +set -x + +if [ "$TRAVIS_OS_NAME" == "linux" ]; then + docker run --rm -v $PWD:/repo -v ~/.travis:/travis berkus/docker-cpp-ci /bin/sh -c "cd /repo/_build_; /repo/.travis/build.sh" +fi + +if [ "$TRAVIS_OS_NAME" == "osx" ]; then + cd _build_ + ../.travis/build.sh +fi diff --git a/.travis/os_setup.sh b/.travis/os_setup.sh new file mode 100755 index 000000000..eaaee834d --- /dev/null +++ b/.travis/os_setup.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +set -x + +if [ "$TRAVIS_OS_NAME" == "linux" ]; then + docker pull berkus/docker-cpp-ci:latest || exit 1 +fi + +brew_package() { + if brew ls --versions $1 > /dev/null; then + brew outdated $1 > /dev/null || brew upgrade $1 || exit 1 + else + brew install $1 || exit 1 + fi +} + +if [ "$TRAVIS_OS_NAME" == "osx" ]; then + brew update + brew_package conan + brew_package cmake + brew_package ninja + brew_package qt + brew_package ffmpeg + brew_package opus + brew_package openal-soft +fi