#!/bin/bash
#
# Link application bundle to QT as framework
#
# written by Uwe Drechsel (c) 2006
#
# License GPL 2
#

APPNAME=vym
BUNDLE=$APPNAME.app
FWORKS=$BUNDLE/Contents/Frameworks
QTDIR=/usr/local/Trolltech/Qt-4.2.0
QTLIB=$QTDIR/lib

declare -a FWLIST

function cleanup
{
	echo ***Cleaning up...
	rm -rf $BUNDLE
	make clean
}

function compile
{
	echo ***Compiling...
	qmake -config release
	make
}

function fixLinking 
{
	echo  ***Setting identification names...
	for i in ${FWLIST[@]}
	do
		COM="install_name_tool -id @executable_path/../Frameworks/$i.framework/Versions/4/$i $BUNDLE/Contents/Frameworks/$i.framework/Versions/4/$i"
	done	
		echo "   $COM"
		`$COM`

	echo ***Tell dynamic linker where to look for frameworks... 
	for i in ${FWLIST[@]}
	do
		COM="install_name_tool -change $QTLIB/$i.framework/Versions/4/$i @executable_path/../Frameworks/$i.framework/Versions/4/$i $BUNDLE/Contents/MacOs/$APPNAME"
		echo "   $COM"
		`$COM`
	done	


	for fw in ${FWLIST[@]}
	do
	echo ***Adjust dynamic linking in $fw
		for i in ` otool -L vym.app/Contents/Frameworks/$fw.framework/$fw | grep Trolltech | sed "s/^.*\///" | sed "s/ .*$//"` 
		do
			COM="install_name_tool -change $QTLIB/$i.framework/Versions/4/$i @executable_path/../Frameworks/$i.framework/Versions/4/$i $FWORKS/$fw.framework/$fw"
			echo "   $COM"
			`$COM`
		done	
	done

}

function copyFrameworks
{
	# Copy found frameworks into bundle, preserve symbolic links with -R
	mkdir -p  $FWORKS
	for i in ${FWLIST[@]}
	do
		echo ***Copying $QTLIB/$i.framework
		#cp -R $QTLIB/$i.framework $FWORKS
		rsync -avz $QTLIB/$i.framework $FWORKS --exclude 'Qt*_debug'
	done	
}

function copyRessources
{
	echo ***Copying ressources
	mkdir -p $BUNDLE/Contents/Resources
	cp -r icons flags scripts styles vym.app/Contents/Resources/
	cp icons/vym.icns $BUNDLE/Contents/Resources
}

function findFrameworks
{
	FWLIST=`otool -L $BUNDLE/Contents/MacOS/$APPNAME  | grep Trolltech | sed "s/^.*\///" | sed "s/ .*$//"`
	#FWLIST=( Qt3Support QtSql QtNetwork QtXml QtGui QtCore )

	echo ***The following Qt frameworks are needed:
	for i in ${FWLIST[@]}
	do
		echo $i
	done	
}	


#cleanup
#compile


#findFrameworks
#copyFrameworks
#fixLinking
copyRessources

