Travis: use our own Qt binaries for AppImage build

This is no longer based on the upstream Qt binaries but completely on
binaries built by ourselves, trying to remove some of the features that
we don't need and trying to avoid some of the issues with certain
libraries (like different OpenSSL dependencies).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2017-11-09 12:38:04 -08:00
parent 38b2fea30f
commit b425d5641d
2 changed files with 17 additions and 27 deletions

View file

@ -1,28 +1,28 @@
#!/bin/bash
set -x
# this gets executed by Travis when building an AppImage for Linux
# it gets started from inside the subsurface directory
export QT_ROOT=$PWD/Qt
export PATH=$QT_ROOT/5.9.1/bin:$PATH # Make sure correct qmake is found on the $PATH for linuxdeployqt
export CMAKE_PREFIX_PATH=$QT_ROOT/5.9.1/lib/cmake
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
cd ..
bash -e ./subsurface/scripts/build.sh -desktop -create-appdir -build-with-webkit # we need to build 'both' and need to build without BT and other variations that we want to exercise
cd ..
bash -e -x ./subsurface/scripts/build.sh -desktop -create-appdir -build-with-webkit # we need to build 'both' and need to build without BT and other variations that we want to exercise
export QT_PLUGIN_PATH=$QT_ROOT/5.9.1/plugins
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/5.9.1/plugins
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_DEBUG_PLUGINS=1
# for debugging: find $QT_ROOT/5.9.1/plugins
# for debugging: find $QT_ROOT/plugins
env CTEST_OUTPUT_ON_FAILURE=1 make -C subsurface/build check
# set up the appdir
mkdir -p appdir/usr/plugins/
mv appdir/usr/home/travis/build/*/subsurface/Qt/5.9.1/plugins/* appdir/usr/plugins/
mv appdir/usr/home/travis/build/*/subsurface/Qt/*/plugins/* appdir/usr/plugins/
mv appdir/usr/lib/grantlee/ appdir/usr/plugins/
sudo mv appdir/usr/lib/* /usr/local/lib/ # Workaround for https://github.com/probonopd/linuxdeployqt/issues/160
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
@ -36,9 +36,6 @@ unset LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/lib/ # Workaround for https://github.com/probonopd/linuxdeployqt/issues/160
./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -bundle-non-qt-libs -qmldir=./subsurface/map-widget/ -verbose=2
# hack around the gstreamer plugins - this should be fixed with better Qt package
sed -i -e 's|/usr/lib/x86_64-linux-gnu|/usr/lib/x86_64-linux-xxx|g' ./appdir/usr/lib/libgstreamer-1.0.so.0
# create the AppImage
export VERSION=$(cd subsurface/ ; git rev-parse --short HEAD) # linuxdeployqt uses this for naming the file
./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -appimage -qmldir=./subsurface/map-widget/ -verbose=2