diff options
Diffstat (limited to 'sci-visualization/paraview/paraview-3.6.2.ebuild')
-rw-r--r-- | sci-visualization/paraview/paraview-3.6.2.ebuild | 257 |
1 files changed, 257 insertions, 0 deletions
diff --git a/sci-visualization/paraview/paraview-3.6.2.ebuild b/sci-visualization/paraview/paraview-3.6.2.ebuild new file mode 100644 index 000000000000..1b0115e0d109 --- /dev/null +++ b/sci-visualization/paraview/paraview-3.6.2.ebuild @@ -0,0 +1,257 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-visualization/paraview/paraview-3.6.2.ebuild,v 1.1 2010/01/16 19:58:32 markusle Exp $ + +EAPI="2" + +inherit distutils eutils flag-o-matic toolchain-funcs versionator python qt4 cmake-utils + +MAIN_PV=$(get_major_version) +MAJOR_PV=$(get_version_component_range 1-2) + +DESCRIPTION="ParaView is a powerful scientific data visualization application" +HOMEPAGE="http://www.paraview.org" +SRC_URI="mirror://gentoo/${P}.tar.gz + mirror://gentoo/${P}-openfoam-gpl-r173.patch.bz2 + mirror://gentoo/${P}-openfoam-r173.patch.bz2" + +LICENSE="paraview GPL-2" +KEYWORDS="~x86 ~amd64" +SLOT="0" +IUSE="mpi +python hdf5 doc examples +gui plugins boost streaming cg overview mysql postgres odbc" +RDEPEND="hdf5? ( sci-libs/hdf5 ) + mpi? ( || ( + sys-cluster/openmpi + sys-cluster/mpich2[cxx] ) ) + python? ( dev-lang/python:2.6 ) + gui? ( x11-libs/qt-gui:4 + x11-libs/qt-qt3support:4 + x11-libs/qt-opengl:4 + x11-libs/qt-assistant:4 ) + mysql? ( virtual/mysql ) + postgres? ( virtual/postgresql-base ) + odbc? ( dev-db/unixODBC ) + dev-libs/libxml2 + media-libs/libpng + media-libs/jpeg + media-libs/tiff + media-video/ffmpeg + 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} + boost? ( >=dev-libs/boost-1.37 ) + doc? ( app-doc/doxygen ) + >=dev-util/cmake-2.6.4" + +PVLIBDIR="$(get_libdir)/${PN}-${MAJOR_PV}" +S="${WORKDIR}"/ParaView${MAIN_PV} + +pkg_setup() { + if (use overview) && (! use gui); then + die "the overview plugin requires the USE='gui'" + fi +} + +src_prepare() { + epatch "${FILESDIR}"/${P}-qt.patch + epatch "${FILESDIR}"/${P}-findcg-cmake.patch + epatch "${FILESDIR}"/${P}-assistant.patch + epatch "${DISTDIR}"/${P}-openfoam-r173.patch.bz2 + epatch "${DISTDIR}"/${P}-openfoam-gpl-r173.patch.bz2 + epatch "${FILESDIR}"/${P}-no-doc-finder.patch + epatch "${FILESDIR}"/${P}-pointsprite-disable.patch + epatch "${FILESDIR}"/${P}-about.html.patch + + if use hdf5 && has_version '>=sci-libs/hdf5-1.8.0'; then + epatch "${FILESDIR}"/${P}-hdf-1.8.3.patch + fi + + # fix GL issues + sed -e "s:DEPTH_STENCIL_EXT:DEPTH_COMPONENT24:" \ + -i VTK/Rendering/vtkOpenGLRenderWindow.cxx \ + || die "Failed to fix GL issues." + + # fix plugin install directory + sed -e "s:\${PV_INSTALL_BIN_DIR}/plugins:/usr/${PVLIBDIR}/plugins:" \ + -i CMake/ParaViewPlugins.cmake \ + || die "Failed to fix plugin install directories" +} + +src_configure() { + python_version + mycmakeargs=( + -DPV_INSTALL_LIB_DIR="${PVLIBDIR}" + -DCMAKE_INSTALL_PREFIX=/usr + -DEXPAT_INCLUDE_DIR=/usr/include + -DEXPAT_LIBRARY=/usr/$(get_libdir)/libexpat.so + -DOPENGL_gl_LIBRARY=/usr/$(get_libdir)/libGL.so + -DOPENGL_glu_LIBRARY=/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 + -DCMAKE_VERBOSE_MAKEFILE=OFF + -DCMAKE_COLOR_MAKEFILE=TRUE + -DVTK_USE_SYSTEM_LIBXML2=ON + -DVTK_USE_OFFSCREEN=TRUE + -DCMAKE_USE_PTHREADS=ON + -DBUILD_TESTING=OFF + -DVTK_USE_FFMPEG_ENCODER=OFF) + + # 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 hdf5 PARAVIEW_USE_SYSTEM_HDF5) + $(cmake-utils_use mpi PARAVIEW_USE_MPI) + $(cmake-utils_use python PARAVIEW_ENABLE_PYTHON) + $(cmake-utils_use doc BUILD_DOCUMENTATION) + $(cmake-utils_use examples BUILD_EXAMPLES) + $(cmake-utils_use cg VTK_USE_CG_SHADERS) + $(cmake-utils_use streaming PARAVIEW_BUILD_StreamingParaView) + $(cmake-utils_use odbc VTK_USE_ODBC) + $(cmake-utils_use mysql VTK_USE_MYSQL) + $(cmake-utils_use mysql XDMF_USE_MYSQL) + $(cmake-utils_use postgres VTK_USE_POSTGRES)) + + if use gui; then + mycmakeargs+=(-DVTK_INSTALL_QT_DIR=/${PVLIBDIR}/plugins/designer) + fi + + # all the logic needed for overview + # we enable all plugins that are either required by overview + # or require overview to work + mycmakeargs+=( + $(cmake-utils_use overview VTK_USE_N_WAY_ARRAYS) + $(cmake-utils_use overview PARAVIEW_BUILD_OverView) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_ClientGraphView) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_ClientGraphViewFrame) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_ClientRecordView) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_ClientTableView) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_ClientTreeView) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_Infovis) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_SQLDatabaseGraphSourcePanel) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_SQLDatabaseTableSourcePanel) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_TableToGraphPanel) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_Array) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_ClientGeoView) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_ClientGeoView2D) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_ClientGraphViewFrame) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_ClientHierarchyView) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_CommonToolbar) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_GraphLayoutFilterPanel) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_SplitTableFieldPanel) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_StatisticsToolbar) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_TableToSparseArrayPanel) + $(cmake-utils_use overview PARAVIEW_BUILD_PLUGIN_ThresholdTablePanel)) + + # the rest of the plugins + mycmakeargs+=( + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_ChartViewFrame) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_ClientAttributeView) + $(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_Streaming) + $(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_netCDFReaders)) + + if use python; then + mycmakeargs+=($(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_pvblot)) + fi + + # we also need to append -DH5Tget_array_dims_vers=1 to our CFLAGS + # to make sure we can compile against >=hdf5-1.8.3 + if use hdf5; then + append-flags -DH5_USE_16_API + fi + + cmake-utils_src_configure + # overview needs a second configure to pick things up + use overview && cmake-utils_src_configure +} + +src_install() { + cmake-utils_src_install + + # rename the assistant wrapper + if use gui; then + mv "${D}"/usr/bin/assistant "${D}"/usr/bin/paraview-assistant \ + || die "Failed to rename assistant wrapper" + chmod 0755 "${D}"/usr/${PVLIBDIR}/assistant-real \ + || die "Failed to change permissions on assistant wrapper" + fi + + # since there is no install target for OverView we have to + # do things manually + if use overview; then + exeinto /usr/"${PVLIBDIR}" + newexe "${CMAKE_BUILD_DIR}"/bin/OverView OverView-real \ + || die "Failed to install OverView binary" + dolib.so "${CMAKE_BUILD_DIR}"/bin/libOverViewCore.so \ + || die "Failed to install OverViewCore shared object" + + insinto /usr/"${PVLIBDIR}"/OverView-startup + insopts -m0744 + doins "${CMAKE_BUILD_DIR}"/bin/OverView-startup/lib*.so \ + || die "Failed to install OverView libraries" + + dosym /usr/"${PVLIBDIR}"/OverView-real /usr/bin/OverView \ + || die "Failed to create OverView symlink" + + newicon "${S}"/Applications/OverView/Icon.png overview.png \ + || die "Failed to create OverView icon" + make_desktop_entry OverView "OverView" overview.png \ + || die "Failed to install OverView desktop icon" + fi + + # set up the environment + echo "LDPATH=/usr/${PVLIBDIR}" >> "${T}"/40${PN} + echo "PYTHONPATH=/usr/${PVLIBDIR}" >> "${T}"/40${PN} + doenvd "${T}"/40${PN} + + # this binary does not work and probably should not be installed + rm -f "${D}/usr/bin/vtkSMExtractDocumentation" \ + || die "Failed to remove vtkSMExtractDocumentation" + + # rename /usr/bin/lproj to /usr/bin/lproj_paraview to avoid + # a file collision with vtk which installs the same file + mv "${D}/usr/bin/lproj" "${D}/usr/bin/lproj_paraview" \ + || die "Failed to rename /usr/bin/lproj" + + # last but not least lets make a desktop entry + newicon "${S}"/Applications/Client/ParaViewLogo.png paraview.png \ + || die "Failed to create paraview icon." + make_desktop_entry paraview "Paraview" paraview.png \ + || 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 "The binary /usr/bin/lproj has been renamed to" + elog "/usr/bin/lproj_paraview to avoid a file collision" + elog "with vtk." + echo +} |