The Travis-CI bot downloads a copy of the Android NDK. The source we get it from recently updated to Android NDK r17b. However, the android.toolchain.cmake file does not know how to parse the Android native API level from that version of the NDK. So check out the NDK r13b version that we were using until yesterday. Fixes #1439
132 lines
4.3 KiB
YAML
132 lines
4.3 KiB
YAML
# Linux and Mac Build Configuration for Travis
|
|
|
|
language: cpp
|
|
|
|
os:
|
|
- linux
|
|
- osx
|
|
|
|
# Use Ubuntu 14.04 LTS (Trusty) as the Linux testing environment.
|
|
sudo: false
|
|
dist: trusty
|
|
|
|
env:
|
|
global:
|
|
- secure: aGFrgzyKp+84hKrGkxVWg8cHV61uqrKEHT38gfSQK6+WS4GfLOyH83p7WnsEBb7AMhzU7LMNFdvOFr6+NaMpVnqRvc40CEG1Q+lNg9Pq9mhIZLowvDrfqTL9kQ+8Nbw5Q6/dg6CTvY7fvRfpfCEmKIUZBRkoKUuHeuM1uy3IupFcdNuL5bSYn3Beo+apSJginh9DI4BLDXFUgBzTRSLLyCX5g3cpaeGGOCr8quJlYx75W6HRck5g9SZuLtUoH9GFEV3l+ZEWB8noErW+J56L03bwNwFuuAh321evw++oQk5KFa8rlDvar3SJ3b1RHB8u/eq5DBYMyaK/fS8+Q7QbGr8diF/wDe68bKO7U9IhpNfExXmczCpExjHomW5TQv4rYdGhygPMfW97aIsPRYyNKcl4fkmb7NDrM8w0Jscdq2g5c2Kz0ItyZoBri/NXLwFQQjaVCs7Pf97TjuMA7mK0GJmDTRzi6SrDYlWMt5BQL3y0CCojyfLIRcTh0CQjQI29s97bLfQrYAxt9GNNFR+HTXRLLrkaAlJkPGEPwUywlSfEThnvHLesNxYqemolAYpQT4ithoL4GehGIHmaxsW295aKVhuRf8K9eBODNqrfblvM42UHhjntT+92ZnQ/Gkq80GqaMxnxi4PO5FyPIxt0r981b54YBkWi8YA4P7w5pNI=
|
|
matrix:
|
|
- GLSLANG_BUILD_TYPE=Release
|
|
- GLSLANG_BUILD_TYPE=Debug
|
|
|
|
compiler:
|
|
- clang
|
|
- gcc
|
|
|
|
matrix:
|
|
fast_finish: true # Show final status immediately if a test fails.
|
|
exclude:
|
|
# Skip GCC builds on Mac OS X.
|
|
- os: osx
|
|
compiler: gcc
|
|
include:
|
|
# Additional build using Android NDK.
|
|
- env: BUILD_NDK=ON
|
|
|
|
cache:
|
|
apt: true
|
|
|
|
branches:
|
|
only:
|
|
- master
|
|
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- clang-3.6
|
|
|
|
install:
|
|
# Make sure that clang-3.6 is selected on Linux.
|
|
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "clang" ]]; then
|
|
export CC=clang-3.6 CXX=clang++-3.6;
|
|
fi
|
|
# Download Android NDK and Android CMake toolchain file.
|
|
- if [[ "$BUILD_NDK" == "ON" ]]; then
|
|
# Unfortunately the android.toolchain.cmake file does not understand how to
|
|
# get the API level from Android NDK r17b. So fall back on r13b.
|
|
# Get only one commit at tag r13b.
|
|
export ANDROID_NDK=$HOME/android-ndk;
|
|
git init $ANDROID_NDK;
|
|
pushd $ANDROID_NDK;
|
|
git remote add urho3d https://github.com/urho3d/android-ndk.git;
|
|
git fetch --depth=1 urho3d r13b;
|
|
git checkout FETCH_HEAD;
|
|
popd;
|
|
git clone --depth=1 https://github.com/taka-no-me/android-cmake.git $HOME/android-cmake;
|
|
export TOOLCHAIN_PATH=$HOME/android-cmake/android.toolchain.cmake;
|
|
fi
|
|
|
|
before_script:
|
|
- git clone --depth=1 https://github.com/google/googletest.git External/googletest
|
|
- ./update_glslang_sources.py
|
|
|
|
script:
|
|
- mkdir build && cd build
|
|
# For Android, do release building using NDK without testing.
|
|
# For Linux and macOS, do debug/release building with testing.
|
|
- if [[ "$BUILD_NDK" == "ON" ]]; then
|
|
cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_PATH}
|
|
-DANDROID_NATIVE_API_LEVEL=android-12
|
|
-DCMAKE_BUILD_TYPE=Release
|
|
-DANDROID_ABI="armeabi-v7a with NEON"
|
|
-DBUILD_TESTING=OFF ..;
|
|
make -j4;
|
|
else
|
|
cmake -DCMAKE_BUILD_TYPE=${GLSLANG_BUILD_TYPE}
|
|
-DCMAKE_INSTALL_PREFIX=`pwd`/install ..;
|
|
make -j4 install;
|
|
ctest --output-on-failure &&
|
|
cd ../Test && ./runtests;
|
|
fi
|
|
|
|
after_success:
|
|
# For debug build, the generated dll has a postfix "d" in its name.
|
|
- if [[ "${GLSLANG_BUILD_TYPE}" == "Debug" ]]; then
|
|
export SUFFIX="d";
|
|
else
|
|
export SUFFIX="";
|
|
fi
|
|
# Create tarball for deployment
|
|
- if [[ ${CC} == clang* && "${BUILD_NDK}" != "ON" ]]; then
|
|
cd ../build/install;
|
|
export TARBALL=glslang-master-${TRAVIS_OS_NAME}-${GLSLANG_BUILD_TYPE}.zip;
|
|
zip ${TARBALL}
|
|
bin/glslangValidator
|
|
include/glslang/*
|
|
include/SPIRV/*
|
|
lib/libglslang${SUFFIX}.a
|
|
lib/libHLSL${SUFFIX}.a
|
|
lib/libOGLCompiler${SUFFIX}.a
|
|
lib/libOSDependent${SUFFIX}.a
|
|
lib/libSPIRV${SUFFIX}.a
|
|
lib/libSPVRemapper${SUFFIX}.a
|
|
lib/libSPIRV-Tools${SUFFIX}.a
|
|
lib/libSPIRV-Tools-opt${SUFFIX}.a;
|
|
fi
|
|
|
|
before_deploy:
|
|
# Tag the current top of the tree as "master-tot".
|
|
# Travis CI replies on the tag name to properly push to GitHub Releases.
|
|
- git config --global user.name "Travis CI"
|
|
- git config --global user.email "builds@travis-ci.org"
|
|
- git tag -f master-tot
|
|
- git push -q -f https://${glslangtoken}@github.com/KhronosGroup/glslang --tags
|
|
|
|
deploy:
|
|
provider: releases
|
|
api_key: ${glslangtoken}
|
|
on:
|
|
branch: master
|
|
condition: ${CC} == clang* && ${BUILD_NDK} != ON
|
|
file: ${TARBALL}
|
|
skip_cleanup: true
|
|
overwrite: true
|