# -*- coding: utf-8; mode: tcl; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4; truncate-lines: t -*- vim:fenc=utf-8:et:sw=4:ts=4:sts=4
# $Id: Portfile 68449 2010-06-03 20:05:10Z macsforever2000@macports.org $

PortSystem	1.0

name		py26-pyqt4
version		4.7.3
categories	python devel
platforms	macosx
maintainers     saispo openmaintainer
description	PyQt4 is a set of Python bindings for the Qt4 toolkit
long_description \
		PyQt4 is a set of Python bindings for the Qt4 toolkit. The \
		bindings are implemented as a set of Python modules: qt, \
		qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml, \
		and contains 300 classes and over 5,750 functions and methods.
homepage	http://www.riverbankcomputing.co.uk/software/pyqt/intro
master_sites	http://www.riverbankcomputing.com/static/Downloads/PyQt4/ \
		http://pyqwt.sourceforge.net/support/
distname	PyQt-mac-gpl-${version}
dist_subdir         python

checksums           md5     55ecd293b4a0e337b9c7e10479c53d96 \
                    sha1    704403842dc609db614469308896454ebe7b5a50 \
                    rmd160  76e0f7f7ffbaa9238a8001ae0cc384bb23558f08

depends_lib	port:py26-sip path:bin/qmake-mac:qt4-mac

set pyversion 2.6
set qt_dir	${prefix}/libexec/qt4-mac

# The patch file alters configure.py so that the qtdesigner plugin can link.
# - it ensures that both LFLAGS are included and that the relevant version framework is linked
patchfiles	patch-configure.py
post-patch {
    reinplace "s|@@MACPORTS_PYTHON_FRAMEWORK@@|${frameworks_dir}/Python.framework/Versions/${pyversion}/Python|" ${worksrcpath}/configure.py
}

pre-configure {
	file copy -force ${qt_dir}/mkspecs/macx-g++/qmake.conf \
		${worksrcpath}/qmake.conf

	reinplace "s|-bundle|-bundle -flat_namespace -undefined suppress|" \
		${worksrcpath}/qmake.conf
}

configure.cmd	"${prefix}/bin/python2.6 configure.py \
		-q ${qt_dir}/bin/qmake \
		--confirm-license"
configure.pre_args
configure.post_args	LFLAGS="-F${frameworks_dir} -L${prefix}/lib"

variant universal {
	configure.universal_args
	configure.post_args	LFLAGS="-F${frameworks_dir} -L${prefix}/lib \
								${configure.universal_ldflags}"
	configure.post_args-append	CFLAGS="${configure.universal_cflags}"
	configure.post_args-append	CXXFLAGS="${configure.universal_cxxflags}"

}

post-configure {
	if {[variant_isset universal]} {
		set conflags ""
		foreach arch ${configure.universal_archs} {
			if {${arch} == "i386"} {append conflags "x86 "} else {
				if {${arch} == "ppc64"} {append conflags "ppc_64 "} else {
					append conflags ${arch} " "
				}
			}
		}

		set profiles [exec find ${worksrcpath} -name "*.pro"]
		foreach profile ${profiles} {
			reinplace -E "s|^(CONFIG\[ \\t].*)|\\1 ${conflags}|" ${profile}
		
		# Cures an isolated case
		system "cd ${worksrcpath}/designer && \
			${qt_dir}/bin/qmake -spec ${qt_dir}/mkspecs/macx-g++ -macx \
				-o Makefile python.pro"
		}
	}
}


build.target    all
use_parallel_build yes

test.run	yes
test.cmd	cd qt && ${prefix}/bin/python${pyversion} -c 'import PyQt4'

post-destroot {
    ln -s ${frameworks_dir}/Python.framework/Versions/${pyversion}/bin/pyrcc4 ${destroot}${prefix}/bin/pyrcc4-${pyversion}
    ln -s ${frameworks_dir}/Python.framework/Versions/${pyversion}/bin/pyuic4 ${destroot}${prefix}/bin/pyuic4-${pyversion}

	xinstall -m 755 -d ${destroot}${prefix}/share/doc
	file copy ${worksrcpath}/doc ${destroot}${prefix}/share/doc/${name}
	file copy ${worksrcpath}/examples \
		${destroot}${prefix}/share/doc/${name}
	xinstall -m 644 -W ${worksrcpath} \
		GPL_EXCEPTION.TXT GPL_EXCEPTION_ADDENDUM.TXT \
		LICENSE-MERGED-GPL2-GPL3 LICENSE.GPL2 LICENSE.GPL3 OPENSOURCE-NOTICE.TXT NEWS README \
		THANKS \
		${destroot}${prefix}/share/doc/${name}
}

livecheck.type   regex
livecheck.url    http://www.riverbankcomputing.co.uk/software/pyqt/download
livecheck.regex  "PyQt-mac-gpl-(\[0-9.\]\\.\[0-9.\]\\.\[0-9.\]).tar.gz"
