sigrok-native-appimage: Use local copy of AppImage's functions.sh.
[sigrok-util.git] / cross-compile / appimage / sigrok-native-appimage
blob6ea6b9f310bc2eaa85316f07192f165c7a2dd7fb
1 #!/bin/bash
2 ##
3 ## Copyright (C) 2016 Simon Peter
4 ## Copyright (C) 2017 Uwe Hermann <uwe@hermann-uwe.de>
5 ## This file is licensed under the terms of the MIT license.
6 ##
8 # Bundle PulseView and its dependencies as an AppImage for x86_64 Linux.
9 # Note: This assumes the full sigrok stack has been installed into $PREFIX.
11 PREFIX=$HOME/sr
13 ARCH=x86_64
15 APP=PulseView
16 LOWERAPP=${APP,,}
18 A="./$APP/$APP.AppDir"
19 mkdir -p $A/usr/bin $A/usr/lib $A/usr/share
20 cd ./$APP
22 . ../contrib/functions.sh
24 ########################################################################
25 # Get build products from $PREFIX
26 ########################################################################
28 cd $APP.AppDir/
30 cp $PREFIX/bin/pulseview usr/bin/
31 chmod a+x usr/bin/*
32 cp $PREFIX/lib/lib*.so* usr/lib/
33 cp -r $PREFIX/share/libsigrokdecode usr/share/
34 cp -r $PREFIX/share/sigrok-firmware usr/share/
36 # Reduce binary size
37 strip usr/bin/*
38 strip usr/lib/*
40 ########################################################################
41 # AppRun is the main launcher that gets executed when AppImage is run
42 ########################################################################
44 get_apprun
46 ########################################################################
47 # Copy desktop and icon file to AppDir for AppRun to pick them up
48 ########################################################################
50 cp ../../contrib/pulseview.desktop ../../contrib/sigrok-logo-notext.png .
52 ########################################################################
53 # Copy in the dependencies that cannot be assumed to be available
54 # on all target systems
55 ########################################################################
57 copy_deps
59 ########################################################################
60 # Delete stuff that should not go into the AppImage
61 ########################################################################
63 delete_blacklisted
64 move_lib
65 mv ./usr/lib/x86_64-linux-gnu/* usr/lib/
66 rm -r ./usr/lib/x86_64-linux-gnu/
68 # Remove some incorrectly/unintentionally copied files.
69 rm -r ./home
71 ########################################################################
72 # Determine the version of the app; also include needed glibc version
73 ########################################################################
75 VER1="NIGHTLY"
76 GLIBC_NEEDED=$(glibc_needed)
77 VERSION=$VER1.glibc$GLIBC_NEEDED
78 echo $VERSION
80 ########################################################################
81 # Patch away absolute paths; it would be nice if they were relative
82 ########################################################################
84 patch_usr
86 ########################################################################
87 # AppDir complete
88 # Now packaging it as an AppImage
89 ########################################################################
91 cd ..
93 generate_appimage