#!/bin/bash
SLBINARY=squeezelite

BUILDOPTS="-DPORTAUDIO -DFFMPEG -DOPUS -DRESAMPLE -DGPIO -DLINKALL -DVISEXPORT -DDSD -DUSE_SSL"
make "OPTS=$BUILDOPTS" clean
make -f Makefile "OPTS=$BUILDOPTS -I./include64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -arch x86_64 -mmacosx-version-min=10.7" "LDADD=-Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -arch x86_64 -mmacosx-version-min=10.7 -L./lib64 -lportaudio -lFLAC -lvorbisfile -lvorbis -logg -lmad -lfaad -lmpg123 -lsoxr -lopus -lopusfile -lavformat -lavcodec -lavutil -lssl -lcrypto -lpthread -ldl -lm -framework CoreVideo -framework VideoDecodeAcceleration -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework Carbon"
if [ ! -f $SLBINARY ]; then
	echo "Build Failed."
	exit 1
fi
strip $SLBINARY

BUNDLE_NAME=Squeezelite.app
APP_NAME=Squeezelite
BUNDLE_CONTENTS=$BUNDLE_NAME/Contents
PLIST_FILE=$BUNDLE_CONTENTS/Info.plist
VERSION_TEXT=`./$SLBINARY -? | grep ^Squeezelite\ v | awk -F'[v,]' '{printf "%s", $2}' | sed -e 's/-/r/g'`
ICNS_NAME=icon.icns
DMG_TEMP_DIR=temp-Squeezelite_image
DMG_IMAGE_DIR=Squeezelite_image
DMG_IMAGE_DIR_MOUNTPOINT=$DMG_IMAGE_DIR-$VERSION_TEXT
DMG_TMP_IMAGE_FILENAME=$DMG_TEMP_DIR.dmg
DMG_IMAGE_FILENAME=Squeezelite-x86_64-$VERSION_TEXT.dmg
SQUEEZELITE_STATIC_PROGRAM=Squeezelite

# Make app

if [ -f $DMG_IMAGE_FILENAME ]; then
	rm $DMG_IMAGE_FILENAME
fi

if [ -d $BUNDLE_NAME ]; then
	rm -rf $BUNDLE_NAME
fi

mkdir -p ${BUNDLE_CONTENTS}/MacOS
mv $SLBINARY ${BUNDLE_CONTENTS}/MacOS/${SQUEEZELITE_STATIC_PROGRAM}
cp -p scripts/squeezelite.plist ${BUNDLE_CONTENTS}/MacOS/
mkdir -p ${BUNDLE_CONTENTS}/Resources
echo "APPLSQLT" > ${BUNDLE_CONTENTS}/PkgInfo
cp rsc/${ICNS_NAME} ${BUNDLE_CONTENTS}/Resources
cp -p LICENSE.txt ${BUNDLE_CONTENTS}/Resources
cp -p LIBS.txt ${BUNDLE_CONTENTS}/Resources
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > ${PLIST_FILE}
echo "<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">" >> ${PLIST_FILE}
echo "<plist version=\"1.0\">" >> ${PLIST_FILE}
echo "<dict>" >> ${PLIST_FILE}
echo "  <key>CFBundleDevelopmentRegion</key>" >> ${PLIST_FILE}
echo "  <string>English</string>" >> ${PLIST_FILE}
echo "  <key>CFBundleExecutable</key>" >> ${PLIST_FILE}
echo "  <string>${SQUEEZELITE_STATIC_PROGRAM}</string>" >> ${PLIST_FILE}
echo "  <key>CFBundleDisplayName</key>" >> ${PLIST_FILE}
echo "  <string>${APP_NAME}</string>" >> ${PLIST_FILE}
echo "  <key>CFBundleIdentifier</key>" >> ${PLIST_FILE}
echo "  <string>com.ralphy.squeezelite</string>" >> ${PLIST_FILE}
echo "  <key>CFBundleIconFile</key>" >> ${PLIST_FILE}
echo "  <string>${ICNS_NAME}</string>" >> ${PLIST_FILE}
echo "  <key>CFBundleInfoDictionaryVersion</key>" >> ${PLIST_FILE}
echo "  <string>6.0</string>" >> ${PLIST_FILE}
echo "  <key>CFBundlePackageType</key>" >> ${PLIST_FILE}
echo "  <string>APPL</string>" >> ${PLIST_FILE}
echo "  <key>CFBundleSignature</key>" >> ${PLIST_FILE}
echo "  <string>SQLT</string>" >> ${PLIST_FILE}
echo "  <key>CFBundleShortVersionString</key>" >> ${PLIST_FILE}
echo "  <string>${VERSION_TEXT}</string>" >> ${PLIST_FILE}
echo "  <key>CFBundleVersion</key>" >> ${PLIST_FILE}
echo "  <string>${VERSION_TEXT}</string>" >> ${PLIST_FILE}
echo "  <key>CFBundleGetInfoString</key>" >> ${PLIST_FILE}
echo "  <string>${APP_NAME} ${VERSION_TEXT}, Copyright `date '+%Y'` Ralph Irving</string>" >> ${PLIST_FILE}
echo "</dict>" >> ${PLIST_FILE}
echo "</plist>" >> ${PLIST_FILE}

# Make dmg

mkdir -p ${DMG_TEMP_DIR}
hdiutil detach "/Volumes/${DMG_IMAGE_DIR_MOUNTPOINT}"
umount -f /Volumes/${DMG_IMAGE_DIR}*
hdiutil create -fs HFS+ -layout SPUD -volname "${DMG_IMAGE_DIR_MOUNTPOINT}" -size 10m "${DMG_TEMP_DIR}"
hdiutil mount "${DMG_TMP_IMAGE_FILENAME}"
/Developer/Tools/CpMac -r ${BUNDLE_NAME} /Volumes/${DMG_IMAGE_DIR_MOUNTPOINT}
hdiutil detach "/Volumes/${DMG_IMAGE_DIR_MOUNTPOINT}"
hdiutil convert -ov -format UDZO "${DMG_TMP_IMAGE_FILENAME}" -o "${DMG_IMAGE_FILENAME}"
rm -rf ${DMG_IMAGE_DIR}
rm -rf ${DMG_TEMP_DIR}
rm ${DMG_TMP_IMAGE_FILENAME}
