diff options
Diffstat (limited to 'sci-visualization/paraview/paraview-3.14.1-r2.ebuild')
-rw-r--r-- | sci-visualization/paraview/paraview-3.14.1-r2.ebuild | 251 |
1 files changed, 251 insertions, 0 deletions
diff --git a/sci-visualization/paraview/paraview-3.14.1-r2.ebuild b/sci-visualization/paraview/paraview-3.14.1-r2.ebuild new file mode 100644 index 000000000..30bbe3333 --- /dev/null +++ b/sci-visualization/paraview/paraview-3.14.1-r2.ebuild @@ -0,0 +1,251 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=3 + +PYTHON_DEPEND="python? 2:2.6" + +inherit cmake-utils eutils flag-o-matic multilib python qt4-r2 toolchain-funcs versionator + +MAIN_PV=$(get_major_version) +MAJOR_PV=$(get_version_component_range 1-2) +MY_P="ParaView-${PV}-Source" + +DESCRIPTION="ParaView is a powerful scientific data visualization application" +HOMEPAGE="http://www.paraview.org" +SRC_URI="http://www.paraview.org/files/v${MAJOR_PV}/${MY_P}.tar.gz" +RESTRICT="mirror" + +LICENSE="paraview GPL-2" +KEYWORDS="~x86 ~amd64" +SLOT="0" +IUSE="boost cg -coprocessing doc examples +gui mpi mysql nvcontrol +plugins +python webkit ffmpeg theora" + +RDEPEND=" + ~sci-libs/netcdf-4.1.3[cxx,hdf5] + sci-libs/hdf5[mpi=] + mpi? ( virtual/mpi[cxx,romio] ) + gui? ( + x11-libs/qt-gui:4 + x11-libs/qt-qt3support:4 + x11-libs/qt-opengl:4 + || ( >=x11-libs/qt-assistant-4.7.0:4[compat] <x11-libs/qt-assistant-4.7.0:4 ) + x11-libs/qt-sql:4 + webkit? ( x11-libs/qt-webkit:4 ) ) + mysql? ( virtual/mysql ) + coprocessing? ( plugins? ( + x11-libs/qt-gui:4 + dev-python/PyQt4 ) ) + python? ( + dev-python/sip + gui? ( dev-python/PyQt4 ) + dev-python/numpy + mpi? ( dev-python/mpi4py ) + ) + ffmpeg? ( virtual/ffmpeg ) + theora? ( media-libs/libtheora ) + dev-libs/libxml2:2 + dev-db/sqlite:3 + media-libs/libpng + virtual/jpeg + media-libs/tiff + dev-libs/expat + sys-libs/zlib + media-libs/freetype + >=app-admin/eselect-opengl-1.0.6-r1 + virtual/opengl + sci-libs/netcdf + x11-libs/libXmu" +DEPEND="${RDEPEND} + doc? ( app-doc/doxygen ) + boost? ( >=dev-libs/boost-1.40.0[mpi?] ) + dev-libs/protobuf + >=dev-util/cmake-2.6.4" + +PVLIBDIR=$(get_libdir)/${PN}-${MAJOR_PV} +S=${WORKDIR}/${MY_P} + +pkg_setup() { + use python && python_set_active_version 2 +} + +src_prepare() { + # gcc header fix + epatch "${FILESDIR}"/${PN}-3.8.0-xdmf-cstring.patch + # disable automatic byte compiling that act directly on the live system + epatch "${FILESDIR}"/${PN}-3.8.0-xdmf-bc.patch + # Do not install ffmpeg libraries if used + epatch "${FILESDIR}"/${PN}-3.14.1-ffmpeg-noinstall.patch + # patch from debian for some underlinking in xdmf + epatch "${FILESDIR}"/${PN}-3.14.1-xdmf-linking.patch + # upstream http://paraview.org/Bug/view.php?id=13222 and + # commit https://github.com/Kitware/ParaView/commit/559af72e540f418310b6425055348336a48ad557 + epatch "${FILESDIR}"/${PN}-3.14.1-python-exit.patch + # disable internal mpi4py copy + epatch "${FILESDIR}"/${PN}-3.14.1-mpi4py.patch + # remove the internal copy of sqlite (vtksqlite) + # http://patch-tracker.debian.org/patch/series/view/paraview/3.14.1-7/removesqlite.patch + epatch "${FILESDIR}"/${PN}-3.14.1-removesqlite.patch + # gcc 4.7 fix + # http://patch-tracker.debian.org/patch/series/view/paraview/3.14.1-7/fix_FTBFS_gcc-4.7.patch + epatch "${FILESDIR}"/${PN}-3.14.1-gcc-4.7.patch + + # lib64 fixes + sed -i "s:/usr/lib:${EPREFIX}/usr/$(get_libdir):g" \ + Utilities/Xdmf2/libsrc/CMakeLists.txt || die + sed -i "s:\/lib\/python:\/$(get_libdir)\/python:g" \ + Utilities/Xdmf2/CMake/setup_install_paths.py || die + + # Install internal vtk binaries to PV_INSTALL_LIB_DIR as noted in the comment in the cmake file. + # upstream doesn't even do what they say they do. + sed -e 's:VTK_INSTALL_BIN_DIR \"/${PV_INSTALL_BIN_DIR}\":VTK_INSTALL_BIN_DIR \"/${PV_INSTALL_LIB_DIR}\":' \ + -i CMake/ParaViewCommon.cmake || die "failed to patch vtk install location" + + cd VTK + epatch "${FILESDIR}"/vtk-5.6.0-cg-path.patch + epatch "${FILESDIR}"/vtk-5.6.0-odbc.patch + epatch "${FILESDIR}"/vtk-5.6.1-ffmpeg.patch + epatch "${FILESDIR}"/vtk-5.6.1-libav-0.8.patch + # debian patch for recent boost should work with 1.48 too + epatch "${FILESDIR}"/vtk-boost1.49.patch + # adapted from debian patch need to be applied after paraview-3.14.1-removesqlite.patch + epatch "${FILESDIR}"/${PN}-3.14.1-vtknetcd.patch +} + +src_configure() { + mycmakeargs=( + -DPV_INSTALL_LIB_DIR="${PVLIBDIR}" + -DCMAKE_INSTALL_PREFIX="${EPREFIX}"/usr + -DPV_INSTALL_DOC_DIR="${EPREFIX}/usr/share/doc/${PF}" + -DEXPAT_INCLUDE_DIR="${EPREFIX}"/usr/include + -DEXPAT_LIBRARY="${EPREFIX}"/usr/$(get_libdir)/libexpat.so + -DOPENGL_gl_LIBRARY="${EPREFIX}"/usr/$(get_libdir)/libGL.so + -DOPENGL_glu_LIBRARY="${EPREFIX}"/usr/$(get_libdir)/libGLU.so + -DCMAKE_SKIP_RPATH=YES + -DVTK_USE_RPATH=OFF + -DBUILD_SHARED_LIBS=ON + -DVTK_USE_SYSTEM_FREETYPE=ON + -DVTK_USE_SYSTEM_JPEG=ON + -DVTK_USE_SYSTEM_PNG=ON + -DVTK_USE_SYSTEM_TIFF=ON + -DVTK_USE_SYSTEM_ZLIB=ON + -DVTK_USE_SYSTEM_EXPAT=ON + -DPARAVIEW_USE_SYSTEM_HDF5=ON + -DVTK_USE_SYSTEM_HDF5=ON + -DCMAKE_VERBOSE_MAKEFILE=ON + -DCMAKE_COLOR_MAKEFILE=TRUE + -DVTK_USE_SYSTEM_LIBXML2=ON + -DVTK_USE_OFFSCREEN=TRUE + -DCMAKE_USE_PTHREADS=ON + -DVTK_USE_FFMPEG_ENCODER=OFF + -DPARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES=OFF + -DPROTOC_LOCATION=$(which protoc)) + + # use flag triggered options + mycmakeargs+=( + $(cmake-utils_use gui PARAVIEW_BUILD_QT_GUI) + $(cmake-utils_use gui VTK_USE_QVTK) + $(cmake-utils_use gui VTK_USE_QVTK_QTOPENGL) + $(cmake-utils_use boost VTK_USE_BOOST) + $(cmake-utils_use boost VTK_USE_TEXT_ANALYSIS) + $(cmake-utils_use mpi PARAVIEW_USE_MPI) + $(cmake-utils_use mpi PARAVIEW_USE_MPI_SSEND) + $(cmake-utils_use python PARAVIEW_ENABLE_PYTHON) + $(cmake-utils_use python VTK_WRAP_PYTHON_SIP) + $(cmake-utils_use python XDMF_WRAP_PYTHON) + $(cmake-utils_use doc BUILD_DOCUMENTATION) + $(cmake-utils_use examples BUILD_EXAMPLES) + $(cmake-utils_use cg VTK_USE_CG_SHADERS) + $(cmake-utils_use nvcontrol VTK_USE_NVCONTROL) + $(cmake-utils_use mysql XDMF_USE_MYSQL) + $(cmake-utils_use mysql VTK_USE_MYSQL) + $(cmake-utils_use coprocessing PARAVIEW_ENABLE_COPROCESSING) + $(cmake-utils_use ffmpeg VTK_USE_FFMPEG_ENCODER) + $(cmake-utils_use theora VTK_USE_THEORA_ENCODER) + $(cmake-utils_use theora VTK_USE_SYSTEM_OGGTHEORA)) + + # testing, disabling vtk testing as vtkpython is tested and will fail. + mycmakeargs+=( + $(cmake-utils_use test BUILD_TESTING) + $(cmake-utils_use test PARAVIEW_DISABLE_VTK_TESTING)) + + if ( use gui ); then + mycmakeargs+=( + -DVTK_INSTALL_QT_DIR=/${PVLIBDIR}/plugins/designer + $(cmake-utils_use webkit VTK_QT_USE_WEBKIT)) + if use python ; then + # paraview cannot guess sip directory right probably because a path is not propagated properly + mycmakeargs+=( + -DSIP_PYQT_DIR="${EPREFIX}/usr/share/sip" + -DSIP_INCLUDE_DIR="${EPREFIX}$(python_get_includedir)") + fi + fi + + # the rest of the plugins + mycmakeargs+=( + $(cmake-utils_use plugins PARAVIEW_INSTALL_DEVELOPMENT) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_ClientChartView) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_CosmoFilters) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_H5PartReader) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_Moments) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_PointSprite) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_Prism) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_SLACTools) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_AnalyzeNIfTIReaderWriter) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_SurfaceLIC) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_EyeDomeLighting) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_ForceTime) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_SierraPlotTools) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_StreamingView) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_VisTrailPlugin)) + + if use python; then + mycmakeargs+=( + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_pvblot)) + fi + + if use coprocessing; then + mycmakeargs+=($(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_CoProcessingScriptGenerator)) + fi + + cmake-utils_src_configure +} + +src_compile() { + cmake-utils_src_compile +} + +src_install() { + cmake-utils_src_install + + # set up the environment + echo "LDPATH=${EPREFIX}/usr/${PVLIBDIR}" >> "${T}"/40${PN} + echo "PYTHONPATH="${EPREFIX}"/usr/${PVLIBDIR}:/usr/${PVLIBDIR}/site-packages" >> "${T}"/40${PN} + doenvd "${T}"/40${PN} + + # last but not least lets make a desktop entry + newicon "${S}"/Applications/ParaView/pvIcon.png paraview.png \ + || die "Failed to create paraview icon." + make_desktop_entry paraview "Paraview" paraview \ + || die "Failed to install Paraview desktop entry" + +} + +pkg_postinst() { + # with Qt4.5 there seem to be issues reading data files + # under certain locales. Setting LC_ALL=C should fix these. + echo + elog "If you experience data corruption during parsing of" + elog "data files with paraview please try setting your" + elog "locale to LC_ALL=C." + elog "If you plan to use paraview component from an existing shell" + elog "you should run env-update and . /etc/profile first" + echo +} + +pkg_postrm() { + if use python ; then + python_mod_cleanup "${EPREFIX}"/usr/$(get_libdir)/"${PN}-${MAJOR_PV}"/site-packages + fi +} |