3 ## This file is part of the sigrok-util project.
5 ## Copyright (C) 2017 Uwe Hermann <uwe@hermann-uwe.de>
7 ## This program is free software; you can redistribute it and/or modify
8 ## it under the terms of the GNU General Public License as published by
9 ## the Free Software Foundation; either version 2 of the License, or
10 ## (at your option) any later version.
12 ## This program is distributed in the hope that it will be useful,
13 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
14 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 ## GNU General Public License for more details.
17 ## You should have received a copy of the GNU General Public License
18 ## along with this program; if not, see <http://www.gnu.org/licenses/>.
23 # The path where the installed sigrok libraries/binaries are located.
24 PREFIX=$HOME/sr_macosx
26 # The path where to download files to and where to build packages.
29 # We use Qt 5.5 in order to remain compatible with more versions of Mac OS X.
32 # Path to Qt5 binaries.
33 QTBINDIR=`brew list $QTVER | grep bin | head -n 1 | xargs dirname`
34 QTTRANSLATIONSDIR=`brew --prefix $QTVER`/translations
36 # Path to boost libraries.
37 BOOSTLIBDIR=`brew list boost | grep libboost_system | head -n 1 | xargs dirname`
39 # Path to Python 3 framework.
40 PYTHONFRAMEWORKDIR=`brew list python3 | grep Python.framework | head -n 1 | xargs dirname`/../../../..
44 # You usually don't need to change anything below this line.
46 # -----------------------------------------------------------------------------
48 # Remove build directory contents (if any) and create a new build dir.
54 APPNAME_BINARY="pulseview"
57 CONTENTSDIR="$APPNAME.app/Contents"
58 MACOSDIR="$CONTENTSDIR/MacOS"
59 FRAMEWORKSDIR="$CONTENTSDIR/Frameworks"
60 SHARE_DIR="$CONTENTSDIR/share"
61 PYDIR="$FRAMEWORKSDIR/Python.framework/Versions/$PYVER"
63 mkdir -p $MACOSDIR $FRAMEWORKSDIR $SHARE_DIR
65 cp $PREFIX/bin/$APPNAME_BINARY $MACOSDIR
66 cp -R $PREFIX/share/libsigrokdecode $SHARE_DIR
67 rm -rf $SHARE_DIR/libsigrokdecode/decoders/**/__pycache__
68 rm -rf $SHARE_DIR/libsigrokdecode/decoders/common/**/__pycache__
69 cp -R $PREFIX/share/sigrok-firmware $SHARE_DIR
71 # Manually copy some boost libs that "macdeployqt" won't copy.
72 cp $BOOSTLIBDIR/libboost_timer-mt.dylib $FRAMEWORKSDIR
73 cp $BOOSTLIBDIR/libboost_chrono-mt.dylib $FRAMEWORKSDIR
74 chmod 644 $FRAMEWORKSDIR/*boost*
76 # Manually copy translations ("macdeployqt" won't copy them).
77 mkdir -p $CONTENTSDIR/translations
79 cp $QTTRANSLATIONSDIR/qt_$lang.qm $CONTENTSDIR/translations
80 cp $QTTRANSLATIONSDIR/qtbase_$lang.qm $CONTENTSDIR/translations
83 $QTBINDIR/macdeployqt $APPNAME.app
85 # Copy Python framework and fix it up.
86 cp -R $PYTHONFRAMEWORKDIR $FRAMEWORKSDIR
87 chmod 644 $PYDIR/lib/libpython*.dylib
92 rm -rf $PYDIR/lib/pkgconfig
93 rm -rf $PYDIR/lib/python$PYVER/lib2to3
94 rm -rf $PYDIR/lib/python$PYVER/distutils
95 rm -rf $PYDIR/lib/python$PYVER/idlelib
96 rm -rf $PYDIR/lib/python$PYVER/test
97 rm -rf $PYDIR/lib/python$PYVER/**/test
98 rm -rf $PYDIR/lib/python$PYVER/tkinter
99 rm -rf $PYDIR/lib/python$PYVER/turtledemo
100 rm -rf $PYDIR/lib/python$PYVER/unittest
101 rm -rf $PYDIR/lib/python$PYVER/__pycache__
102 rm -rf $PYDIR/lib/python$PYVER/**/__pycache__
103 rm -rf $PYDIR/lib/python$PYVER/**/**/__pycache__
104 rm -rf $PYDIR/Resources
105 install_name_tool -change \
106 /usr/local/opt/python/Frameworks/Python.framework/Versions/$PYVER/Python \
107 @executable_path/../Frameworks/Python.framework/Versions/$PYVER/Python \
108 $FRAMEWORKSDIR/libsigrokdecode.*.dylib
110 # Add PulseView wrapper (sets PYTHONHOME/SIGROK_FIRMWARE_DIR/SIGROKDECODE_DIR).
111 mv $MACOSDIR/$APPNAME_BINARY $MACOSDIR/$APPNAME_BINARY.real
112 cp ../contrib/pulseview $MACOSDIR
113 chmod 755 $MACOSDIR/$APPNAME_BINARY
115 cp ../contrib/Info.plist $CONTENTSDIR
116 cp ../contrib/pulseview.icns $CONTENTSDIR/Resources
118 hdiutil create "${APPNAME}-${APPVER}.dmg" -volname "$APPNAME $APPVER" \
119 -fs HFS+ -srcfolder "$APPNAME.app"