summaryrefslogtreecommitdiffstats
path: root/scripts/linux-trusty-qt512/in-container-build.sh
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2019-09-03 23:07:37 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-09-05 17:54:09 -0700
commita921acb3ce30ef5cbc4ea8093fcc0bdae13fb109 (patch)
treef366b1ba56c348185a83de00daff85627040a0de /scripts/linux-trusty-qt512/in-container-build.sh
parent6670ea7bdb580db5630ce4176334801ef6c811d4 (diff)
downloadsubsurface-a921acb3ce30ef5cbc4ea8093fcc0bdae13fb109.tar.gz
Travis: build Subsurface AppImage against Qt 5.12
For this we need our own hand crafted trusty container with Qt 5.12, including QtWebKit and an updated cmake and libdbus, as well as already build googlemaps plugin, grantlee and libgit2. At the same time stop uploading the Subsurface AppImage in the traditional trusty build. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'scripts/linux-trusty-qt512/in-container-build.sh')
-rw-r--r--scripts/linux-trusty-qt512/in-container-build.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/scripts/linux-trusty-qt512/in-container-build.sh b/scripts/linux-trusty-qt512/in-container-build.sh
new file mode 100644
index 000000000..226170f93
--- /dev/null
+++ b/scripts/linux-trusty-qt512/in-container-build.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+set -x
+set -e
+
+# this gets executed by Travis when building an AppImage for Linux
+# inside of the trusty-qt512 container
+
+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
+
+bash -e -x /subsurface/scripts/build.sh -desktop -create-appdir -build-with-webkit -quick
+
+export QT_PLUGIN_PATH=$QT_ROOT/plugins
+export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
+export QT_DEBUG_PLUGINS=1
+
+# set up the appdir
+mkdir -p appdir/usr/plugins/
+
+# mv googlemaps and Grantlee plugins into place
+mv appdir/usr/usr/local/Qt/5.12.4/gcc_64/plugins/* appdir/usr/plugins # the usr/usr is not a typo, that's where it ends up
+mv appdir/usr/lib/grantlee/ appdir/usr/plugins/
+rm -rf appdir/usr/home/ appdir/usr/include/ appdir/usr/share/man/ # No need to ship developer and man files as part of the AppImage
+rm -rf appdir/usr/usr appdir/usr/lib/cmake appdir/usr/lib/pkgconfig
+
+# get the linuxdeployqt tool and run it to collect the libraries
+curl -L -O "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
+chmod a+x linuxdeployqt*.AppImage
+unset QTDIR
+unset QT_PLUGIN_PATH
+unset LD_LIBRARY_PATH
+./linuxdeployqt*.AppImage --appimage-extract-and-run ./appdir/usr/share/applications/*.desktop -bundle-non-qt-libs -qmldir=./subsurface/map-widget/ -verbose=2
+
+# create the AppImage
+export VERSION=$(cd /subsurface/scripts ; ./get-version linux) # linuxdeployqt uses this for naming the file
+./linuxdeployqt*.AppImage --appimage-extract-and-run ./appdir/usr/share/applications/*.desktop -appimage -qmldir=./subsurface/map-widget/ -verbose=2
+
+# copy AppImage to the calling VM
+cp Subsurface*.AppImage* /subsurface