-
Notifications
You must be signed in to change notification settings - Fork 3
/
build-mac.command
executable file
·146 lines (126 loc) · 4.25 KB
/
build-mac.command
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#!/bin/sh
cd -- "$(dirname "$0")"
# Script Settings
version=1.02.00.01
appname=Gilthoniel
dmgfolder=gilthoniel-dmg
appfolder=$appname.app
macosfolder=$appfolder/Contents/MacOS
plistfile=$appfolder/Contents/Info.plist
appfile=Gilthoniel
clear
echo "================================================================"
echo " App Bundle/DMG Creation script - to build version $version"
echo "================================================================"
echo "v.$version"
echo ""
echo " Please select which kind of bundle you would like to build:"
echo ""
echo " 1 > Debug App Bundle Only"
echo " 2 > Release App Bundle Only"
echo " 3 > Release App & DMG Redistributable"
echo " 0 > Exit / Cancel Builder"
read command
case $command in
1) ;;
2) ;;
3) ;;
0) echo ""
echo "-------------------------------"
echo "Press cmd-W to close Terminal"
echo "-------------------------------"
echo ""
exit 0;;
*) echo "Invalid Menu Option"
echo ""
echo "-------------------------------"
echo "Press cmd-W to close Terminal"
echo "-------------------------------"
echo ""
exit 0;;
esac
# ------------------
# Creates the bundle
# ------------------
PkgInfoContents="Gilthoniel#"
rm -dfr $appfolder
#
if ! [ -e $appfile ]
then
echo "$appfile does not exist"
echo ""
echo "-------------------------------"
echo "Press cmd-W to close Terminal"
echo "-------------------------------"
echo ""
else
echo "Creating $appfolder..."
mkdir -p $appfolder/Contents/MacOS
mkdir $appfolder/Contents/Frameworks # optional, for including libraries or frameworks
mkdir -p $appfolder/Contents/Resources/help/img
#
# For a debug bundle,
# Instead of copying executable into .app folder after each compile,
# simply create a symbolic link to executable.
#
if [ $command = 1 ]; then
ln -s ../../../$appname $macosfolder/$appname
else
cp $appname $macosfolder/$appname
fi
# Copy the resource files to the correct place
cp *.bmp $appfolder/Contents/Resources/
cp icon3.ico $appfolder/Contents/Resources/
cp icon3.png $appfolder/Contents/Resources/
cp gilthoniel.icns $appfolder/Contents/Resources/
cp ./docs/*.* $appfolder/Contents/Resources/
cp ./help/*.* $appfolder/Contents/Resources/help/
cp ./help/img/*.* $appfolder/Contents/Resources/help/img/
chmod +x firmware/tycmd
cp ./firmware/tycmd $appfolder/Contents/Resources/
cp ./firmware/*.hex $appfolder/Contents/Resources/
#
# Create PkgInfo file.
echo $PkgInfoContents >$appfolder/Contents/PkgInfo
#
# Create information property list file (Info.plist).
echo '<?xml version="1.0" encoding="UTF-8"?>' >$plistfile
echo '<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">' >>$plistfile
echo '<plist version="1.0">' >>$plistfile
echo '<dict>' >>$plistfile
echo ' <key>CFBundleDevelopmentRegion</key>' >>$plistfile
echo ' <string>English</string>' >>$plistfile
echo ' <key>CFBundleExecutable</key>' >>$plistfile
echo ' <string>'$appname'</string>' >>$plistfile
echo ' <key>CFBundleIconFile</key>' >>$plistfile
echo ' <string>gilthoniel.icns</string>' >>$plistfile
echo ' <key>CFBundleIdentifier</key>' >>$plistfile
echo ' <string>uk.amazer.gilthoniel</string>' >>$plistfile
echo ' <key>CFBundleInfoDictionaryVersion</key>' >>$plistfile
echo ' <string>6.0</string>' >>$plistfile
echo ' <key>CFBundlePackageType</key>' >>$plistfile
echo ' <string>APPL</string>' >>$plistfile
echo ' <key>CFBundleSignature</key>' >>$plistfile
echo ' <string>MAG#</string>' >>$plistfile
echo ' <key>CFBundleVersion</key>' >>$plistfile
echo ' <string>'$version'</string>' >>$plistfile
echo '</dict>' >>$plistfile
echo '</plist>' >>$plistfile
# Put it all into a DMG for re-distribution
if [ $command = 3 ]; then
rm -dfr $dmgfolder
rm -f *.dmg
mkdir -p $dmgfolder
ln -s /Applications $dmgfolder/
cp -R $appfolder $dmgfolder
hdiutil create tmp.dmg -ov -volname "Gilthoniel_Install" -fs HFS+ -srcfolder "./$dmgfolder/"
hdiutil convert tmp.dmg -format UDZO -o gilthoniel-macos-$version.dmg
rm -f tmp.dmg
fi
fi
echo ""
echo "-------------------------------"
echo "Press cmd-W to close Terminal"
echo "-------------------------------"
echo ""
exit 0