#!/bin/sh

if [ "$help" = "1" ]
then
	cat << EOF
QImage options:

  --qimage-libdir         - Location of QT lib directory [/usr/lib/qt4]
  --qimage-includedir     - Location of QT include directory [/usr/include/qt4]
  --kde-libdir            - Location of KDE lib directory [/usr/lib]
  --kde-includedir        - Location of KDE include directory [/usr/include/kde]
  --exif-libdir           - Location of libexif lib directory [/usr/lib]
  --exif-includedir       - Location of libexif include directory [/usr/include/libexif]
  --without-kde           - Don't link to KDE libraries

EOF

else
	targetos=$(uname -s)
	case $targetos in
	MINGW32*)
		export LIBSUF=.dll
		;;
	Darwin)
		export LIBSUF=.dylib
		;;
	Linux|FreeBSD|NetBSD)
		export LIBSUF=.so
		;;
	*)
		;;
	esac

	qimage_includedir=
	qimage_libdir=

	if [ "$QTDIR" != "" ]
	then
		qimage_includedir="$QTDIR/include"
		qimage_libdir="$QTDIR/lib"
	fi

	export without_kde=

	for i in "$@"
	do
		case $i in
			--qimage-libdir=* )	qimage_libdir="${i#--qimage-libdir=}" ;;
			--qimage-includedir=* )	qimage_includedir="${i#--qimage-includedir=}" ;;
			--kde-libdir=* )	kde_libdir="${i#--kde-libdir=}" ;;
			--kde-includedir=* )	kde_includedir="${i#--kde-includedir=}" ;;
			--exif-libdir=* )	exif_libdir="${i#--exif-libdir=}" ;;
			--exif-includedir=* )	exif_includedir="${i#--exif-includedir=}" ;;
			--without-kde )	without_kde="true" ;;
		esac
	done

	echo > config.h
	echo > config.mak

	pkg-config --exists 'libexif'
	if [ $? -eq 0 ]
	then
		echo "- Libexif found, enabling auto rotate"
		echo "#define USE_EXIF" >> config.h
		echo "USE_EXIF=1" >> config.mak
		echo EXIFCXXFLAGS=$(pkg-config --cflags libexif ) >> config.mak
		echo EXIFLIBS=$(pkg-config --libs libexif) >> config.mak
	elif [ -d "$exif_libdir" -a -d "$exif_includedir" ]
	then
		# test if we have a libexif
		if [ -f "$exif_libdir/exif-data.h" ]
		then
			echo "- Libexif found, enabling auto rotate"
			echo "#define USE_EXIF" >> config.h
			echo "USE_EXIF=1" >> config.mak
			echo EXIFCXXFLAGS=-I$exif_includedir >> config.mak
			echo EXIFLIBS=-L$exif_libdir lexif >> config.mak
		else
			echo "- Libexif not found, disabling exif features (auto rotate)"
		fi
	fi

	if [ -d "$qimage_libdir" -a -d "$qimage_includedir" ]
	then
		# test if we have a Qt5 or Qt4
		if [ -f "$qimage_libdir/libQt5Core.so" ] || [ -d "$qimage_libdir/QtWidgets.framework" ] || [ -f "$qimage_libdir/libQt5Core.a" ]
		then
			echo "- Qt version 5.x detected"
			# TODO re-enable KDE support when KDE Frameworks 5 widely available
			without_kde=true
		elif [ -f "$qimage_libdir/libQtCore.so" ] || [ -d "$qimage_libdir/QtCore.framework" ] || [ -f "$qimage_libdir/libQtCore4.a" ]
		then
			echo "- Qt version 4.x detected"
		else
			echo "- Qt not found: disabling"
			touch ../disable-qimage
			exit 0
		fi

		echo "- Include directory: " $qimage_includedir

		# Qt5 on Linux, BSD, or Windows
		if [ -f "$qimage_libdir/libQt5Core.so" ] || [ -f "$qimage_libdir/libQt5Core.a" ]
		then
			echo QTCXXFLAGS=-I$qimage_includedir -I$qimage_includedir/QtCore -I$qimage_includedir/QtGui -I$qimage_includedir/QtXml -I$qimage_includedir/QtSvg -I$qimage_includedir/QtOpenGL -I$qimage_includedir/QtWidgets >> config.mak
			echo QTLIBS=-Wl,-rpath-link,"$qimage_libdir" -L"$qimage_libdir" -lQt5Core -lQt5Gui -lQt5Xml -lQt5Svg -lQt5OpenGL -lQt5Widgets >> config.mak
		# Qt5 on OS X
		elif [ -d "$qimage_libdir/QtWidgets.framework" ]
		then
				echo QTCXXFLAGS=-I$qimage_includedir -I$qimage_includedir/QtCore -I$qimage_includedir/QtGui -I$qimage_includedir/QtXml -I$qimage_includedir/QtSvg -I$qimage_includedir/QtOpenGL -I$qimage_includedir/QtWidgets >> config.mak
				echo QTLIBS=-F"$qimage_libdir" -framework QtCore -framework QtGui -framework QtXml -framework QtSvg -framework QtOpenGL -framework QtWidgets >> config.mak
		# Qt4 on OS X
		elif [ -d "$qimage_libdir/QtGui.framework" ]
		then
			echo QTCXXFLAGS=$(pkg-config --cflags QtCore QtGui QtXml QtSvg QtOpenGL) >> config.mak
			echo QTLIBS=$(pkg-config --libs QtCore QtGui QtXml QtSvg QtOpenGL) >> config.mak
		# Qt4 on Windows
		elif [ -f "$qimage_libdir/libQtCore4.a" ]
		then
			echo QTCXXFLAGS=-I$qimage_includedir -I$qimage_includedir/QtCore -I$qimage_includedir/QtGui -I$qimage_includedir/QtXml -I$qimage_includedir/QtSvg -I$qimage_includedir/QtOpenGL >> config.mak
			echo QTLIBS=-Wl,-enable-auto-import -L$qimage_libdir -lQtCore4 -lQtGui4 -lQtXml4 -lQtSvg4 -lQtOpenGL4 >> config.mak
		# Qt4 on Linux or BSD
		else
			echo QTCXXFLAGS=-I$qimage_includedir  -I$qimage_includedir/QtCore -I$qimage_includedir/QtGui -I$qimage_includedir/QtXml -I$qimage_includedir/QtSvg -I$qimage_includedir/QtOpenGL >> config.mak
			echo QTLIBS=-L$qimage_libdir -lQtCore -lQtGui -lQtXml -lQtSvg -lQtOpenGL >> config.mak
		fi
	else
		pkg-config --exists 'QtGui >= 4'
		if [ $? -eq 0 ]
		then
			echo "- Qt version 4.x detected"
			echo QTCXXFLAGS=$(pkg-config --cflags QtCore QtGui QtXml QtSvg QtOpenGL) >> config.mak
			echo QTLIBS=$(pkg-config --libs QtCore QtGui QtXml QtSvg QtOpenGL) >> config.mak
		else
			pkg-config --exists 'Qt5Gui'
			if [ $? -eq 0 ]
			then
				echo "- Qt version 5.x detected"
				echo QTCXXFLAGS=$(pkg-config --cflags Qt5Core Qt5Gui Qt5Xml Qt5Svg Qt5OpenGL Qt5Widgets) >> config.mak
				echo QTLIBS=$(pkg-config --libs Qt5Core Qt5Gui Qt5Xml Qt5Svg Qt5OpenGL Qt5Widgets) >> config.mak
			else
				echo "- Qt not found - disabling"
				touch ../disable-qimage
			fi
		fi
	fi

	if [ "$without_kde" = "" ]
	then
		kde4-config
		if [ $? -eq 0 ] && [ "$qt4_found" != "" ]
		then
			# test if we have KDE4, required on some systems to get QImage extra formats (xcf, ...)
			if [ "$kde_includedir" = "" ]
			then
				  kde_includedir=`kde4-config --install include`
			fi
			if [ "$kde_libdir" = "" ]
			then
				  kde_libdir=`kde4-config --install lib`
			fi
			if [ -d "$kde_includedir" ] && [ -d "$kde_libdir" ]
			then
				echo "- KDE version 4.x detected, will enable extra image formats"
				echo "#define USE_KDE4" >> config.h
				echo "USE_KDE4=1" >> config.mak
				echo KDECXXFLAGS=-I$kde_includedir >> config.mak
				# the -L with kde4/devel is for Fedora
				echo KDELIBS=-L$kde_libdir -L${kde_libdir}/kde4/devel -lkdecore >> config.mak
			fi
		fi
	fi

	[ "$gpl3" = "true" ] && echo GPL3=1 >> config.mak
	exit 0
fi
