aboutsummaryrefslogtreecommitdiffstats
path: root/.travis.yml
blob: 41318268a55d89d231b83655e482b2a78364f6f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
language: cpp
matrix:
  include:
    - os: linux
      dist: xenial
    - os: linux
      dist: trusty
      env:
        - BUILD_ANDROID=true
    - os: freebsd
      compiler: clang
    - os: osx
    - os: osx
      osx_image: xcode11
      env:
        - BUILD_IOS=true
sudo: required
install:
  - >
    if [[ "${TRAVIS_OS_NAME}" == "linux" && -z "${BUILD_ANDROID}" ]]; then
      # Install pulseaudio, portaudio, ALSA, JACK dependencies for
      # corresponding backends.
      # Install Qt5 dependency for alsoft-config.
      sudo apt-get install -qq \
        libpulse-dev \
        portaudio19-dev \
        libasound2-dev \
        libjack-dev \
        qtbase5-dev
    fi
  - >
    if [[ "${TRAVIS_OS_NAME}" == "linux" && "${BUILD_ANDROID}" == "true" ]]; then
      curl -o ~/android-ndk.zip https://dl.google.com/android/repository/android-ndk-r21-linux-x86_64.zip
      unzip -q ~/android-ndk.zip -d ~ \
        'android-ndk-r21/build/cmake/*' \
        'android-ndk-r21/build/core/toolchains/arm-linux-androideabi-*/*' \
        'android-ndk-r21/platforms/android-16/arch-arm/*' \
        'android-ndk-r21/source.properties' \
        'android-ndk-r21/sources/android/support/include/*' \
        'android-ndk-r21/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/*' \
        'android-ndk-r21/sources/cxx-stl/llvm-libc++/include/*' \
        'android-ndk-r21/sysroot/*' \
        'android-ndk-r21/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/*' \
        'android-ndk-r21/toolchains/llvm/prebuilt/linux-x86_64/*'
      export OBOE_LOC=~/oboe
      git clone --depth 1 -b 1.3-stable https://github.com/google/oboe "$OBOE_LOC"
    fi
  - >
    if [[ "${TRAVIS_OS_NAME}" == "freebsd" ]]; then
      # Install Ninja as it's used downstream.
      # Install dependencies for all supported backends.
      # Install Qt5 dependency for alsoft-config.
      # Install ffmpeg for examples.
      sudo pkg install -y \
        alsa-lib \
        ffmpeg \
        jackit \
        libmysofa \
        ninja \
        portaudio \
        pulseaudio \
        qt5-buildtools \
        qt5-qmake \
        qt5-widgets \
        sdl2 \
        sndio \
        $NULL
    fi
script:
  - cmake --version
  - >
    if [[ "${TRAVIS_OS_NAME}" == "linux" && -z "${BUILD_ANDROID}" ]]; then
      cmake \
        -DALSOFT_REQUIRE_ALSA=ON \
        -DALSOFT_REQUIRE_OSS=ON \
        -DALSOFT_REQUIRE_PORTAUDIO=ON \
        -DALSOFT_REQUIRE_PULSEAUDIO=ON \
        -DALSOFT_REQUIRE_JACK=ON \
        -DALSOFT_EMBED_HRTF_DATA=YES \
        .
    fi
  - >
    if [[ "${TRAVIS_OS_NAME}" == "linux" && "${BUILD_ANDROID}" == "true" ]]; then
      cmake \
        -DANDROID_STL=c++_shared \
        -DCMAKE_TOOLCHAIN_FILE=~/android-ndk-r21/build/cmake/android.toolchain.cmake \
        -DOBOE_SOURCE="$OBOE_LOC" \
        -DALSOFT_REQUIRE_OBOE=ON \
        -DALSOFT_REQUIRE_OPENSL=ON \
        -DALSOFT_EMBED_HRTF_DATA=YES \
        .
    fi
  - >
    if [[ "${TRAVIS_OS_NAME}" == "freebsd" ]]; then
      cmake -GNinja \
        -DALSOFT_REQUIRE_ALSA=ON \
        -DALSOFT_REQUIRE_JACK=ON \
        -DALSOFT_REQUIRE_OSS=ON \
        -DALSOFT_REQUIRE_PORTAUDIO=ON \
        -DALSOFT_REQUIRE_PULSEAUDIO=ON \
        -DALSOFT_REQUIRE_SDL2=ON \
        -DALSOFT_REQUIRE_SNDIO=ON \
        -DALSOFT_EMBED_HRTF_DATA=YES \
        .
    fi
  - >
    if [[ "${TRAVIS_OS_NAME}" == "osx" && -z "${BUILD_IOS}" ]]; then
      cmake \
        -DALSOFT_REQUIRE_COREAUDIO=ON \
        -DALSOFT_EMBED_HRTF_DATA=YES \
        .
    fi
  - >
    if [[ "${TRAVIS_OS_NAME}" == "osx" && "${BUILD_IOS}" == "true" ]]; then
      cmake \
        -GXcode \
        -DCMAKE_TOOLCHAIN_FILE=cmake/ios.toolchain.cmake \
        -DPLATFORM=OS \
        -DALSOFT_REQUIRE_COREAUDIO=ON \
        -DALSOFT_EMBED_HRTF_DATA=YES \
        -DLIBTYPE=STATIC \
        -DALSOFT_UTILS=OFF \
        -DALSOFT_EXAMPLES=OFF \
        .
    fi
  - cmake --build . --clean-first