# Template file for 'python-matplotlib'
pkgname=python-matplotlib
version=1.4.3
revision=1
wrksrc="matplotlib-${version}"
build_style=python-module
python_versions="2.7 3.4"
hostmakedepends="pkg-config python-setuptools python3.4-setuptools"
# XXX: use internal copy of agg and pycxx, highly patched
makedepends="
 python-devel python3.4-devel python-numpy-devel python3.4-numpy-devel
 python-six python3.4-six python-dateutil python3.4-dateutil python-pytz
 python3.4-pytz python-tornado python3.4-tornado python-parsing
 python3.4-parsing python-PyQt4-devel python-PyQt5-devel python-cairocffi
 python3.4-cairocffi python-gobject-devel pygtk-devel gtk+3-devel tk-devel
 python-tkinter python3.4-tkinter wxPython-devel freetype-devel libpng-devel
 libqhull-devel"
depends="python-matplotlib-data>=${version}_${revision} python-numpy python-six
 python-dateutil python-parsing python-pytz"
pycompile_module="matplotlib mpl_toolkits pylab.py"
short_desc="Python2 2D/3D plotting library"
_short_desc="${short_desc/Python2/Python3.4}"
maintainer="Alessio Sergi <al3hex@gmail.com>"
homepage="http://matplotlib.org/"
license="matplotlib, BSD, MIT"
distfiles="${PYPI_SITE}/m/matplotlib/matplotlib-${version}.tar.gz"
checksum=61f201c6a82e89e4d9e324266203fad44f95fd8f36d8eec0d8690273e1182f75
nocross=yes

export XDG_RUNTIME_DIR=/tmp
_pysitedir="usr/lib/python2.7/site-packages"
_py34sitedir="usr/lib/python3.4/site-packages"

pre_build() {
	# set Agg as default backend
	cat > setup.cfg <<-EOF
		[rc_options]
		backend = Agg
	EOF
	# remove shebangs
	find . -type f -name '*.py' -exec sed -i "s,^#!.*python$,," {} +
	# adjust path
	sed -i 's,\(site-packages/matplotlib/mpl-data\),/etc,' matplotlibrc.template
}
post_install() {
	# remove gtk and wx backends, not compatible with python3
	rm -f ${DESTDIR}/${_py34sitedir}/matplotlib/backends/backend_{gdk,gtk,gtkagg,gtkcairo,wx,wxagg}.py
	# do not install baseline_images, needed for tests only, but huge
	rm -rf ${DESTDIR}/usr/lib/python*/site-packages/{matplotlib,mpl_toolkits}/tests/baseline_images
	# remove data files
	rm -rf ${DESTDIR}/usr/lib/python*/site-packages/matplotlib/{mpl-data,backends/Matplotlib.nib}
}

