From: Uwe Hermann Date: Sat, 30 May 2020 13:54:22 +0000 (+0200) Subject: sigrok-native-macosx: Add sigrok-cli DMG creation support. X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=5872b25f6aefbcb9f68150f96f9aeae56e8e4337;p=sigrok-util.git sigrok-native-macosx: Add sigrok-cli DMG creation support. --- diff --git a/cross-compile/macosx/README b/cross-compile/macosx/README index 342757f..2b863e3 100644 --- a/cross-compile/macosx/README +++ b/cross-compile/macosx/README @@ -38,3 +38,11 @@ Per default it will install the compiled packages in: Please edit the script if you want to change any settings. + +Creating a DMG file +------------------- + + $ ./create_dmg pulseview + + $ ./create_dmg sigrok-cli + diff --git a/cross-compile/macosx/contrib/Info.plist b/cross-compile/macosx/contrib/Info.plist deleted file mode 100644 index c595e6b..0000000 --- a/cross-compile/macosx/contrib/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - NSPrincipalClass - NSApplication - CFBundleIconFile - pulseview.icns - CFBundlePackageType - APPL - CFBundleGetInfoString - PulseView is a Qt based logic analyzer, oscilloscope and MSO GUI for sigrok. - CFBundleSignature - ???? - CFBundleExecutable - pulseview - CFBundleIdentifier - org.sigrok.PulseView - - diff --git a/cross-compile/macosx/contrib/Info.plist_pulseview b/cross-compile/macosx/contrib/Info.plist_pulseview new file mode 100644 index 0000000..c595e6b --- /dev/null +++ b/cross-compile/macosx/contrib/Info.plist_pulseview @@ -0,0 +1,20 @@ + + + + + NSPrincipalClass + NSApplication + CFBundleIconFile + pulseview.icns + CFBundlePackageType + APPL + CFBundleGetInfoString + PulseView is a Qt based logic analyzer, oscilloscope and MSO GUI for sigrok. + CFBundleSignature + ???? + CFBundleExecutable + pulseview + CFBundleIdentifier + org.sigrok.PulseView + + diff --git a/cross-compile/macosx/contrib/Info.plist_sigrok-cli b/cross-compile/macosx/contrib/Info.plist_sigrok-cli new file mode 100644 index 0000000..8babac2 --- /dev/null +++ b/cross-compile/macosx/contrib/Info.plist_sigrok-cli @@ -0,0 +1,20 @@ + + + + + NSPrincipalClass + NSApplication + CFBundleIconFile + sigrok-cli.icns + CFBundlePackageType + APPL + CFBundleGetInfoString + sigrok-cli is a command-line client for sigrok. + CFBundleSignature + ???? + CFBundleExecutable + sigrok-cli + CFBundleIdentifier + org.sigrok.sigrok-cli + + diff --git a/cross-compile/macosx/contrib/sigrok-cli b/cross-compile/macosx/contrib/sigrok-cli new file mode 100755 index 0000000..f3adbb0 --- /dev/null +++ b/cross-compile/macosx/contrib/sigrok-cli @@ -0,0 +1,26 @@ +#!/bin/sh +## +## This file is part of the sigrok-util project. +## +## Copyright (C) 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 +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, see . +## + +DIR="$(dirname "$0")" +cd "$DIR" +export PYTHONHOME="../Frameworks/Python.framework/Versions/3.7" +export SIGROK_FIRMWARE_DIR="../share/sigrok-firmware" +export SIGROKDECODE_DIR="../share/libsigrokdecode/decoders" +exec ./sigrok-cli.real "$@" diff --git a/cross-compile/macosx/create_dmg b/cross-compile/macosx/create_dmg index 93acf04..2821533 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,8 +23,16 @@ 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 @@ -50,8 +58,6 @@ rm -rf $BUILDDIR mkdir $BUILDDIR cd $BUILDDIR -APPNAME="PulseView" -APPNAME_BINARY="pulseview" APPVER="NIGHTLY" CONTENTSDIR="$APPNAME.app/Contents" @@ -68,17 +74,19 @@ 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* - -# Manually copy translations ("macdeployqt" won't copy them). -mkdir -p $CONTENTSDIR/translations -for lang in "de"; do - cp $QTTRANSLATIONSDIR/qt_$lang.qm $CONTENTSDIR/translations - cp $QTTRANSLATIONSDIR/qtbase_$lang.qm $CONTENTSDIR/translations -done +if [ "x$1" = "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 + for lang in "de"; do + cp $QTTRANSLATIONSDIR/qt_$lang.qm $CONTENTSDIR/translations + cp $QTTRANSLATIONSDIR/qtbase_$lang.qm $CONTENTSDIR/translations + done +fi $QTBINDIR/macdeployqt $APPNAME.app @@ -107,13 +115,13 @@ install_name_tool -change \ @executable_path/../Frameworks/Python.framework/Versions/$PYVER/Python \ $FRAMEWORKSDIR/libsigrokdecode.*.dylib -# Add PulseView wrapper (sets PYTHONHOME/SIGROK_FIRMWARE_DIR/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" \ -fs HFS+ -srcfolder "$APPNAME.app"