X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-util.git;a=blobdiff_plain;f=cross-compile%2Fmacosx%2Fcreate_dmg;h=be976737a98908c44783799a58f65d4e6162dd7d;hp=7b4b12c73ca6c725339a8836f381179aad8d4451;hb=04cb58f895ed1968c5d383f747d24ccd5b3a7e1c;hpb=5d2c0f55090fad9c99b97fc91ffdb66d19a12578 diff --git a/cross-compile/macosx/create_dmg b/cross-compile/macosx/create_dmg index 7b4b12c..be97673 100755 --- a/cross-compile/macosx/create_dmg +++ b/cross-compile/macosx/create_dmg @@ -2,7 +2,7 @@ ## ## This file is part of the sigrok-util project. ## -## Copyright (C) 2017 Uwe Hermann +## Copyright (C) 2017-2020 Uwe Hermann ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -23,19 +23,31 @@ set -e # The path where the installed sigrok libraries/binaries are located. PREFIX=$HOME/sr_macosx +if [ "x$1" = "xsigrok-cli" ]; then + APPNAME="sigrok-cli" + APPNAME_BINARY="sigrok-cli" +else + APPNAME="PulseView" + APPNAME_BINARY="pulseview" +fi + # The path where to download files to and where to build packages. -BUILDDIR=./build_app +BUILDDIR=./build_app_$APPNAME_BINARY + +# We use Qt 5.5 in order to remain compatible with more versions of Mac OS X. +QTVER=qt@5.5 # Path to Qt5 binaries. -QTBINDIR=`brew list qt5 | grep bin | head -n 1 | xargs dirname` +QTBINDIR=`brew list $QTVER | grep bin | head -n 1 | xargs dirname` +QTTRANSLATIONSDIR=`brew --prefix $QTVER`/translations # Path to boost libraries. -BOOSTLIBDIR=`brew list boost | grep libboost_system | head -n 1 | xargs dirname` +BOOSTLIBDIR=`brew list boost | grep libboost_system | grep -v cmake | head -n 1 | xargs dirname` # Path to Python 3 framework. -PYTHONFRAMEWORKDIR=`brew list python3 | grep Python.framework | head -n 1 | xargs dirname`/../../../.. +PYTHONFRAMEWORKDIR=`brew list python3 | grep libpython | head -n 1 | xargs dirname`/../../../.. -PYVER="3.6" +PYVER="3.7" # You usually don't need to change anything below this line. @@ -46,9 +58,7 @@ rm -rf $BUILDDIR mkdir $BUILDDIR cd $BUILDDIR -APPNAME="PulseView" -APPNAME_BINARY="pulseview" -APPVER="nightly" +APPVER="NIGHTLY" CONTENTSDIR="$APPNAME.app/Contents" MACOSDIR="$CONTENTSDIR/MacOS" @@ -59,15 +69,23 @@ PYDIR="$FRAMEWORKSDIR/Python.framework/Versions/$PYVER" mkdir -p $MACOSDIR $FRAMEWORKSDIR $SHARE_DIR cp $PREFIX/bin/$APPNAME_BINARY $MACOSDIR +# Implementation detail: Shared libraries are handled below. cp -R $PREFIX/share/libsigrokdecode $SHARE_DIR rm -rf $SHARE_DIR/libsigrokdecode/decoders/**/__pycache__ rm -rf $SHARE_DIR/libsigrokdecode/decoders/common/**/__pycache__ cp -R $PREFIX/share/sigrok-firmware $SHARE_DIR -# Manually copy some boost libs that "macdeployqt" won't copy. -cp $BOOSTLIBDIR/libboost_timer-mt.dylib $FRAMEWORKSDIR -cp $BOOSTLIBDIR/libboost_chrono-mt.dylib $FRAMEWORKSDIR -chmod 644 $FRAMEWORKSDIR/*boost* +if [ "x$APPNAME_BINARY" = "xpulseview" ]; then + # Manually copy some boost libs that "macdeployqt" won't copy. + cp $BOOSTLIBDIR/libboost_timer-mt.dylib $FRAMEWORKSDIR + cp $BOOSTLIBDIR/libboost_chrono-mt.dylib $FRAMEWORKSDIR + chmod 644 $FRAMEWORKSDIR/*boost* + + # Manually copy translations ("macdeployqt" won't copy them). + mkdir -p $CONTENTSDIR/translations + cp $QTTRANSLATIONSDIR/qt_*.qm $CONTENTSDIR/translations + cp $QTTRANSLATIONSDIR/qtbase_*.qm $CONTENTSDIR/translations +fi $QTBINDIR/macdeployqt $APPNAME.app @@ -92,17 +110,21 @@ rm -rf $PYDIR/lib/python$PYVER/**/__pycache__ rm -rf $PYDIR/lib/python$PYVER/**/**/__pycache__ rm -rf $PYDIR/Resources install_name_tool -change \ - /usr/local/opt/python3/Frameworks/Python.framework/Versions/$PYVER/Python \ + /usr/local/opt/python/Frameworks/Python.framework/Versions/$PYVER/Python \ @executable_path/../Frameworks/Python.framework/Versions/$PYVER/Python \ $FRAMEWORKSDIR/libsigrokdecode.*.dylib +install_name_tool -change \ + /usr/local/opt/python/Frameworks/Python.framework/Versions/$PYVER/Python \ + @executable_path/../Frameworks/Python.framework/Versions/$PYVER/Python \ + $PREFIX/lib/libirmp.*.dylib -# Add PulseView wrapper script that sets PYTHONHOME and SIGROKDECODE_DIR. +# Add wrapper (sets PYTHONHOME/SIGROK_FIRMWARE_DIR/SIGROKDECODE_DIR). mv $MACOSDIR/$APPNAME_BINARY $MACOSDIR/$APPNAME_BINARY.real -cp ../contrib/pulseview $MACOSDIR +cp ../contrib/$APPNAME_BINARY $MACOSDIR chmod 755 $MACOSDIR/$APPNAME_BINARY -cp ../contrib/Info.plist $CONTENTSDIR -cp ../contrib/pulseview.icns $CONTENTSDIR/Resources +cp ../contrib/Info.plist_$APPNAME_BINARY $CONTENTSDIR/Info.plist +cp ../contrib/$APPNAME_BINARY.icns $CONTENTSDIR/Resources -hdiutil create "${APPNAME}_${APPVER}.dmg" -volname "$APPNAME $APPVER" \ +hdiutil create "${APPNAME}-${APPVER}.dmg" -volname "$APPNAME $APPVER" \ -fs HFS+ -srcfolder "$APPNAME.app"