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_SYSTEM_NAME=iOS \ -DALSOFT_OSX_FRAMEWORK=ON \ -DALSOFT_REQUIRE_COREAUDIO=ON \ -DALSOFT_EMBED_HRTF_DATA=YES \ "-DCMAKE_OSX_ARCHITECTURES=armv7;arm64" \ . fi - cmake --build . --clean-first