forked from mcallegari/qlcplus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreate-dmg-cmake.sh
executable file
·90 lines (72 loc) · 2.52 KB
/
create-dmg-cmake.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/bin/bash
#VERSION=$(head -1 debian/changelog | sed 's/.*(\(.*\)).*/\1/')
VERSION=$(grep -m 1 APPVERSION variables.pri | cut -d '=' -f 2 | sed -e 's/^[[:space:]]*//' | tr ' ' _ | tr -d '\r\n')
rm -rf build
mkdir build
cd build
if [ ! -n "$SIGNATURE" ]; then
echo "This build WILL NOT be signed. Please export SIGNATURE to sign it."
fi
# Build
if [ -n "$QTDIR" ]; then
cmake -DCMAKE_PREFIX_PATH="$QTDIR/lib/cmake" ..
else
echo "QTDIR not set. Aborting."
exit 1
fi
NUM_CPUS=`sysctl -n hw.ncpu` || true
if [ -z "$NUM_CPUS" ]; then
NUM_CPUS=4
fi
make -j$NUM_CPUS
if [ ! $? -eq 0 ]; then
echo Compiler error. Aborting package creation.
exit $?
fi
# Install to ~/QLC+.app/
make install/fast
if [ ! $? -eq 0 ]; then
echo Installation error. Aborting package creation.
exit $?
fi
cd ..
echo "Fix non-Qt dependencies..."
platforms/macos/fix_dylib_deps.sh ~/QLC+.app/Contents/Frameworks/libsndfile.1.dylib
platforms/macos/fix_dylib_deps.sh ~/QLC+.app/Contents/MacOS/qlcplus
platforms/macos/fix_dylib_deps.sh ~/QLC+.app/Contents/MacOS/qlcplus-fixtureeditor
echo "Run macdeployqt..."
$QTDIR/bin/macdeployqt ~/QLC+.app
if [ -n "$SIGNATURE" ]; then
# sign package with codesign (macdeployqt fails in that too)
echo "Signing binaries..."
ENTITLEMENTS="platforms/macos/qlcplus.entitlements"
find ~/QLC+.app/Contents/Frameworks -type f | while read file; do
codesign --force --sign "$SIGNATURE" --timestamp "$file"
done
find ~/QLC+.app/Contents/PlugIns -type f -name "*.dylib" | while read file; do
codesign --force --sign "$SIGNATURE" --timestamp "$file"
done
find ~/QLC+.app/Contents/MacOS -type f | while read file; do
codesign --force --sign "$SIGNATURE" --timestamp --entitlements $ENTITLEMENTS --options runtime "$file"
done
codesign --sign "$SIGNATURE" --timestamp --deep --options runtime ~/QLC+.app
# workaround first time sign failure
codesign --force --sign "$SIGNATURE" --timestamp --options runtime ~/QLC+.app/Contents/MacOS/qlcplus-launcher
fi
# Create Apple Disk iMaGe from ~/QLC+.app/
OUTDIR=$PWD
cd platforms/macos/dmg
./create-dmg --volname "Q Light Controller Plus $VERSION" \
--volicon $OUTDIR/resources/icons/qlcplus.icns \
--background background.png \
--window-size 400 300 \
--window-pos 200 100 \
--icon-size 64 \
--icon "QLC+" 0 150 \
--app-drop-link 200 150 \
$OUTDIR/QLC+_$VERSION.dmg \
~/QLC+.app
cd -
if [ -n "$SIGNATURE" ]; then
codesign --sign "$SIGNATURE" --timestamp $OUTDIR/QLC+_$VERSION.dmg
fi