summaryrefslogtreecommitdiffstats
path: root/.travis.yml
diff options
context:
space:
mode:
authorGravatar probonopd <probonopd@users.noreply.github.com>2017-11-05 22:28:52 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-11-05 14:49:14 -0800
commitcc4ca76ea02320bb69f79d5c91babc545f551600 (patch)
tree7abeb2ac66f11b3467a5db02f4ca2ac39364700f /.travis.yml
parent956b45ddfda060fcd818659ee05618ed2e4bfcab (diff)
downloadsubsurface-cc4ca76ea02320bb69f79d5c91babc545f551600.tar.gz
Build AppImage on Travis CI
https://github.com/Subsurface-divelog/subsurface/issues/769
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml29
1 files changed, 21 insertions, 8 deletions
diff --git a/.travis.yml b/.travis.yml
index 5d3c9ad58..6e437b28e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,10 +1,10 @@
language: c++
-
+sudo: true # for FUSE
dist: trusty
-cache:
- directories:
- - Qt
+# cache:
+# directories:
+# - Qt
addons:
apt:
@@ -27,6 +27,8 @@ addons:
- libcurl4-openssl-dev
# Not a subsurface dependency, but a Qt dependency
- mesa-common-dev
+ # Not a subsurface dependency, but a QtMultimedia/libdeclarative_multimedia.so dependency
+ - libpulse-mainloop-glib0
before_install:
- if [ ! -e Qt/5.9.1 ] ; then
@@ -39,11 +41,22 @@ before_install:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
-
script:
+ - export PATH=$PWD/Qt/5.9.1/gcc_64/bin:$PATH # Make sure correct qmake is found on the $PATH for linuxdeployqt
- export CMAKE_PREFIX_PATH=$PWD/Qt/5.9.1/gcc_64/lib/cmake ;
cd .. ;
- bash -e ./subsurface/scripts/build.sh -both -no-bt ;
- bash -e ./subsurface/scripts/build.sh -both
+ bash -e ./subsurface/scripts/build.sh -desktop -create-appdir
- env CTEST_OUTPUT_ON_FAILURE=1 make -C subsurface/build check
-# - env CTEST_OUTPUT_ON_FAILURE=1 make -C subsurface/build-mobile check
+ - # env CTEST_OUTPUT_ON_FAILURE=1 make -C subsurface/build-mobile check
+ - mkdir -p appdir/usr/plugins/ ; mv appdir/usr/home/travis/build/*/subsurface/Qt/5.9.1/gcc_64/plugins/* 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
+ - wget -c "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
+ - export LD_LIBRARY_PATH=/usr/local/lib/ # Workaround for https://github.com/probonopd/linuxdeployqt/issues/160
+ - mkdir -p ./subsurface/map-widget ; cp ./subsurface/mobile-widgets/qml/{MapWidget,MapWidgetContextMenu,MapWidgetError}.qml ./subsurface/map-widget # FIXME: Workaround for https://github.com/Subsurface-divelog/subsurface/issues/769#issuecomment-341920456
+ - ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -bundle-non-qt-libs -qmldir=./subsurface/map-widget/ -verbose=2
+ - ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -appimage -qmldir=./subsurface/map-widget/ -verbose=2
+ - find ./appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq
+ - curl --upload-file ./Subsurface*.AppImage https://transfer.sh/Subsurface-git.$(cd subsurface/ ; git rev-parse --short HEAD)-x86_64.AppImage