#!/bin/bash

pushd $(dirname $0)/../..
ROOT_DIR=$(pwd)
popd
onexit() {
	SCRIPT_EXIT_CODE=$?
	echo "Cleaning up..."
	cd $ROOT_DIR
	rm -rf Unity
	if [ $SCRIPT_EXIT_CODE -ne 0 ]; then
		rm -rf AppPackages
		echo "$0 failed"
	else
		echo "$0 succeeded"
	fi
	echo "Done."
}
trap onexit EXIT

# Ensure the temporary links are in place.
/bin/bash /Applications/Unity/MonoDevelop.app/Contents/Frameworks/Mono.framework/Versions/Current/relocate_mono.sh

# Create the CAPE SDK files.
lib/create-sdk-projects

# Build debug and release configurations.
cd $ROOT_DIR
./MakeVersion "C#" version.txt lib/UnityiOS/Properties/AssemblyVersion.cs || exit 1
rm -rf Unity
rm -rf AppPackages
mkdir AppPackages
for Configuration in Debug Release; do
	mkdir -p Unity/iOS/$Configuration

	# Build the Unity mono solution.
	/Applications/Unity/MonoDevelop.app/Contents/Frameworks/Mono.framework/Versions/Current/bin/xbuild /property:Configuration=$Configuration mono.sln || exit 1

	# Build the CAPE SDK xcode project.
	pushd lib/external
	xcodebuild -configuration $Configuration build || exit 1
	popd

	# Build the Unity iOS xcode project.
	pushd lib/UnityiOS
	xcodebuild -target UnityiOS -configuration $Configuration build || exit 1
	popd

	# Copy the project outputs to the Unity artifacts directory.
	cp \
		external/UnityApp1/Assets/Plugins/iOS/libUnityiOS.a \
		lib/UnityiOS/bin/$Configuration/Unity.dll* \
		Unity/iOS/$Configuration || exit 1

	# Zip the Unity artifacts.
	zip AppPackages/sdk.zip Unity/iOS/$Configuration/* || exit 1
done
