1language: c
2
3sudo: false
4
5cache:
6  timeout: 1000
7  directories:
8    - $HOME/cpu_features_archives
9
10addons:
11  apt_packages:
12    - ninja-build
13
14env:
15  global:
16    TOOLCHAIN=NATIVE
17    CMAKE_GENERATOR=Ninja
18
19matrix:
20  include:
21  - os: linux
22    compiler: gcc
23    env:
24      TARGET=x86_64-linux-gnu
25  - os: linux
26    compiler: clang
27    env:
28      TARGET=x86_64-linux-gnu
29  - os: osx
30    compiler: gcc
31    env:
32      TARGET=x86_64-osx
33      CMAKE_GENERATOR="Unix Makefiles"
34  - os: osx
35    compiler: clang
36    env:
37      TARGET=x86_64-osx
38      CMAKE_GENERATOR="Unix Makefiles"
39  - os: windows
40    env:
41      TARGET=x86_64-windows
42      CMAKE_GENERATOR="Visual Studio 15 2017 Win64"
43
44  # see: https://docs.travis-ci.com/user/multi-cpu-architectures/
45  - os: linux
46    arch: ppc64le
47    compiler: gcc
48    env:
49      TARGET=ppc64le-linux-gnu
50  - os: linux
51    arch: ppc64le
52    compiler: clang
53    env:
54      TARGET=ppc64le-linux-gnu
55
56  # Toolchains for little-endian, 64-bit ARMv8 for GNU/Linux systems
57  - os: linux
58    env:
59      TOOLCHAIN=LINARO
60      TARGET=aarch64-linux-gnu
61      QEMU_ARCH=aarch64
62  # Toolchains for little-endian, hard-float, 32-bit ARMv7 (and earlier) for GNU/Linux systems
63  - os: linux
64    env:
65      TOOLCHAIN=LINARO
66      TARGET=arm-linux-gnueabihf
67      QEMU_ARCH=arm
68  # Toolchains for little-endian, 32-bit ARMv8 for GNU/Linux systems
69  - os: linux
70    env:
71      TOOLCHAIN=LINARO
72      TARGET=armv8l-linux-gnueabihf
73      QEMU_ARCH=arm
74  # Toolchains for little-endian, soft-float, 32-bit ARMv7 (and earlier) for GNU/Linux systems
75  - os: linux
76    env:
77      TOOLCHAIN=LINARO
78      TARGET=arm-linux-gnueabi
79      QEMU_ARCH=arm
80  # Toolchains for big-endian, 64-bit ARMv8 for GNU/Linux systems
81  - os: linux
82    env:
83      TOOLCHAIN=LINARO
84      TARGET=aarch64_be-linux-gnu
85      QEMU_ARCH=DISABLED
86  # Toolchains for big-endian, hard-float, 32-bit ARMv7 (and earlier) for GNU/Linux systems
87  - os: linux
88    env:
89      TOOLCHAIN=LINARO
90      TARGET=armeb-linux-gnueabihf
91      QEMU_ARCH=DISABLED
92  # Toolchains for big-endian, soft-float, 32-bit ARMv7 (and earlier) for GNU/Linux systems
93  - os: linux
94    env:
95      TOOLCHAIN=LINARO
96      TARGET=armeb-linux-gnueabi
97      QEMU_ARCH=DISABLED
98  - os: linux
99    env:
100      TOOLCHAIN=CODESCAPE
101      TARGET=mips32
102      QEMU_ARCH=mips
103  - os: linux
104    env:
105      TOOLCHAIN=CODESCAPE
106      TARGET=mips32el
107      QEMU_ARCH=mipsel
108  - os: linux
109    env:
110      TOOLCHAIN=CODESCAPE
111      TARGET=mips64
112      QEMU_ARCH=mips64
113  - os: linux
114    env:
115      TOOLCHAIN=CODESCAPE
116      TARGET=mips64el
117      QEMU_ARCH=mips64el
118
119script:
120  - cmake --version
121  - bash -e -x ./scripts/run_integration.sh
122