forked from BigfootDev/flatbuffers
Android build was dated, using the Android.mk approach. Current project configuration on Android encourages the usage of CMake, so we are updating the android project as an example on how to use either the Java/Kotlin generate code or the native C++ one.
203 lines
6.4 KiB
YAML
203 lines
6.4 KiB
YAML
env:
|
|
global:
|
|
# Set at the root level as this is ignored when set under matrix.env.
|
|
- GCC_VERSION="4.9"
|
|
# Fail on first error if UBSAN or ASAN enabled for a target
|
|
- UBSAN_OPTIONS=halt_on_error=1
|
|
- ASAN_OPTIONS=halt_on_error=1
|
|
# Travis machines have 2 cores
|
|
- JOBS=2
|
|
- MAKEFLAGS="-j 2"
|
|
|
|
conan-linux: &conan-linux
|
|
os: linux
|
|
dist: xenial
|
|
language: python
|
|
python: "3.7"
|
|
services:
|
|
- docker
|
|
install:
|
|
- ./conan/travis/install.sh
|
|
script:
|
|
- ./conan/travis/build.sh
|
|
if: tag IS present
|
|
|
|
conan-linux-master: &conan-linux-master
|
|
os: linux
|
|
dist: xenial
|
|
language: python
|
|
python: "3.7"
|
|
services:
|
|
- docker
|
|
install:
|
|
- 'if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash ./conan/travis/install.sh; fi'
|
|
script:
|
|
- 'if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash ./conan/travis/build.sh; fi'
|
|
branches:
|
|
only:
|
|
- master
|
|
|
|
conan-osx: &conan-osx
|
|
os: osx
|
|
language: generic
|
|
install:
|
|
- ./conan/travis/install.sh
|
|
script:
|
|
- ./conan/travis/build.sh
|
|
if: tag IS present
|
|
|
|
matrix:
|
|
include:
|
|
#- language: python
|
|
# python: "2.7"
|
|
# install:
|
|
# - "pip install wheel twine"
|
|
# script:
|
|
# - "cd python/"
|
|
# - 'VERSION="$TRAVIS_TAG" python setup.py sdist bdist_wheel'
|
|
# - "cd ../"
|
|
# deploy:
|
|
# # Checkpointed release builds.
|
|
# - provider: script
|
|
# script: .travis/deploy-python.sh
|
|
# skip_cleanup: true
|
|
# on:
|
|
# tags: true
|
|
# # all_branches must be set with tags: true. See below post:
|
|
# # https://stackoverflow.com/a/27775257/1076585
|
|
# all_branches: true
|
|
# # Produce a new build for the cutting edge when master changes.
|
|
# - provider: script
|
|
# script: .travis/deploy-python.sh
|
|
# skip_cleanup: true
|
|
# on:
|
|
# branch: master
|
|
- language: cpp
|
|
os:
|
|
- linux
|
|
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- docker-ce
|
|
script:
|
|
- bash .travis/build-and-run-docker-test-containers.sh
|
|
|
|
- language: cpp
|
|
os:
|
|
- linux
|
|
|
|
compiler:
|
|
- gcc
|
|
|
|
env:
|
|
matrix:
|
|
- BUILD_TYPE=Debug
|
|
- BUILD_TYPE=Release
|
|
|
|
before_install:
|
|
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
|
|
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get update -qq; fi
|
|
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq g++-$GCC_VERSION; fi
|
|
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq gcc-$GCC_VERSION; fi
|
|
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ln -s -v -f $(which g++-$GCC_VERSION) /usr/bin/g++; fi
|
|
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ln -s -v -f $(which gcc-$GCC_VERSION) /usr/bin/gcc; fi
|
|
|
|
script:
|
|
- bash .travis/check-sources.sh
|
|
- bash grpc/build_grpc.sh
|
|
- cmake .
|
|
-DCMAKE_BUILD_TYPE=$BUILD_TYPE
|
|
-DFLATBUFFERS_BUILD_GRPCTEST=ON
|
|
-DGRPC_INSTALL_PATH=$TRAVIS_BUILD_DIR/google/grpc/install
|
|
-DPROTOBUF_DOWNLOAD_PATH=$TRAVIS_BUILD_DIR/google/grpc/third_party/protobuf
|
|
-DFLATBUFFERS_CODE_SANITIZE=ON
|
|
- cmake --build . --target all --clean-first -- -j${JOBS}
|
|
- LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/google/grpc/install/lib ctest --extra-verbose --output-on-failure
|
|
- bash .travis/check-generate-code.sh
|
|
|
|
- language: cpp
|
|
os: osx
|
|
osx_image: xcode9.3
|
|
env:
|
|
matrix:
|
|
- BUILD_TYPE=Debug
|
|
- BUILD_TYPE=Release
|
|
|
|
script:
|
|
- bash grpc/build_grpc.sh
|
|
- cmake .
|
|
-DCMAKE_BUILD_TYPE=$BUILD_TYPE
|
|
-DFLATBUFFERS_BUILD_GRPCTEST=ON
|
|
-DGRPC_INSTALL_PATH=$TRAVIS_BUILD_DIR/google/grpc/install
|
|
-DPROTOBUF_DOWNLOAD_PATH=$TRAVIS_BUILD_DIR/google/grpc/third_party/protobuf
|
|
-DFLATBUFFERS_CODE_SANITIZE=ON
|
|
- cmake --build . -- -j${JOBS}
|
|
- DYLD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/google/grpc/install/lib ctest --extra-verbose --output-on-failure
|
|
- bash .travis/check-generate-code.sh
|
|
|
|
- <<: *conan-linux-master
|
|
env: CONAN_GCC_VERSIONS=8 CONAN_DOCKER_IMAGE=conanio/gcc8
|
|
- <<: *conan-linux
|
|
env: CONAN_GCC_VERSIONS=4.9 CONAN_DOCKER_IMAGE=conanio/gcc49
|
|
- <<: *conan-linux
|
|
env: CONAN_GCC_VERSIONS=5 CONAN_DOCKER_IMAGE=conanio/gcc5
|
|
- <<: *conan-linux
|
|
env: CONAN_GCC_VERSIONS=6 CONAN_DOCKER_IMAGE=conanio/gcc6
|
|
- <<: *conan-linux
|
|
env: CONAN_GCC_VERSIONS=7 CONAN_DOCKER_IMAGE=conanio/gcc7
|
|
- <<: *conan-linux
|
|
env: CONAN_GCC_VERSIONS=8 CONAN_DOCKER_IMAGE=conanio/gcc8
|
|
- <<: *conan-linux
|
|
env: CONAN_GCC_VERSIONS=9 CONAN_DOCKER_IMAGE=conanio/gcc9
|
|
- <<: *conan-linux
|
|
env: CONAN_CLANG_VERSIONS=3.9 CONAN_DOCKER_IMAGE=conanio/clang39
|
|
- <<: *conan-linux
|
|
env: CONAN_CLANG_VERSIONS=4.0 CONAN_DOCKER_IMAGE=conanio/clang40
|
|
- <<: *conan-linux
|
|
env: CONAN_CLANG_VERSIONS=5.0 CONAN_DOCKER_IMAGE=conanio/clang50
|
|
- <<: *conan-linux
|
|
env: CONAN_CLANG_VERSIONS=6.0 CONAN_DOCKER_IMAGE=conanio/clang60
|
|
- <<: *conan-linux
|
|
env: CONAN_CLANG_VERSIONS=7.0 CONAN_DOCKER_IMAGE=conanio/clang7
|
|
- <<: *conan-linux
|
|
env: CONAN_CLANG_VERSIONS=8 CONAN_DOCKER_IMAGE=conanio/clang8
|
|
- <<: *conan-osx
|
|
osx_image: xcode7.3
|
|
env: CONAN_APPLE_CLANG_VERSIONS=7.3
|
|
- <<: *conan-osx
|
|
osx_image: xcode8.3
|
|
env: CONAN_APPLE_CLANG_VERSIONS=8.1
|
|
- <<: *conan-osx
|
|
osx_image: xcode9
|
|
env: CONAN_APPLE_CLANG_VERSIONS=9.0
|
|
- <<: *conan-osx
|
|
osx_image: xcode9.4
|
|
env: CONAN_APPLE_CLANG_VERSIONS=9.1
|
|
- <<: *conan-osx
|
|
osx_image: xcode10.2
|
|
env: CONAN_APPLE_CLANG_VERSIONS=10.0
|
|
|
|
- language: android
|
|
sudo: true
|
|
dist: trusty
|
|
android:
|
|
components:
|
|
- tools
|
|
- platform-tools
|
|
- extra-android-m2repository
|
|
licenses:
|
|
- 'android-sdk-preview-license-52d11cd2'
|
|
- 'android-sdk-license-.+'
|
|
- 'google-gdk-license-.+'
|
|
compiler:
|
|
- gcc
|
|
before_install:
|
|
- echo y | sdkmanager "platforms;android-30"
|
|
- echo y | sdkmanager "build-tools;30.0.2"
|
|
- echo y | sdkmanager "ndk-bundle"
|
|
- echo y | sdkmanager "cmake;3.6.4111459"
|
|
script:
|
|
- cmake -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF .; make; export PATH="$PATH:${PWD}"
|
|
- cd android; ./gradlew clean build
|