From 5872b25f6aefbcb9f68150f96f9aeae56e8e4337 Mon Sep 17 00:00:00 2001 From: Uwe Hermann Date: Sat, 30 May 2020 15:54:22 +0200 Subject: [PATCH] sigrok-native-macosx: Add sigrok-cli DMG creation support. --- cross-compile/macosx/README | 8 ++++ .../{Info.plist => Info.plist_pulseview} | 0 .../macosx/contrib/Info.plist_sigrok-cli | 20 ++++++++ cross-compile/macosx/contrib/sigrok-cli | 26 +++++++++++ cross-compile/macosx/create_dmg | 46 +++++++++++-------- 5 files changed, 81 insertions(+), 19 deletions(-) rename cross-compile/macosx/contrib/{Info.plist => Info.plist_pulseview} (100%) create mode 100644 cross-compile/macosx/contrib/Info.plist_sigrok-cli create mode 100755 cross-compile/macosx/contrib/sigrok-cli 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_pulseview similarity index 100% rename from cross-compile/macosx/contrib/Info.plist rename to cross-compile/macosx/contrib/Info.plist_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" -- 2.30.2