blob: 4fe4b5e5ba95f8ab0dfa094837fa560e29e5e01e [file] [log] [blame]
Lei Zhangc4ebb552016-05-04 11:29:21 -04001# Linux and Mac 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.
Lei Zhangb21213e2017-05-13 14:26:30 -040010sudo: false
Lei Zhangc4ebb552016-05-04 11:29:21 -040011dist: trusty
12
13env:
Lei Zhangfba299a2017-11-08 21:32:01 -050014 global:
15 - secure: aGFrgzyKp+84hKrGkxVWg8cHV61uqrKEHT38gfSQK6+WS4GfLOyH83p7WnsEBb7AMhzU7LMNFdvOFr6+NaMpVnqRvc40CEG1Q+lNg9Pq9mhIZLowvDrfqTL9kQ+8Nbw5Q6/dg6CTvY7fvRfpfCEmKIUZBRkoKUuHeuM1uy3IupFcdNuL5bSYn3Beo+apSJginh9DI4BLDXFUgBzTRSLLyCX5g3cpaeGGOCr8quJlYx75W6HRck5g9SZuLtUoH9GFEV3l+ZEWB8noErW+J56L03bwNwFuuAh321evw++oQk5KFa8rlDvar3SJ3b1RHB8u/eq5DBYMyaK/fS8+Q7QbGr8diF/wDe68bKO7U9IhpNfExXmczCpExjHomW5TQv4rYdGhygPMfW97aIsPRYyNKcl4fkmb7NDrM8w0Jscdq2g5c2Kz0ItyZoBri/NXLwFQQjaVCs7Pf97TjuMA7mK0GJmDTRzi6SrDYlWMt5BQL3y0CCojyfLIRcTh0CQjQI29s97bLfQrYAxt9GNNFR+HTXRLLrkaAlJkPGEPwUywlSfEThnvHLesNxYqemolAYpQT4ithoL4GehGIHmaxsW295aKVhuRf8K9eBODNqrfblvM42UHhjntT+92ZnQ/Gkq80GqaMxnxi4PO5FyPIxt0r981b54YBkWi8YA4P7w5pNI=
16 matrix:
17 - GLSLANG_BUILD_TYPE=Release
18 - GLSLANG_BUILD_TYPE=Debug
Lei Zhangc4ebb552016-05-04 11:29:21 -040019
20compiler:
21 - clang
22 - gcc
23
24matrix:
25 fast_finish: true # Show final status immediately if a test fails.
26 exclude:
27 # Skip GCC builds on Mac OS X.
28 - os: osx
29 compiler: gcc
Lei Zhangb21213e2017-05-13 14:26:30 -040030 include:
31 # Additional build using Android NDK.
32 - env: BUILD_NDK=ON
Lei Zhangc4ebb552016-05-04 11:29:21 -040033
34cache:
35 apt: true
36
37branches:
38 only:
39 - master
40
41addons:
42 apt:
43 packages:
44 - clang-3.6
Lei Zhangc4ebb552016-05-04 11:29:21 -040045
46install:
Lei Zhangb21213e2017-05-13 14:26:30 -040047 # Make sure that clang-3.6 is selected on Linux.
Lei Zhangc4ebb552016-05-04 11:29:21 -040048 - if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "clang" ]]; then
49 export CC=clang-3.6 CXX=clang++-3.6;
50 fi
Lei Zhangb21213e2017-05-13 14:26:30 -040051 # Download Android NDK and Android CMake toolchain file.
52 - if [[ "$BUILD_NDK" == "ON" ]]; then
53 git clone --depth=1 https://github.com/urho3d/android-ndk.git $HOME/android-ndk;
54 export ANDROID_NDK=$HOME/android-ndk;
55 git clone --depth=1 https://github.com/taka-no-me/android-cmake.git $HOME/android-cmake;
56 export TOOLCHAIN_PATH=$HOME/android-cmake/android.toolchain.cmake;
57 fi
Lei Zhangc4ebb552016-05-04 11:29:21 -040058
59before_script:
Lei Zhangafa128a2017-09-25 14:04:20 -040060 - git clone --depth=1 https://github.com/google/googletest.git External/googletest
GregFf4517562017-09-22 15:30:10 -060061 - ./update_glslang_sources.py
Lei Zhangc4ebb552016-05-04 11:29:21 -040062
63script:
64 - mkdir build && cd build
Lei Zhangb21213e2017-05-13 14:26:30 -040065 # For Android, do release building using NDK without testing.
66 # For Linux and macOS, do debug/release building with testing.
67 - if [[ "$BUILD_NDK" == "ON" ]]; then
68 cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_PATH}
69 -DANDROID_NATIVE_API_LEVEL=android-12
70 -DCMAKE_BUILD_TYPE=Release
71 -DANDROID_ABI="armeabi-v7a with NEON"
Lei Zhangafa128a2017-09-25 14:04:20 -040072 -DBUILD_TESTING=OFF ..;
73 make -j4;
Lei Zhangb21213e2017-05-13 14:26:30 -040074 else
75 cmake -DCMAKE_BUILD_TYPE=${GLSLANG_BUILD_TYPE}
Lei Zhangafa128a2017-09-25 14:04:20 -040076 -DCMAKE_INSTALL_PREFIX=`pwd`/install ..;
77 make -j4 install;
Lei Zhangb21213e2017-05-13 14:26:30 -040078 ctest --output-on-failure &&
79 cd ../Test && ./runtests;
80 fi
Lei Zhangfba299a2017-11-08 21:32:01 -050081
82after_success:
83 # For debug build, the generated dll has a postfix "d" in its name.
84 - if [[ "${GLSLANG_BUILD_TYPE}" == "Debug" ]]; then
85 export SUFFIX="d";
86 else
87 export SUFFIX="";
88 fi
89 # Create tarball for deployment
90 - if [[ ${CC} == clang* && "${BUILD_NDK}" != "ON" ]]; then
91 cd ../build/install;
92 export TARBALL=glslang-master-${TRAVIS_OS_NAME}-${GLSLANG_BUILD_TYPE}.zip;
93 zip ${TARBALL}
94 bin/glslangValidator
95 include/glslang/*
96 include/SPIRV/*
97 lib/libglslang${SUFFIX}.a
98 lib/libHLSL${SUFFIX}.a
99 lib/libOGLCompiler${SUFFIX}.a
100 lib/libOSDependent${SUFFIX}.a
101 lib/libSPIRV${SUFFIX}.a
102 lib/libSPVRemapper${SUFFIX}.a
103 lib/libSPIRV-Tools${SUFFIX}.a
104 lib/libSPIRV-Tools-opt${SUFFIX}.a;
105 fi
106
107before_deploy:
108 # Tag the current top of the tree as "master-tot".
109 # Travis CI replies on the tag name to properly push to GitHub Releases.
110 - git config --global user.name "Travis CI"
111 - git config --global user.email "builds@travis-ci.org"
112 - git tag -f master-tot
113 - git push -q -f https://${glslangtoken}@github.com/KhronosGroup/glslang --tags
114
115deploy:
116 provider: releases
117 api_key: ${glslangtoken}
118 on:
119 branch: master
120 condition: ${CC} == clang* && ${BUILD_NDK} != ON
121 file: ${TARBALL}
122 skip_cleanup: true
123 overwrite: true