name: subsurface icon: icons/subsurface-icon.svg summary: Open source divelog program for recreational, tech, and free-divers description: | Subsurface can plan and track single- and multi-tank dives using air, Nitrox or TriMix. It allows tracking of dive locations including GPS coordinates (which can also conveniently be entered using a map interface), logging of equipment used and names of other divers, and lets users rate dives and provide additional notes. confinement: strict base: core22 adopt-info: subsurface layout: /etc/gitconfig: bind-file: $SNAP_DATA/gitconfig apps: subsurface: environment: LD_LIBRARY_PATH: ${LD_LIBRARY_PATH}:${SNAP}/usr/local/lib command-chain: - bin/desktop-launch command: usr/local/bin/subsurface desktop: usr/local/share/applications/subsurface.desktop plugs: - bluez - desktop - desktop-legacy - home - network - opengl - raw-usb - removable-media - wayland - x11 parts: googlemaps: source: https://github.com/Subsurface/googlemaps.git plugin: make make-parameters: - INSTALL_ROOT=${CRAFT_PART_INSTALL} build-packages: - qtbase5-dev - wget override-pull: | craftctl default export QT_SELECT=5 export QT_VERSION=$( qmake -query QT_VERSION ) mkdir -p QtHeaders/QtLocation/private QtHeaders/QtPositioning/private cd QtHeaders/QtLocation/private for HEADER in \ qlocationglobal \ maps/qabstractgeotilecache \ maps/qcache3q \ maps/qgeocameracapabilities \ maps/qgeocameradata \ maps/qgeomap \ maps/qgeomappingmanager \ maps/qgeomappingmanagerengine \ maps/qgeomaptype \ maps/qgeofiletilecache \ maps/qgeoprojection \ maps/qgeotiledmap \ maps/qgeotiledmappingmanagerengine \ maps/qgeotiledmapreply \ maps/qgeotilefetcher \ maps/qgeotilespec \ places/unsupportedreplies do wget --no-verbose --content-disposition \ http://code.qt.io/cgit/qt/qtlocation.git/plain/src/location/${HEADER}_p.h?h=v${QT_VERSION}-lts-lgpl done cd - cd QtHeaders/QtPositioning/private for HEADER in \ qdoublematrix4x4 \ qdoublevector2d \ qdoublevector3d \ qpositioningglobal do wget --no-verbose --content-disposition \ http://code.qt.io/cgit/qt/qtlocation.git/plain/src/positioning/${HEADER}_p.h?h=v${QT_VERSION}-lts-lgpl done override-build: | qmake \ INCLUDEPATH+=${CRAFT_PART_SRC}/QtHeaders \ ${CRAFT_PART_SRC} craftctl default desktop-qt5: source: https://github.com/ubuntu/snapcraft-desktop-helpers.git source-subdir: qt plugin: make make-parameters: ["FLAVOR=qt5"] build-packages: - build-essential - qtbase5-dev - dpkg-dev stage-packages: - libxkbcommon0 - fonts-ubuntu - dmz-cursor-theme - light-themes - adwaita-icon-theme - gnome-themes-standard - shared-mime-info - libqt5gui5 - libgdk-pixbuf2.0-0 - libqt5svg5 # for loading icon themes which are svg - locales-all - xdg-user-dirs - fcitx-frontend-qt5 libdc: plugin: autotools source: . source-type: git source-subdir: libdivecomputer build-packages: - libbluetooth-dev - libhidapi-dev - libusb-dev override-build: | sed -i 's/\[HIDAPI\], \[hidapi\]/[HIDAPI], [hidapi-libusb]/' libdivecomputer/configure.ac craftctl default stage-packages: - libbluetooth3 - libftdi1-2 - libhidapi-libusb0 - libusb-1.0-0 subsurface: source: . after: [desktop-qt5, googlemaps, libdc] plugin: cmake cmake-parameters: - -DMAKE_TESTS=OFF - -DLIBGIT2_DYNAMIC=ON - -DFTDISUPPORT=ON - -DLIBDIVECOMPUTER_LIBRARIES=../../../stage/usr/local/lib/libdivecomputer.so - -DLIBDIVECOMPUTER_INCLUDE_DIR=../../../stage/usr/local/include build-packages: - build-essential - libcurl4-gnutls-dev - libftdi1-dev - libgit2-dev - libqt5charts5-dev - libqt5svg5-dev - libqt5webkit5-dev - libsqlite3-dev - libssh2-1-dev - libssl-dev - libxml2-dev - libxslt1-dev - libzip-dev - pkg-config - qtconnectivity5-dev - qtlocation5-dev - qtpositioning5-dev - qttools5-dev override-pull: | craftctl default if [ ! -f latest-subsurface-buildnumber ] \ && git fetch --depth=1 https://github.com/subsurface/nightly-builds.git branch-for-$( git rev-parse HEAD ); then git checkout FETCH_HEAD latest-subsurface-buildnumber # We succeeded getting the release version, allow publishing above `beta` craftctl set grade=stable else craftctl set grade=devel fi craftctl set version=$( scripts/get-version.sh ) override-build: | mkdir -p ../install-root ln -sf ../../../stage/usr/lib/*/qt5/plugins/geoservices/libqtgeoservices_googlemaps.so \ ../install-root/ sed -i 's@^Icon=.*@Icon=${SNAP}/share/icons/hicolor/scalable/apps/subsurface-icon.svg@' ../src/subsurface.desktop craftctl default stage-packages: - libcap2 - libcurl3-gnutls - libdb5.3 - libftdi1-2 - libgit2-1.1 - libqt5bluetooth5 - libqt5charts5 - libqt5concurrent5 - libqt5core5a - libqt5gui5 - libqt5location5 - libqt5network5 - libqt5positioning5 - libqt5printsupport5 - libqt5qml5 - libqt5quick5 - libqt5quickwidgets5 - libqt5svg5 - libqt5webkit5 - libqt5widgets5 - libsqlite3-0 - libssh2-1 - libssl3 - libusb-1.0-0 - libxml2 - libxslt1.1 - libzip4 - qml-module-qtlocation - qml-module-qtpositioning - qml-module-qtquick2 - qtwayland5 - zlib1g