From 3ec2ceb72563fb643ba761bf3265aad57675534f Mon Sep 17 00:00:00 2001 From: xawotihs Date: Sat, 31 Oct 2015 20:15:47 +0100 Subject: [PATCH] Activate matrix and multi-os in travis --- .travis.yml | 86 +++++++++++++++++++++++++++--------------- tools/travis-script.sh | 68 +++++++++++++++++---------------- 2 files changed, 92 insertions(+), 62 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4ee8887fd..c9956b717 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,68 +1,94 @@ language: cpp +os: + - linux + - osx + branches: except: - latest-master before_install: - - export BUILD_PSP=YES - - export BUILD_ANDROID=NO - - export BUILD_SDL=YES - - export BUILD_Qt=YES - - export BUILD_MAC=YES - - sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty universe" - - sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty main" - - sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test - - sudo add-apt-repository --yes ppa:kalakris/cmake - - sudo apt-get -qq update - - sudo apt-get -qq install g++-4.8 - - sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 90 - - sudo apt-get -qq install cmake + - if [ "$TRAVIS_OS_NAME" == “linux” ]; then + sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty universe” && + sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty main” && + sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test && + sudo add-apt-repository --yes ppa:kalakris/cmake && + sudo apt-get -qq update && + sudo apt-get -qq install g++-4.8 && + sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 90 && + sudo apt-get -qq install cmake; + fi + + - if [ "$TRAVIS_OS_NAME" == “osx” ]; then + brew update && + brew install qt5 && + brew install dpkg && + curl -s -f -L https://raw.github.com/r-plus/dotfiles/master/install_theos.sh | bash && + pwd && + ls; + fi # Building for PSP here - - if [ "$BUILD_PSP" == "YES" ]; then + - if [ "$BUILD_TYPE” == “PSP” ]; then export PSPDEV="$TRAVIS_BUILD_DIR/opt/pspsdk" && export PSPSDK="$PSPDEV/psp/sdk" && export PATH="$PATH:$PSPDEV/bin:$PSPSDK/bin" && wget -O sdk.lzma http://sourceforge.net/projects/minpspw/files/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma/download; fi # Building for Android here - - if [ "$BUILD_ANDROID" == "YES" ]; then + - if [ "$BUILD_TYPE” == “ANDROID” ]; then export ANDROID="android-sdk-linux/tools/android" && if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi && wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv && wget http://dl.google.com/android/android-sdk_r24.3.4-linux.tgz -nv; fi # Building for Qt here - - if [ "$BUILD_Qt" == "YES" ]; then + - if [ "$BUILD_TYPE” == “Qt” ]; then sudo apt-get install -qq qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev qtmultimedia5-dev pulseaudio libpulse-dev && export QMAKE="qmake -qt=qt5"; fi # Building for SDL here - - if [ "$BUILD_SDL" == "YES" ]; then + - if [ "$BUILD_TYPE” == “SDL” ]; then export SDL2DIR="$TRAVIS_BUILD_DIR/thirdparty/SDL2"; fi install: -- sudo apt-get install --force-yes -qq libtinyxml-dev libjpeg-dev libpng-dev libgif-dev libz-dev libboost-system-dev libboost-thread-dev libboost-date-time-dev -- if [ "$BUILD_PSP" == "YES" ]; then - tar -x --xz -f sdk.lzma; - fi -- if [ "$BUILD_ANDROID" == "YES" ]; then - tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 && - tar -zxf android-sdk_r24.3.4-linux.tgz && - $ANDROID list sdk --extended -a && - echo yes | $ANDROID update sdk -a -t tools,platform-tools,build-tools-23.0.1,android-10 --no-ui --force --no-https; - fi -- sudo pip install pyjavaproperties -- sudo pip install github3.py -- sudo pip install cpp-coveralls + - if [ "$TRAVIS_OS_NAME" == “linux” ]; then + sudo pip install cpp-coveralls && + sudo apt-get install --force-yes -qq libtinyxml-dev libjpeg-dev libpng-dev libgif-dev libz-dev libboost-system-dev libboost-thread-dev libboost-date-time-dev; + fi + - if [ "$BUILD_TYPE” == “PSP” ]; then + tar -x --xz -f sdk.lzma; + fi + - if [ "$BUILD_TYPE” == “ANDROID” ]; then + tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 && + tar -zxf android-sdk_r24.3.4-linux.tgz && + $ANDROID list sdk --extended -a && + echo yes | $ANDROID update sdk -a -t tools,platform-tools,build-tools-23.0.1,android-10 --no-ui --force --no-https; + fi + - sudo pip install pyjavaproperties + - sudo pip install github3.py env: + - BUILD_TYPE=PSP + - BUILD_TYPE=ANDROID + - BUILD_TYPE=SDL + - BUILD_TYPE=Qt + - BUILD_TYPE=iOS global: - secure: "EBzr1+qjQsOhn0s+tcFmXR1jP9B0xiOSXuXbRXWZ1OEHNvp8+A5/pS84LYVFlaZqmxr5dApxvPtwhgLIUbQ3EPXm8LpC3KgSD4dS+9/QMbxhe5TK4oczgFRGcDTMJQZsCzhOh7hp3tbcbJg5Gp+VT7aFjFQSHDGwhzSJXsXwh/8=" - secure: "X5dTQfofqAutnXxmu11Ep2MQ5QYnMN8m0AITRtwymhEF2UclcOudI1+skPtuhAGbWQnSO+lhunV3cvMfw2/Ml3k/VDz6VdFSKFrzAu7ja1VLJfcxr7chi0s8q30pVBb66tGydjIBac3B+RQyqgmZQW1frbRrhC/kPFQ6wPWOJdQ=" - secure: "T97NUPnxCpVZ/c5HH0zfo0FO3DPSRMSmze58ubW5EUTZOjAMtEt+OFdsrNZvUTCugUj2M1agtonZbAbczpaAL+lgZcHDgXgWMkfO0pMnsWX1yyCNqMuE/iTMpJr/xsLQeyWlftWjJLsseQU45abZsd1XVmda/G+ZhrDLF1y55SA=" +matrix: + exclude: + - os: osx + env: BUILD_TYPE=PSP + - os: osx + env: BUILD_TYPE=ANDROID + - os: linux + env: BUILD_TYPE=iOS + script: "tools/travis-script.sh" after_success: diff --git a/tools/travis-script.sh b/tools/travis-script.sh index 48d5903d3..033b8b935 100755 --- a/tools/travis-script.sh +++ b/tools/travis-script.sh @@ -18,11 +18,12 @@ fi echo RELEASE_NAME = $RELEASE_NAME - -# updating versions with the TRAVIS build numbers -cd projects/mtg/ -ant update > error.txt -cd ../.. +if [ "$TRAVIS_OS_NAME” = “linux” ]; then + # updating versions with the TRAVIS build numbers + cd projects/mtg/ + ant update > error.txt + cd ../.. +fi # we create resource package cd projects/mtg/bin/Res @@ -33,7 +34,7 @@ mv core_*.zip ../../../../core.zip cd ../../../.. # we're building a PSP binary here -if [ "$BUILD_PSP" = "YES" ]; then +if [ "$BUILD_TYPE" = "PSP" ]; then mkdir build_psp cd build_psp cmake -DCMAKE_TOOLCHAIN_FILE=../CMakeModules/psp.toolchain.cmake .. @@ -42,28 +43,28 @@ if [ "$BUILD_PSP" = "YES" ]; then fi # we're building an Android binary here -if [ "$BUILD_ANDROID" = "YES" ]; then - mkdir build_sdl - cd build_sdl - cmake -DCMAKE_TOOLCHAIN_FILE=../CMakeModules/android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=android-10 - make -j8 - cd .. +if [ "$BUILD_TYPE" = "ANDROID" ]; then + mkdir build_android + cd build_android + cmake -DCMAKE_TOOLCHAIN_FILE=../CMakeModules/android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=android-10 + make -j8 + cd .. fi # we're building a Qt version with GUI here -if [ "$BUILD_Qt" = "YES" ]; then - mkdir build_qt_widget - cd build_qt_widget - cmake -Dbackend_qt_widget=ON -Dbackend_qt_console=OFF .. - make -j4 - cd .. +if [ "$BUILD_TYPE” = “Qt” ]; then + mkdir build_qt_widget + cd build_qt_widget + cmake -Dbackend_qt_widget=ON -Dbackend_qt_console=OFF .. + make -j4 + cd .. # let's try an Intel linux binary in debug text-mode-only - mkdir build_qt_console - cd build_qt_console - cmake -Dbackend_qt_console=ON .. - make -j4 - cd .. + mkdir build_qt_console + cd build_qt_console + cmake -Dbackend_qt_console=ON .. + make -j4 + cd .. # Now we run the testsuite (Res needs to be in the working directory) cd projects/mtg @@ -72,14 +73,17 @@ if [ "$BUILD_Qt" = "YES" ]; then fi # we're building a SDL version -if [ "$BUILD_SDL" = "YES" ]; then - mkdir build_SDL - cd build_SDL - cmake -Dbackend_sdl=ON .. - make -j4 - cd .. +if [ "$BUILD_TYPE" = "SDL" ]; then + mkdir build_SDL + cd build_SDL + cmake -Dbackend_sdl=ON .. + make -j4 + cd .. fi -# Let's launch de Mac cross-compilation -if [ "$BUILD_MAC" = "YES" ]; then - ./tools/build-macos-script.sh + +# Let's launch de iOS cross-compilation +if [ "$BUILD_TYPE” = “iOS” ]; then + cd projects/mtg/iOS + make -j 4 package + cd ../../.. fi