diff --git a/.travis.yml b/.travis.yml index ec33d9018..20d4110f8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -55,6 +55,46 @@ matrix: - libglib2.0-dev - mdbtools-dev + - env: SUBSURFACE_PLATFORM='linux2' + os: linux + dist: trusty + language: c++ + addons: + apt: + sources: + - sourceline: 'ppa:beineri/opt-qt-5.10.1-trusty' + key_url: 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x10C56D0DE9977759' + packages: + - qt510base + - qt510connectivity + - qt510declarative + - qt510location + - qt510quickcontrols + - qt510quickcontrols2 + - qt510script + - qt510translations + - qt510svg + - qt510tools + - git + - g++ + - make + - autoconf + - automake + - libtool + - cmake + - pkg-config + - libxml2-dev + - libxslt1-dev + - libzip-dev + - libsqlite3-dev + - libusb-1.0-0-dev + - libssl-dev + - libssh2-1-dev + - libcurl4-openssl-dev + # Not a subsurface dependency, but a Qt dependency + - mesa-common-dev + - libxcb-xinerama0 + - env: SUBSURFACE_PLATFORM="android" # Currently hard coded to arm os: linux diff --git a/scripts/linux/travisbuild.sh b/scripts/linux/travisbuild.sh index f4bfaf63f..f87ef7f76 100644 --- a/scripts/linux/travisbuild.sh +++ b/scripts/linux/travisbuild.sh @@ -15,9 +15,7 @@ export CMAKE_PREFIX_PATH=$QT_ROOT/lib/cmake # to create an AppImage cd .. -bash -e -x ./subsurface/scripts/build.sh -desktop -no-bt -rm -rf subsurface/build -bash -e -x ./subsurface/scripts/build.sh -both -create-appdir -build-with-webkit +bash -e -x ./subsurface/scripts/build.sh -desktop -create-appdir -build-with-webkit export QT_PLUGIN_PATH=$QT_ROOT/plugins export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins diff --git a/scripts/linux2/after_success.sh b/scripts/linux2/after_success.sh new file mode 100644 index 000000000..2b2638ee7 --- /dev/null +++ b/scripts/linux2/after_success.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# we don't do anything here + +exit 0 diff --git a/scripts/linux2/before_install.sh b/scripts/linux2/before_install.sh new file mode 100644 index 000000000..3b0ddceb4 --- /dev/null +++ b/scripts/linux2/before_install.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# prep things so we can build for Linux +# we have a custom built Qt some gives us just what we need, including QtWebKit +# +# this is built from the latest version as of 2017-11-09 in the 5.9 branch and +# therefore calls itself Qt-5.9.3 + +set -x + +# Travis only pulls shallow repos. But that messes with git describe. +# Sorry Travis, fetching the whole thing and the tags as well... +git fetch --unshallow +git pull --tags +git describe + +. /opt/qt510/bin/qt510-env.sh +export QT_ROOT=/opt/qt510 + +# TestPreferences uses gui calls, so run a xvfb so it has something to talk to +export DISPLAY=:99.0 +sh -e /etc/init.d/xvfb start + diff --git a/scripts/linux2/travisbuild.sh b/scripts/linux2/travisbuild.sh new file mode 100644 index 000000000..ecb275868 --- /dev/null +++ b/scripts/linux2/travisbuild.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +set -x +set -e + +# this gets executed by Travis when building an AppImage for Linux +# it gets started from inside the subsurface directory + +export PATH=$QT_ROOT/bin:$PATH # Make sure correct qmake is found on the $PATH for linuxdeployqt +export CMAKE_PREFIX_PATH=$QT_ROOT/lib/cmake + +# the global build script expects to be called from the directory ABOVE subsurface +# build both desktop and mobile - first desktop without BT support and without +# webkit to make sure that still works, then with all components in order +# to create an AppImage +cd .. + +bash -e -x ./subsurface/scripts/build.sh -desktop -no-bt +rm -rf subsurface/build +bash -e -x ./subsurface/scripts/build.sh -mobile +