• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Linux Build Configuration for Travis
2
3language: cpp
4
5os:
6  - linux
7  - osx
8
9# Use Ubuntu 14.04 LTS (Trusty) as the Linux testing environment.
10dist: trusty
11sudo: false
12
13# Use the default Xcode environment for Xcode.
14
15env:
16  # Each line is a set of environment variables set before a build.
17  # Thus each line represents a different build configuration.
18  - BUILD_TYPE=Release
19  - BUILD_TYPE=Debug
20
21compiler:
22  - clang
23  - gcc
24
25matrix:
26  fast_finish: true
27  include:
28    # Additional build using Android NDK
29    - env: BUILD_NDK=ON
30  exclude:
31    # Skip GCC builds on macOS.
32    - os: osx
33      compiler: gcc
34
35cache:
36  apt: true
37
38git:
39  depth: 1
40
41branches:
42  only:
43    - master
44
45before_install:
46  - if [[ "$BUILD_NDK" == "ON" ]]; then
47      git clone --depth=1 https://github.com/urho3d/android-ndk.git $HOME/android-ndk;
48      export ANDROID_NDK=$HOME/android-ndk;
49      git clone --depth=1 https://github.com/taka-no-me/android-cmake.git $HOME/android-cmake;
50      export TOOLCHAIN_PATH=$HOME/android-cmake/android.toolchain.cmake;
51    fi
52
53before_script:
54  - git clone --depth=1 https://github.com/KhronosGroup/SPIRV-Headers external/spirv-headers
55  - git clone --depth=1 https://github.com/google/googletest          external/googletest
56
57script:
58  - mkdir build && cd build
59  - if [[ "$BUILD_NDK" == "ON" ]]; then
60      cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_PATH}
61            -DANDROID_NATIVE_API_LEVEL=android-9
62            -DCMAKE_BUILD_TYPE=Release
63            -DANDROID_ABI="armeabi-v7a with NEON"
64            -DSPIRV_SKIP_TESTS=ON ..;
65    else
66      cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ..;
67    fi
68  # Due to the limitation of Travis platform, we cannot start too many concurrent jobs.
69  # Otherwise GCC will panic with internal error, possibility because of memory issues.
70  - make -j4
71  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
72      export NPROC=`nproc`;
73    else
74      export NPROC=`sysctl -n hw.ncpu`;
75    fi
76  - if [[ "$BUILD_NDK" != "ON" ]]; then ctest -j${NPROC} --output-on-failure --timeout 300; fi
77
78
79notifications:
80  email:
81    recipients:
82      - antiagainst@google.com
83      - awoloszyn@google.com
84      - dneto@google.com
85      - ehsann@google.com
86      - qining@google.com
87    on_success: change
88    on_failure: always
89