388 lines
10 KiB
YAML
388 lines
10 KiB
YAML
language: cpp
|
|
|
|
dist: xenial
|
|
|
|
jobs:
|
|
include:
|
|
|
|
# Emscripten cross compiling
|
|
#- os: linux
|
|
# compiler: gcc
|
|
# env:
|
|
# - env_build_emscripten=1
|
|
|
|
# mac os
|
|
# Default mac os clang build
|
|
- os: osx
|
|
osx_image: xcode10
|
|
compiler: clang
|
|
- os: osx
|
|
compiler: clang
|
|
- os: osx
|
|
compiler: clang
|
|
env:
|
|
- env_cmake_configuration=Release
|
|
|
|
# Xcode mac os clang build
|
|
- os: osx
|
|
compiler: clang
|
|
env :
|
|
- env_cmake_generator=Xcode
|
|
- os: osx
|
|
compiler: clang
|
|
env :
|
|
- env_cmake_generator=Xcode
|
|
- env_cmake_configuration=Release
|
|
|
|
# Linux ARM
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_build_fbx=0
|
|
- env_cmake_configuration=Debug
|
|
arch:
|
|
- arm64
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_build_fbx=0
|
|
- env_cmake_configuration=Release
|
|
arch:
|
|
- arm64
|
|
|
|
# Linux
|
|
# Default linux clang debug
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_cmake_configuration=Debug
|
|
# Default linux release clang
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_cmake_configuration=Release
|
|
|
|
# Specific configurations
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_build_fbx=0
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_build_gltf=0
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_build_howtos=0
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_build_samples=0
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_build_tools=0
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_build_postfix=0
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_build_simd_ref=1
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_build_tests=0
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_build_fbx=0
|
|
- env_build_gltf=0
|
|
- env_build_samples=0
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_build_fbx=0
|
|
- env_build_gltf=0
|
|
- env_build_tests=0
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_build_data=0
|
|
- env_build_fbx=0
|
|
- env_build_gltf=0
|
|
- env_build_samples=0
|
|
- env_build_tests=0
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_build_data=0
|
|
- os: linux
|
|
compiler: clang
|
|
env:
|
|
- env_src_root="../test/sub/"
|
|
|
|
# Default linux gcc debug
|
|
- os: linux
|
|
compiler: gcc
|
|
env:
|
|
- env_cmake_configuration=Debug
|
|
# Default linux gcc release
|
|
- os: linux
|
|
compiler: gcc
|
|
env:
|
|
- env_cmake_configuration=Release
|
|
|
|
# Newer gcc
|
|
- os: linux
|
|
compiler: gcc-4.9
|
|
env:
|
|
- env_cmake_cxx_compiler=g++-4.9
|
|
- env_cmake_c_compiler=gcc-4.9
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- g++-4.9
|
|
- os: linux
|
|
compiler: gcc-5
|
|
env:
|
|
- env_cmake_cxx_compiler=g++-5
|
|
- env_cmake_c_compiler=gcc-5
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- g++-5
|
|
- os: linux
|
|
compiler: gcc-6
|
|
env:
|
|
- env_cmake_cxx_compiler=g++-6
|
|
- env_cmake_c_compiler=gcc-6
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- g++-6
|
|
- os: linux
|
|
compiler: gcc-7
|
|
env:
|
|
- env_cmake_cxx_compiler=g++-7
|
|
- env_cmake_c_compiler=gcc-7
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- g++-7
|
|
- os: linux
|
|
compiler: gcc-8
|
|
env:
|
|
- env_cmake_cxx_compiler=g++-8
|
|
- env_cmake_c_compiler=gcc-8
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- g++-8
|
|
|
|
# Newer clang
|
|
- os: linux
|
|
compiler: clang-3.9
|
|
env:
|
|
- env_cmake_cxx_compiler=clang++-3.9
|
|
- env_cmake_c_compiler=clang-3.9
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-xenial-3.9
|
|
packages:
|
|
- clang-3.9
|
|
- os: linux
|
|
compiler: clang-4.0
|
|
env:
|
|
- env_cmake_cxx_compiler=clang++-4.0
|
|
- env_cmake_c_compiler=clang-4.0
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-xenial-4.0
|
|
packages:
|
|
- clang-4.0
|
|
- os: linux
|
|
compiler: clang-5.0
|
|
env:
|
|
- env_cmake_cxx_compiler=clang++-5.0
|
|
- env_cmake_c_compiler=clang-5.0
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-xenial-5.0
|
|
packages:
|
|
- clang-5.0
|
|
- os: linux
|
|
compiler: clang-6.0
|
|
env:
|
|
- env_cmake_cxx_compiler=clang++-6.0
|
|
- env_cmake_c_compiler=clang-6.0
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-xenial-6.0
|
|
packages:
|
|
- clang-6.0
|
|
- os: linux
|
|
compiler: clang-7
|
|
env:
|
|
- env_cmake_cxx_compiler=clang++-7
|
|
- env_cmake_c_compiler=clang-7
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-xenial-7
|
|
packages:
|
|
- clang-7
|
|
- os: linux
|
|
compiler: clang-8
|
|
env:
|
|
- env_cmake_cxx_compiler=clang++-8
|
|
- env_cmake_c_compiler=clang-8
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-xenial-8
|
|
packages:
|
|
- clang-8
|
|
|
|
# older fbx sdk
|
|
- os: linux
|
|
compiler: gcc
|
|
env:
|
|
- fbx_download=http://download.autodesk.com/us/fbx/2017/2017.1/fbx20171_fbxsdk_linux.tar.gz
|
|
- os: osx
|
|
compiler: clang
|
|
env:
|
|
- fbx_download=http://download.autodesk.com/us/fbx/2017/2017.1/fbx20171_fbxsdk_clang_mac.pkg.tgz
|
|
|
|
before_install:
|
|
- echo before_install----------------------------------------------------------
|
|
|
|
install:
|
|
- echo install-----------------------------------------------------------------
|
|
# Download and install mesa dev
|
|
- if [[ $TRAVIS_OS_NAME == "linux" ]]; then
|
|
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev;
|
|
fi
|
|
# Download and install fbx sdk
|
|
# "|| true" because 2019 sdk would return code 130 when reading the readme
|
|
# chmod because fbx2019 will install with 700
|
|
- if [[ $TRAVIS_OS_NAME == "linux" ]]; then
|
|
if [ -z "$fbx_download" ]; then
|
|
FBX_DOWNLOAD=${fbx_download:-"http://www.autodesk.com/content/dam/autodesk/www/adn/fbx/20192/fbx20192_fbxsdk_linux.tar.gz"};
|
|
else
|
|
FBX_DOWNLOAD="$fbx_download";
|
|
fi;
|
|
mkdir fbx;
|
|
cd fbx;
|
|
sudo wget $FBX_DOWNLOAD -O fbx.tar.gz;
|
|
sudo tar -xf "fbx.tar.gz";
|
|
(yes yes | sudo ./*_fbxsdk_linux /usr/local) || true;
|
|
sudo chmod -R 755 /usr/local/lib;
|
|
sudo chmod -R 755 /usr/local/include;
|
|
cd ..;
|
|
fi
|
|
- if [[ $TRAVIS_OS_NAME == "osx" ]]; then
|
|
if [ -z "$fbx_download" ]; then
|
|
FBX_DOWNLOAD=${fbx_download:-"http://www.autodesk.com/content/dam/autodesk/www/adn/fbx/20192/fbx20192_fbxsdk_clang_mac.pkg.tgz"};
|
|
else
|
|
FBX_DOWNLOAD="$fbx_download";
|
|
fi;
|
|
mkdir fbx;
|
|
cd fbx;
|
|
sudo wget $FBX_DOWNLOAD -O fbx.tgz;
|
|
sudo tar -xf "fbx.tgz";
|
|
sudo installer -pkg *_fbxsdk_clang_macos.pkg -target /;
|
|
cd ..;
|
|
fi
|
|
# Download and install emscripten sdk
|
|
- if [[ $env_build_emscripten ]]; then
|
|
sudo apt-get install software-properties-common -y;
|
|
sudo add-apt-repository ppa:george-edison55/cmake-3.x -y;
|
|
sudo apt-get update;
|
|
sudo apt-get install --only-upgrade cmake -y;
|
|
git clone https://github.com/juj/emsdk.git;
|
|
cd emsdk;
|
|
sudo ./emsdk update-tags;
|
|
sudo ./emsdk install sdk-nightly-latest-64bit;
|
|
sudo ./emsdk activate --embedded sdk-nightly-latest-64bit;
|
|
source ./emsdk_env.sh;
|
|
cd ..;
|
|
fi
|
|
|
|
before_script:
|
|
- echo before_script-----------------------------------------------------------
|
|
|
|
# Setup default environment variables
|
|
- if [[ -z $env_src_root ]]; then export env_src_root=".."; fi
|
|
- if [[ -z $env_build_fbx ]]; then export env_build_fbx=1; fi
|
|
- if [[ -z $env_build_gltf ]]; then export env_build_gltf=1; fi
|
|
- if [[ -z $env_build_data ]]; then export env_build_data=1; fi
|
|
- if [[ -z $env_build_howtos ]]; then export env_build_howtos=1; fi
|
|
- if [[ -z $env_build_tools ]]; then export env_build_tools=1; fi
|
|
- if [[ -z $env_build_postfix ]]; then export env_build_postfix=1; fi
|
|
- if [[ -z $env_build_samples ]]; then export env_build_samples=1; fi
|
|
- if [[ -z $env_build_simd_ref ]]; then export env_build_simd_ref=0; fi
|
|
- if [[ -z $env_build_tests ]]; then export env_build_tests=1; fi
|
|
- if [[ -z $env_cmake_configuration ]]; then export env_cmake_configuration=Debug; fi
|
|
- if [[ -z $env_cmake_cxx_compiler ]]; then export env_cmake_cxx_compiler=$CXX; fi
|
|
- if [[ -z $env_cmake_c_compiler ]]; then export env_cmake_c_compiler=$CC; fi
|
|
- if [[ -z $env_cmake_generator ]]; then export env_cmake_generator="Unix Makefiles"; fi
|
|
- if [[ $env_cmake_generator == "Unix Makefiles" ]]; then export env_cmake_generator_specific="-j2"; fi
|
|
- if [[ $env_cmake_generator == "Unix Makefiles" ]]; then export env_ctest_generator_specific="-j16"; fi
|
|
- if [[ $EMSCRIPTEN ]]; then env_cmake_toolchain="-DCMAKE_TOOLCHAIN_FILE=$EMSCRIPTEN/cmake/Modules/Platform/Emscripten.cmake"; fi
|
|
|
|
# Display cmake version
|
|
- cmake --version
|
|
|
|
script:
|
|
- echo script------------------------------------------------------------------
|
|
# Configure build
|
|
- mkdir build
|
|
- cd build
|
|
- echo $env_cmake_toolchain
|
|
- cmake -G "$env_cmake_generator" $env_cmake_toolchain -DCMAKE_CXX_COMPILER=$env_cmake_cxx_compiler -DCMAKE_C_COMPILER=$env_cmake_c_compiler -DCMAKE_BUILD_TYPE=$env_cmake_configuration -Dozz_build_fbx=$env_build_fbx -Dozz_build_data=$env_build_data -Dozz_build_howtos=$env_build_howtos -Dozz_build_samples=$env_build_samples -Dozz_build_postfix=$env_build_postfix -Dozz_build_tools=$env_build_tools -Dozz_build_simd_ref=$env_build_simd_ref -Dozz_build_tests=$env_build_tests $env_src_root
|
|
# Build
|
|
- cmake --build ./ --config $env_cmake_configuration --use-stderr -- $env_cmake_generator_specific
|
|
# Test
|
|
- ctest --build-config $env_cmake_configuration --output-on-failure -- $env_ctest_generator_specific
|
|
|
|
after_success:
|
|
- echo after_success-----------------------------------------------------------
|
|
|
|
after_failure:
|
|
- echo after_failure-----------------------------------------------------------
|
|
|
|
before_deploy:
|
|
#- echo before_deploy-----------------------------------------------------------
|
|
|
|
deploy:
|
|
#- echo deploy------------------------------------------------------------------
|
|
|
|
after_deploy:
|
|
#- echo after_deploy------------------------------------------------------------
|
|
|
|
after_script:
|
|
#- echo after_script------------------------------------------------------------
|