# Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/sci-libs/vtk/vtk-5.10.0.ebuild,v 1.1 2012/06/07 14:39:26 jlec Exp $ EAPI=3 PYTHON_DEPEND="python? 2" WANT_CMAKE="always" inherit eutils flag-o-matic java-pkg-opt-2 python qt4-r2 versionator toolchain-funcs cmake-utils # Short package version SPV="$(get_version_component_range 1-2)" DESCRIPTION="The Visualization Toolkit" HOMEPAGE="http://www.vtk.org/" SRC_URI=" http://www.${PN}.org/files/release/${SPV}/${P}.tar.gz doc? ( http://www.${PN}.org/files/release/${SPV}/${PN}DocHtml-${PV}.tar.gz ) examples? ( http://www.${PN}.org/files/release/${SPV}/${PN}data-${PV}.tar.gz )" LICENSE="BSD LGPL-2" KEYWORDS="~amd64 ~x86" SLOT="0" IUSE="boost chemistry cg doc examples ffmpeg java mpi mysql odbc patented postgres python qt4 R theora threads tk video_cards_nvidia X" RDEPEND=" dev-libs/expat dev-libs/libxml2:2 media-libs/freetype media-libs/libpng media-libs/mesa media-libs/tiff sci-libs/hdf5 sys-libs/zlib virtual/jpeg virtual/opengl x11-libs/libX11 x11-libs/libXmu x11-libs/libXt cg? ( media-gfx/nvidia-cg-toolkit ) examples? ( x11-libs/qt-core:4[qt3support] x11-libs/qt-gui:4[qt3support] ) ffmpeg? ( virtual/ffmpeg ) java? ( >=virtual/jre-1.5 ) mpi? ( virtual/mpi[cxx,romio] ) mysql? ( virtual/mysql ) odbc? ( dev-db/unixODBC ) postgres? ( dev-db/postgresql-base ) python? ( dev-python/sip ) qt4? ( x11-libs/qt-core:4 x11-libs/qt-gui:4 x11-libs/qt-opengl:4 x11-libs/qt-sql:4 x11-libs/qt-webkit:4 python? ( dev-python/PyQt4 ) ) tk? ( dev-lang/tk ) theora? ( media-libs/libtheora ) tk? ( dev-lang/tk ) video_cards_nvidia? ( media-video/nvidia-settings ) R? ( dev-lang/R )" DEPEND="${RDEPEND} java? ( >=virtual/jdk-1.5 ) boost? ( >=dev-libs/boost-1.40.0[mpi?] ) dev-util/cmake" S="${WORKDIR}"/VTK PATCHES=( "${FILESDIR}"/${PN}-5.6.0-cg-path.patch "${FILESDIR}"/${PN}-5.2.0-tcl-install.patch "${FILESDIR}"/${PN}-5.8.0-R.patch "${FILESDIR}"/${PN}-5.6.0-odbc.patch "${FILESDIR}"/${PN}-5.6.1-ffmpeg.patch "${FILESDIR}"/${PN}-5.6.1-libav-0.8.patch ) pkg_setup() { echo einfo "Please note that the VTK build occasionally fails when" einfo "using parallel make. Hence, if you experience a build" einfo "failure please try re-emerging with MAKEOPTS=\"-j1\" first." echo java-pkg-opt-2_pkg_setup use python && python_set_active_version 2 append-cppflags -D__STDC_CONSTANT_MACROS } src_configure() { # general configuration local mycmakeargs=( -Wno-dev -DVTK_INSTALL_PACKAGE_DIR=/$(get_libdir)/${PN}-${SPV} -DCMAKE_SKIP_RPATH=YES -DVTK_DIR="${S}" -DVTK_INSTALL_LIB_DIR=/$(get_libdir)/ -DVTK_DATA_ROOT:PATH="${EPREFIX}/usr/share/${PN}/data" -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr" -DBUILD_SHARED_LIBS=ON -DVTK_USE_SYSTEM_EXPAT=ON -DVTK_USE_SYSTEM_FREETYPE=ON -DVTK_USE_SYSTEM_JPEG=ON -DVTK_USE_SYSTEM_LIBXML2=ON -DVTK_USE_SYSTEM_PNG=ON -DVTK_USE_SYSTEM_TIFF=ON -DVTK_USE_SYSTEM_ZLIB=ON -DVTK_USE_SYSTEM_HDF5=ON -DHDF5_LIBRARY="${EPREFIX}/usr/$(get_libdir)" -DHDF5_INCLUDE_DIRS="${EPREFIX}/usr/include" -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DVTK_USE_HYBRID=ON -DVTK_USE_GL2PS=ON -DVTK_USE_RENDERING=ON) # use flag triggered options mycmakeargs+=( $(cmake-utils_use boost VTK_USE_BOOST) $(cmake-utils_use cg VTK_USE_CG_SHADERS) $(cmake-utils_use doc DOCUMENTATION_HTML_HELP) $(cmake-utils_use_build doc DOCUMENTATION) $(cmake-utils_use java VTK_USE_JAVA) $(cmake-utils_use mpi VTK_USE_MPI) $(cmake-utils_use mysql VTK_USE_MYSQL) $(cmake-utils_use patented VTK_USE_PATENTED) $(cmake-utils_use postgres VTK_USE_POSTGRES) $(cmake-utils_use odbc VTK_USE_ODBC) $(cmake-utils_use qt4 VTK_USE_QT) $(cmake-utils_use theora VTK_USE_OGGTHEORA_ENCODER) $(cmake-utils_use ffmpeg VTK_USE_FFMPEG_ENCODER) $(cmake-utils_use tk VTK_USE_TK) $(cmake-utils_use threads VTK_USE_PARALLEL) $(cmake-utils_use video_cards_nvidia VTK_USE_NVCONTROL) $(cmake-utils_use X VTK_USE_X) $(cmake-utils_use X VTK_USE_GUISUPPORT) $(cmake-utils_use R VTK_USE_GNU_R) $(cmake-utils_use chemistry VTK_USE_CHEMISTRY) ) use tk && mycmakeargs+=( -DVTK_WRAP_TCL=ON -DVTK_WRAP_TK=ON -DVTK_TCL_INCLUDE_DIR="${EPREFIX}/usr/include" -DVTK_TCL_LIBRARY="${EPREFIX}/usr/$(get_libdir)" -DVTK_TK_INCLUDE_DIR="${EPREFIX}/usr/include" -DVTK_TK_LIBRARY="${EPREFIX}/usr/$(get_libdir)" ) use theora && mycmakeargs+=(-DVTK_USE_SYSTEM_OGGTHEORA=ON) # mpi needs the parallel framework if use mpi && use !threads; then mycmakeargs+=(-DVTK_USE_PARALLEL=ON) fi if use java; then mycmakeargs+=( -DVTK_WRAP_JAVA=ON -DJAVA_AWT_INCLUDE_PATH=`java-config -O`/include -DJAVA_INCLUDE_PATH:PATH=`java-config -O`/include -DJAVA_INCLUDE_PATH2:PATH=`java-config -O`/include/linux ) if [ "${ARCH}" == "amd64" ]; then mycmakeargs+=(-DJAVA_AWT_LIBRARY=`java-config -O`/jre/lib/${ARCH}/libjawt.so) else mycmakeargs+=(-DJAVA_AWT_LIBRARY:PATH=`java-config -O`/jre/lib/i386/libjawt.so) fi fi if use python; then mycmakeargs+=( -DPYTHON_INCLUDE_DIR="${EPREFIX}"$(python_get_includedir) -DPYTHON_LIBRARY="${EPREFIX}$(python_get_library)" -DVTK_WRAP_PYTHON=ON -DVTK_WRAP_PYTHON_SIP=ON -DSIP_PYQT_DIR="${EPREFIX}/usr/share/sip" -DSIP_INCLUDE_DIR="${EPREFIX}$(python_get_includedir)" -DPYTHON_INCLUDE_DIR="${EPREFIX}$(python_get_includedir)" -DPYTHON_LIBRARY="${EPREFIX}$(python_get_library)" -DVTK_PYTHON_INCLUDE_DIR="${EPREFIX}$(python_get_includedir)" -DVTK_PYTHON_LIBRARY="${EPREFIX}$(python_get_library)" -DVTK_PYTHON_SETUP_ARGS:STRING=--root="${D}") fi if use qt4 ; then mycmakeargs+=( -DVTK_USE_GUISUPPORT=ON -DVTK_USE_QVTK=ON -DVTK_USE_QVTK_OPENGL=ON -DVTK_USE_QVTK_QTOPENGL=ON -DQT_WRAP_CPP=ON -DQT_WRAP_UI=ON -DVTK_INSTALL_QT_DIR=/$(get_libdir)/qt4/plugins/${PN} -DDESIRED_QT_VERSION=4 -DQT_MOC_EXECUTABLE="${EPREFIX}/usr/bin/moc" -DQT_UIC_EXECUTABLE="${EPREFIX}/usr/bin/uic" -DQT_INCLUDE_DIR="${EPREFIX}/usr/include/qt4" -DQT_QMAKE_EXECUTABLE="${EPREFIX}/usr/bin/qmake") fi cmake-utils_src_configure } src_install() { cmake-utils_src_install # install docs dohtml "${S}"/README.html || die "Failed to install docs" # install Tcl docs docinto vtk_tcl dodoc "${S}"/Wrapping/Tcl/README || \ die "Failed to install Tcl docs" # install examples if use examples; then insinto /usr/share/${PN} mv -v Examples examples doins -r examples || die mv -v "${WORKDIR}"/{VTKData,data} || die doins -r "${WORKDIR}"/data || die fi #install big docs if use doc; then cd "${WORKDIR}"/html rm -f *.md5 || die "Failed to remove superfluous hashes" einfo "Installing API docs. This may take some time." insinto "/usr/share/doc/${PF}/api-docs" doins -r ./* || die "Failed to install docs" fi # environment cat >> "${T}"/40${PN} <<- EOF VTK_DATA_ROOT=${EPREFIX}/usr/share/${PN}/data VTK_DIR=${EPREFIX}/usr/$(get_libdir)/${PN}-${SPV} VTKHOME=${EPREFIX}/usr EOF doenvd "${T}"/40${PN} } pkg_postinst() { if use patented; then ewarn "Using patented code in VTK may require a license." ewarn "For more information, please read:" ewarn "http://public.kitware.com/cgi-bin/vtkfaq?req=show&file=faq07.005.htp" fi if use python; then python_mod_optimize vtk fi } pkg_postrm() { if use python; then python_mod_cleanup vtk fi }