summaryrefslogtreecommitdiffstats
path: root/scripts/linux-trusty-qt512/in-container-build.sh
diff options
context:
space:
mode:
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