1language: generic
2
3os:
4  - linux
5  - osx
6
7osx_image: xcode9.3
8
9env:
10  - LLVM_VERSION=3.5 PYTHON_VERSION=2
11  - LLVM_VERSION=3.6 PYTHON_VERSION=2
12  - LLVM_VERSION=3.7 PYTHON_VERSION=2
13  - LLVM_VERSION=3.8 PYTHON_VERSION=2
14  - LLVM_VERSION=3.9 PYTHON_VERSION=2
15  - LLVM_VERSION=4.0 PYTHON_VERSION=2
16  - LLVM_VERSION=5.0 PYTHON_VERSION=2
17  - LLVM_VERSION=6.0 PYTHON_VERSION=2
18  - LLVM_VERSION=7 PYTHON_VERSION=2
19  - LLVM_VERSION=8 PYTHON_VERSION=2
20  - LLVM_VERSION=3.5 PYTHON_VERSION=3
21  - LLVM_VERSION=3.6 PYTHON_VERSION=3
22  - LLVM_VERSION=3.7 PYTHON_VERSION=3
23  - LLVM_VERSION=3.8 PYTHON_VERSION=3
24  - LLVM_VERSION=3.9 PYTHON_VERSION=3
25  - LLVM_VERSION=4.0 PYTHON_VERSION=3
26  - LLVM_VERSION=5.0 PYTHON_VERSION=3
27  - LLVM_VERSION=6.0 PYTHON_VERSION=3
28  - LLVM_VERSION=7 PYTHON_VERSION=3
29  - LLVM_VERSION=8 PYTHON_VERSION=3
30
31# Exclude LLVM versions not available on brew
32matrix:
33  exclude:
34  - os: osx
35    env: LLVM_VERSION=3.5 PYTHON_VERSION=2
36  - os: osx
37    env: LLVM_VERSION=3.6 PYTHON_VERSION=2
38  - os: osx
39    env: LLVM_VERSION=3.7 PYTHON_VERSION=2
40  - os: osx
41    env: LLVM_VERSION=3.8 PYTHON_VERSION=2
42  - os: osx
43    env: LLVM_VERSION=3.5 PYTHON_VERSION=3
44  - os: osx
45    env: LLVM_VERSION=3.6 PYTHON_VERSION=3
46  - os: osx
47    env: LLVM_VERSION=3.7 PYTHON_VERSION=3
48  - os: osx
49    env: LLVM_VERSION=3.8 PYTHON_VERSION=3
50
51addons:
52  apt:
53    sources:
54      - sourceline: "ppa:ubuntu-toolchain-r/test"
55      - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main"
56        key_url: "http://apt.llvm.org/llvm-snapshot.gpg.key"
57      - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main"
58
59before_install:
60  - |
61    if [[ "$PYTHON_VERSION" == "2" ]]; then
62      export PYTHON=python
63      export PIP=pip
64    elif [[ "$PYTHON_VERSION" == "3" ]]; then
65      export PYTHON=python3
66      export PIP=pip3
67    fi
68
69    if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
70      sudo apt-get update
71      sudo -E apt-get -yq --no-install-suggests --no-install-recommends \
72        --force-yes install \
73        $PYTHON $PYTHON-pip $PYTHON-setuptools llvm-$LLVM_VERSION-dev
74      export LLVM_CONFIG=llvm-config-$LLVM_VERSION
75    fi
76
77    if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
78      brew update
79      brew unlink python
80      LLVM_VERSION=${LLVM_VERSION/.0/}
81      brew install -f -v python@$PYTHON_VERSION llvm@$LLVM_VERSION
82      export PATH="/usr/local/opt/llvm@$LLVM_VERSION/bin:$PATH"
83      export LLVM_CONFIG=$(which llvm-config || which llvm-config-$LLVM_VERSION)
84      export DYLD_LIBRARY_PATH="$($LLVM_CONFIG --libdir)"
85    fi
86
87install:
88  - $PIP install --user -e .
89
90script:
91  - $PYTHON setup.py test
92