python-matplotlib-data_package() {
	noarch=yes
	conf_files="/etc/matplotlibrc"
	short_desc+=" - data files"
	pkg_install() {
		vmkdir usr/share/matplotlib
		vcopy ${wrksrc}/lib/matplotlib/mpl-data usr/share/matplotlib
		vcopy ${wrksrc}/lib/matplotlib/backends/Matplotlib.nib usr/share/matplotlib
		vsconf ${wrksrc}/matplotlibrc.template
		vconf ${PKGDESTDIR}/usr/share/matplotlib/mpl-data/matplotlibrc
		rm -f ${PKGDESTDIR}/usr/share/matplotlib/mpl-data/matplotlibrc
	}
}
python-matplotlib-cairo_package() {
	depends="${sourcepkg}>=${version}_${revision} python-cairocffi"
	short_desc+=" - cairo backend"
	pycompile_module="matplotlib"
	pkg_install() {
		vmove ${_pysitedir}/matplotlib/backends/backend_cairo.py
	}
}
python-matplotlib-gtk_package() {
	depends="${sourcepkg}-cairo>=${version}_${revision} pygtk"
	short_desc+=" - GTK+ backend"
	pycompile_module="matplotlib"
	pkg_install() {
		vmove ${_pysitedir}/matplotlib/backends/_backend_gdk.so
		vmove ${_pysitedir}/matplotlib/backends/_gtkagg.so
		vmove ${_pysitedir}/matplotlib/backends/backend_gdk.py
		vmove ${_pysitedir}/matplotlib/backends/backend_gtk.py
		vmove ${_pysitedir}/matplotlib/backends/backend_gtkagg.py
		vmove ${_pysitedir}/matplotlib/backends/backend_gtkcairo.py
	}
}
python-matplotlib-gtk3_package() {
	depends="${sourcepkg}-cairo>=${version}_${revision}
	 gtk+3 gir-freedesktop python-gobject"
	short_desc+=" - GTK+3 backend"
	pycompile_module="matplotlib"
	pkg_install() {
		vmove ${_pysitedir}/matplotlib/backends/backend_gtk3.py
		vmove ${_pysitedir}/matplotlib/backends/backend_gtk3agg.py
		vmove ${_pysitedir}/matplotlib/backends/backend_gtk3cairo.py
	}
}
# XXX: the Qt4 backend makes use of the Qt5 backend, which is actually a
# generic Qt backend. So we need to package all the Qt5 stuff in this generic
# package and provide a stub package which pulls in the python-PyQt5 dependency.
python-matplotlib-qtshared_package() {
	depends="${sourcepkg}>=${version}_${revision}"
	short_desc+=" - shared files for the Qt backends"
	pycompile_module="matplotlib"
	pkg_install() {
		vmove ${_pysitedir}/matplotlib/backends/backend_qt5.py
		vmove ${_pysitedir}/matplotlib/backends/backend_qt5agg.py
		vmove ${_pysitedir}/matplotlib/backends/qt_compat.py
		vmove ${_pysitedir}/matplotlib/backends/qt4_compat.py
		vmove ${_pysitedir}/matplotlib/backends/qt_editor
	}
}
python-matplotlib-qt4_package() {
	depends="${sourcepkg}-qtshared>=${version}_${revision} python-PyQt4"
	short_desc+=" - Qt4 backend"
	pycompile_module="matplotlib"
	pkg_install() {
		vmove ${_pysitedir}/matplotlib/backends/backend_qt4.py
		vmove ${_pysitedir}/matplotlib/backends/backend_qt4agg.py
	}
}
python-matplotlib-qt5_package() {
	depends="${sourcepkg}-qtshared>=${version}_${revision} python-PyQt5"
	short_desc+=" - Qt5 backend"
	pkg_install() {
		:
	}
}
python-matplotlib-tk_package() {
	depends="${sourcepkg}>=${version}_${revision} python-tkinter"
	short_desc+=" - Tk backend"
	pycompile_module="matplotlib"
	pkg_install() {
		vmove ${_pysitedir}/matplotlib/backends/_tkagg.so
		vmove ${_pysitedir}/matplotlib/backends/backend_tkagg.py
		vmove ${_pysitedir}/matplotlib/backends/tkagg.py
	}
}
python-matplotlib-web_package() {
	depends="${sourcepkg}>=${version}_${revision} python-tornado"
	short_desc+=" - web backend"
	pkg_install() {
		vmove ${_pysitedir}/matplotlib/backends/backend_webagg.py
		vmove ${_pysitedir}/matplotlib/backends/backend_webagg_core.py
		vmove ${_pysitedir}/matplotlib/backends/web_backend
	}
}
python-matplotlib-wx_package() {
	depends="${sourcepkg}>=${version}_${revision} wxPython"
	short_desc+=" - wx backend"
	pkg_install() {
		vmove ${_pysitedir}/matplotlib/backends/backend_wx.py
		vmove ${_pysitedir}/matplotlib/backends/backend_wxagg.py
	}
}
python3.4-matplotlib_package() {
	depends="python-matplotlib-data>=${version}_${revision} python3.4-numpy
	 python3.4-six python3.4-dateutil python3.4-parsing python3.4-pytz"
	short_desc="${_short_desc}"
	pycompile_version="3.4"
	pycompile_module="matplotlib mpl_toolkits pylab.py"
	pkg_install() {
		vmove usr/lib/python3.4
	}
}
python3.4-matplotlib-cairo_package() {
	depends="python3.4-matplotlib>=${version}_${revision} python3.4-cairocffi"
	short_desc="${_short_desc} - cairo backend"
	pycompile_version="3.4"
	pycompile_module="matplotlib"
	pkg_install() {
		vmove ${_py34sitedir}/matplotlib/backends/backend_cairo.py
	}
}
python3.4-matplotlib-gtk3_package() {
	depends="python3.4-matplotlib-cairo>=${version}_${revision}
	 gtk+3 gir-freedesktop python3.4-gobject"
	short_desc="${_short_desc} - GTK+3 backend"
	pycompile_version="3.4"
	pycompile_module="matplotlib"
	pkg_install() {
		vmove ${_py34sitedir}/matplotlib/backends/backend_gtk3.py
		vmove ${_py34sitedir}/matplotlib/backends/backend_gtk3agg.py
		vmove ${_py34sitedir}/matplotlib/backends/backend_gtk3cairo.py
	}
}
# XXX: the Qt4 backend makes use of the Qt5 backend, which is actually a
# generic Qt backend. So we need to package all the Qt5 stuff in this generic
# package and provide a stub package which pulls in the python3.x-PyQt5 dependency.
python3.4-matplotlib-qtshared_package() {
	depends="python3.4-matplotlib>=${version}_${revision}"
	short_desc="${_short_desc} - shared files for the Qt backends"
	pycompile_version="3.4"
	pycompile_module="matplotlib"
	pkg_install() {
		vmove ${_py34sitedir}/matplotlib/backends/backend_qt5.py
		vmove ${_py34sitedir}/matplotlib/backends/backend_qt5agg.py
		vmove ${_py34sitedir}/matplotlib/backends/qt_compat.py
		vmove ${_py34sitedir}/matplotlib/backends/qt4_compat.py
		vmove ${_py34sitedir}/matplotlib/backends/qt_editor
	}
}
python3.4-matplotlib-qt4_package() {
	depends="python3.4-matplotlib-qtshared>=${version}_${revision} python3.4-PyQt4"
	short_desc="${_short_desc} - Qt4 backend"
	pycompile_version="3.4"
	pycompile_module="matplotlib"
	pkg_install() {
		vmove ${_py34sitedir}/matplotlib/backends/backend_qt4.py
		vmove ${_py34sitedir}/matplotlib/backends/backend_qt4agg.py
	}
}
python3.4-matplotlib-qt5_package() {
	depends="python3.4-matplotlib-qtshared>=${version}_${revision} python3.4-PyQt5"
	short_desc="${_short_desc} - Qt5 backend"
	pkg_install() {
		:
	}
}
python3.4-matplotlib-tk_package() {
	depends="python3.4-matplotlib>=${version}_${revision} python3.4-tkinter"
	short_desc="${_short_desc} - Tk backend"
	pycompile_version="3.4"
	pycompile_module="matplotlib"
	pkg_install() {
		vmove ${_py34sitedir}/matplotlib/backends/_tkagg.cpython-34m.so
		vmove ${_py34sitedir}/matplotlib/backends/backend_tkagg.py
		vmove ${_py34sitedir}/matplotlib/backends/tkagg.py
	}
}
python3.4-matplotlib-web_package() {
	depends="python3.4-matplotlib>=${version}_${revision} python3.4-tornado"
	short_desc="${_short_desc} - web backend"
	pycompile_version="3.4"
	pycompile_module="matplotlib"
	pkg_install() {
		vmove ${_py34sitedir}/matplotlib/backends/backend_webagg.py
		vmove ${_py34sitedir}/matplotlib/backends/backend_webagg_core.py
		vmove ${_py34sitedir}/matplotlib/backends/web_backend
	}
}
