diff deploy/osx/copy-qt.sh @ 699:646e48a0d3a5

Some work on macOS packaging
author Chris Cannam
date Tue, 11 Dec 2018 16:40:57 +0000
parents
children 5afb26b7575a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy/osx/copy-qt.sh	Tue Dec 11 16:40:57 2018 +0000
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+set -eu
+
+app="$1"
+if [ -z "$app" ]; then
+	echo "Usage: $0 <appname>"
+	echo "Provide appname without the .app extension, please"
+	exit 2
+fi
+
+frameworks="QtCore QtNetwork QtGui QtWidgets QtPrintSupport QtDBus"
+
+plugins="gif icns ico jpeg tga tiff wbmp webp cocoa macstyle minimal offscreen"
+
+qtdir=$(grep "Command:" Makefile | head -1 | awk '{ print $3; }' | sed s,/bin/.*,,)
+
+if [ ! -d "$qtdir" ]; then
+    echo "Failed to discover Qt installation directory from Makefile, exiting"
+    exit 2
+fi
+
+fdir="$app.app/Contents/Frameworks"
+pdir="$app.app/Contents/plugins"
+
+mkdir -p "$fdir"
+mkdir -p "$pdir"
+
+echo
+echo "Copying frameworks..."
+for fwk in $frameworks; do
+    if [ ! -d "$qtdir/lib/$fwk.framework" ]; then
+	if [ "$fwk" = "QtDBus" ]; then
+	    echo "QtDBus.framework not found, assuming Qt was built without DBus support"
+	    continue
+	fi
+    fi
+    cp -v "$qtdir/lib/$fwk.framework/$fwk" "$fdir" || exit 2
+done
+
+echo "Done"
+
+echo
+echo "Copying plugins..."
+for plug in $plugins; do
+    pfile=$(ls "$qtdir"/plugins/*/libq"$plug".dylib)
+    if [ ! -f "$pfile" ]; then
+	echo "Failed to find plugin $plug, exiting"
+	exit 2
+    fi
+    target="$pdir"/${pfile##?*plugins/}
+    tdir=`dirname "$target"`
+    mkdir -p "$tdir"
+    cp -v "$pfile" "$target" || exit 2
+done
+
+echo "Done"
+
+