From da498591fc87191e619d98d7935a99fadd88a4f4 Mon Sep 17 00:00:00 2001 From: Christopher Dunn Date: Sat, 18 Apr 2015 18:24:46 -0700 Subject: [PATCH] In travis-ci, build for osx also Drop gcc b/c it takes too long to install via addon. Build only static/release, to save VMs. (No shared to debug.) --- .travis.yml | 61 ++++++++++++---------------------- travis.before_install.linux.sh | 7 ++++ travis.before_install.osx.sh | 3 ++ travis.install.linux.sh | 14 ++++++++ travis.install.osx.sh | 12 +++++++ travis.sh | 3 ++ 6 files changed, 61 insertions(+), 39 deletions(-) create mode 100644 travis.before_install.linux.sh create mode 100644 travis.before_install.osx.sh create mode 100644 travis.install.linux.sh create mode 100644 travis.install.osx.sh diff --git a/.travis.yml b/.travis.yml index 33e65c4..27978e4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,4 @@ -# Build matrix / environment variable are explained on: +# Build matrix / environment variables are explained on: # http://about.travis-ci.org/docs/user/build-configuration/ # This file can be validated on: # http://lint.travis-ci.org/ @@ -6,54 +6,37 @@ # http://stackoverflow.com/questions/22111549/travis-ci-with-clang-3-4-and-c11/30925448#30925448 # to allow C++11, though we are not yet building with -std=c++11 -#before_install: pyenv install 3.5.4 && pyenv global 3.5.4 -before_install: pyenv global 3.6 -# https://docs.travis-ci.com/user/languages/python/ -# "for Trusty, this means 2.7.6 and 3.4.3" +before_install: +- source travis.before_install.${TRAVIS_OS_NAME}.sh install: -- if [[ $TRAVIS_OS_NAME == osx ]]; then - brew update; - brew install python3 ninja; - python3 -m venv venv; - source venv/bin/activate; - elif [[ $TRAVIS_OS_NAME == linux ]]; then - wget https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-linux.zip; - unzip -q ninja-linux.zip -d build; - fi -- pip3 install meson -# /usr/bin/gcc is 4.6 always, but gcc-X.Y is available. -- if [[ $CXX = g++ ]]; then export CXX="g++-4.9" CC="gcc-4.9"; fi -# /usr/bin/clang has a conflict with gcc, so use clang-X.Y. -- if [[ $CXX = clang++ ]]; then export CXX="clang++-3.5" CC="clang-3.5"; fi -- echo ${PATH} -- ls /usr/local -- ls /usr/local/bin -- export PATH="${PWD}"/build:/usr/local/bin:/usr/bin:${PATH} -- echo ${CXX} -- ${CXX} --version -- which valgrind +- source travis.install.${TRAVIS_OS_NAME}.sh addons: apt: sources: - - ubuntu-toolchain-r-test + #- ubuntu-toolchain-r-test - llvm-toolchain-precise-3.5 packages: - - gcc-4.9 - - g++-4.9 + #- gcc-4.9 + #- g++-4.9 - clang-3.5 - valgrind -os: - - linux language: cpp -compiler: - - gcc - - clang script: ./travis.sh -env: - matrix: - - LIB_TYPE=static BUILD_TYPE=release - - LIB_TYPE=shared BUILD_TYPE=debug +matrix: + allow_failures: + - os: osx +matrix: + include: + - os: osx + osx_image: xcode9.4 + compiler: clang + #env: PYENV_ROOT=/usr/local/var/pyenv + env: LIB_TYPE=static BUILD_TYPE=release + #- LIB_TYPE=shared BUILD_TYPE=debug + - os: linux + dist: trusty + compiler: clang + env: LIB_TYPE=static BUILD_TYPE=release notifications: email: false -dist: trusty sudo: false diff --git a/travis.before_install.linux.sh b/travis.before_install.linux.sh new file mode 100644 index 0000000..18e019d --- /dev/null +++ b/travis.before_install.linux.sh @@ -0,0 +1,7 @@ +set -vex +#before_install: pyenv install 3.5.4 && pyenv global 3.5.4 +#before_install: pyenv global 3.6 +# https://docs.travis-ci.com/user/languages/python/ +# "for Trusty, this means 2.7.6 and 3.4.3" + +pyenv global 3.6 diff --git a/travis.before_install.osx.sh b/travis.before_install.osx.sh new file mode 100644 index 0000000..a8377fa --- /dev/null +++ b/travis.before_install.osx.sh @@ -0,0 +1,3 @@ +set -vex +#brew install pyenv +#which pyenv diff --git a/travis.install.linux.sh b/travis.install.linux.sh new file mode 100644 index 0000000..a049f76 --- /dev/null +++ b/travis.install.linux.sh @@ -0,0 +1,14 @@ +set -vex + +wget https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-linux.zip +unzip -q ninja-linux.zip -d build + +pip3 install meson +# /usr/bin/gcc is 4.6 always, but gcc-X.Y is available. +if [[ $CXX = g++ ]]; then export CXX="g++-4.9" CC="gcc-4.9"; fi +# /usr/bin/clang has a conflict with gcc, so use clang-X.Y. +if [[ $CXX = clang++ ]]; then export CXX="clang++-3.5" CC="clang-3.5"; fi +echo ${PATH} +ls /usr/local +ls /usr/local/bin +export PATH="${PWD}"/build:/usr/local/bin:/usr/bin:${PATH} diff --git a/travis.install.osx.sh b/travis.install.osx.sh new file mode 100644 index 0000000..e82bdc6 --- /dev/null +++ b/travis.install.osx.sh @@ -0,0 +1,12 @@ +set -vex + +#brew update +brew upgrade python3 +python3 -m venv venv +source venv/bin/activate + +brew install ninja +brew install meson + +#brew install pyenv +#which pyenv diff --git a/travis.sh b/travis.sh index 226c64d..f0628fc 100755 --- a/travis.sh +++ b/travis.sh @@ -17,6 +17,9 @@ set -vex env | sort +echo ${CXX} +${CXX} --version +python3 --version meson --version ninja --version meson --buildtype ${BUILD_TYPE} --default-library ${LIB_TYPE} . build-${LIB_TYPE}