blob: 89dd7f316116e89c129155dcf3b9993b7a069156 [file] [log] [blame]
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python2_7 )
inherit eutils multilib versionator python-single-r1 cmake-utils
MAIN_PV=$(get_major_version)
MAJOR_PV=$(get_version_component_range 1-2)
MY_P="ParaView-v${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="~amd64 ~x86"
SLOT="0"
IUSE="boost cg coprocessing development doc examples ffmpeg mpi mysql nvcontrol plugins python qt4 sqlite tcl test tk"
RESTRICT="test"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
mysql? ( sqlite )" # "vtksqlite, needed by vtkIOSQL" and "vtkIOSQL, needed by vtkIOMySQL"
RDEPEND="
dev-libs/expat
>=dev-libs/jsoncpp-0.10.1
dev-libs/libxml2:2
dev-libs/protobuf
media-libs/freetype
media-libs/libpng:0
media-libs/libtheora
media-libs/tiff:0=
sci-libs/hdf5[mpi=]
>=sci-libs/netcdf-4.2[hdf5]
>=sci-libs/netcdf-cxx-4.2:3
sys-libs/zlib
virtual/jpeg:0
virtual/opengl
>=x11-libs/gl2ps-1.3.8
x11-libs/libX11
x11-libs/libXext
x11-libs/libXmu
x11-libs/libXt
coprocessing? (
plugins? (
dev-python/PyQt4
dev-qt/qtgui:4
)
)
ffmpeg? ( virtual/ffmpeg )
mpi? ( virtual/mpi[cxx,romio] )
mysql? ( virtual/mysql )
python? (
${PYTHON_DEPS}
dev-python/matplotlib[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/sip[${PYTHON_USEDEP}]
dev-python/twisted-core
dev-python/zope-interface[${PYTHON_USEDEP}]
mpi? ( dev-python/mpi4py )
qt4? ( dev-python/PyQt4[opengl,webkit,${PYTHON_USEDEP}] )
)
qt4? (
dev-qt/designer:4
dev-qt/qtgui:4
dev-qt/qtopengl:4
dev-qt/qthelp:4[compat]
dev-qt/qtsql:4
dev-qt/qtwebkit:4
)
sqlite? ( dev-db/sqlite:3 )
tcl? ( dev-lang/tcl:0= )
tk? ( dev-lang/tk:0= )"
DEPEND="${RDEPEND}
${PYTHON_DEPS}
boost? ( >=dev-libs/boost-1.40.0[mpi?,${PYTHON_USEDEP}] )
doc? ( app-doc/doxygen )"
S="${WORKDIR}/${MY_P}"
pkg_setup() {
python-single-r1_pkg_setup
PVLIBDIR=$(get_libdir)/${PN}-${MAJOR_PV}
}
src_prepare() {
# see patch headers for description
epatch "${FILESDIR}"/${PN}-4.0.1-xdmf-cstring.patch \
"${FILESDIR}"/${PN}-4.0.1-gcc-4.7.patch \
"${FILESDIR}"/${PN}-4.2.0-protobuf.patch \
"${FILESDIR}"/${PN}-4.3.1-fix-development-install.patch \
"${FILESDIR}"/${PN}-4.3.1-protobuf-2.6.patch \
"${FILESDIR}"/${P}-removesqlite.patch
# lib64 fixes
sed -i \
-e "s:/usr/lib:${EPREFIX}/usr/$(get_libdir):g" \
VTK/ThirdParty/xdmf2/vtkxdmf2/libsrc/CMakeLists.txt || die
sed -i \
-e "s:\/lib\/python:\/$(get_libdir)\/python:g" \
VTK/ThirdParty/xdmf2/vtkxdmf2/CMake/setup_install_paths.py || die
sed -i \
-e "s:lib/paraview-:$(get_libdir)/paraview-:g" \
CMakeLists.txt \
Plugins/SciberQuestToolKit/CMakeLists.txt \
ParaViewConfig.cmake.in \
CoProcessing/PythonCatalyst/vtkCPPythonScriptPipeline.cxx \
ParaViewCore/ClientServerCore/Core/vtkProcessModuleInitializePython.h \
ParaViewCore/ClientServerCore/Core/vtkPVPluginTracker.cxx \
Plugins/SciberQuestToolKit/ParaViewPlugin/CMakeLists.txt \
Plugins/SciberQuestToolKit/SciberQuest/CMakeLists.txt || die
# no proper switch
use nvcontrol || {
sed -i \
-e '/VTK_USE_NVCONTROL/s#1#0#' \
VTK/Rendering/OpenGL/CMakeLists.txt || die
}
}
src_configure() {
# VTK_USE_SYSTEM_QTTESTING
# PARAVIEW_USE_SYSTEM_AUTOBAHN
local mycmakeargs=(
-DPV_INSTALL_LIB_DIR="${PVLIBDIR}"
-DCMAKE_INSTALL_PREFIX="${EPREFIX}"/usr
-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
-DBUILD_SHARED_LIBS=ON
-DVTK_USE_SYSTEM_EXPAT=ON
-DVTK_USE_SYSTEM_FREETYPE=ON
-DVTK_USE_SYSTEM_GL2PS=ON
-DVTK_USE_SYSTEM_HDF5=ON
-DVTK_USE_SYSTEM_JPEG=ON
-DVTK_USE_SYSTEM_JSONCPP=ON
-DVTK_USE_SYSTEM_LIBXML2=ON
-DVTK_USE_SYSTEM_NETCDF=ON
-DVTK_USE_SYSTEM_OGGTHEORA=ON
-DVTK_USE_SYSTEM_PNG=ON
-DVTK_USE_SYSTEM_PROTOBUF=ON
-DVTK_USE_SYSTEM_TIFF=ON
-DVTK_USE_SYSTEM_XDMF2=OFF
-DVTK_USE_SYSTEM_ZLIB=ON
-DPARAVIEW_USE_SYSTEM_MPI4PY=ON
-DVTK_USE_SYSTEM_ZOPE=ON
-DVTK_USE_SYSTEM_TWISTED=ON
-DCMAKE_VERBOSE_MAKEFILE=ON
-DCMAKE_COLOR_MAKEFILE=TRUE
-DVTK_USE_OFFSCREEN=TRUE
-DCMAKE_USE_PTHREADS=ON
-DVTK_USE_FFMPEG_ENCODER=OFF
-DPROTOC_LOCATION=$(type -P protoc)
-DVTK_Group_StandAlone=ON
# force this module due to incorrect build system deps
# wrt bug 460528
-DModule_vtkUtilitiesProcessXML=ON
)
# TODO: XDMF_USE_MYSQL?
# VTK_WRAP_JAVA
mycmakeargs+=(
$(cmake-utils_use development PARAVIEW_INSTALL_DEVELOPMENT_FILES)
$(cmake-utils_use qt4 PARAVIEW_BUILD_QT_GUI)
$(cmake-utils_use qt4 Module_vtkGUISupportQtOpenGL)
$(cmake-utils_use qt4 Module_vtkGUISupportQtSQL)
$(cmake-utils_use qt4 Module_vtkGUISupportQtWebkit)
$(cmake-utils_use qt4 Module_vtkRenderingQt)
$(cmake-utils_use qt4 Module_vtkViewsQt)
$(cmake-utils_use qt4 VTK_Group_ParaViewQt)
$(cmake-utils_use qt4 VTK_Group_Qt)
$(cmake-utils_use !qt4 PQWIDGETS_DISABLE_QTWEBKIT)
$(cmake-utils_use boost Module_vtkInfovisBoost)
$(cmake-utils_use boost Module_vtkInfovisBoostGraphAlg)
$(cmake-utils_use mpi PARAVIEW_USE_MPI)
$(cmake-utils_use mpi PARAVIEW_USE_MPI_SSEND)
$(cmake-utils_use mpi PARAVIEW_USE_ICE_T)
$(cmake-utils_use mpi VTK_Group_MPI)
$(cmake-utils_use mpi VTK_XDMF_USE_MPI)
$(cmake-utils_use mpi XDMF_BUILD_MPI)
$(cmake-utils_use python PARAVIEW_ENABLE_PYTHON)
$(cmake-utils_use python VTK_Group_ParaViewPython)
$(cmake-utils_use python XDMF_WRAP_PYTHON)
$(cmake-utils_use python Module_vtkPython)
$(cmake-utils_use python Module_pqPython)
$(cmake-utils_use python Module_vtkWrappingPythonCore)
$(cmake-utils_use python Module_vtkPVPythonSupport)
$(cmake-utils_use python Module_AutobahnPython)
$(cmake-utils_use python Module_Twisted)
$(cmake-utils_use python Module_ZopeInterface)
$(cmake-utils_use python Module_vtkmpi4py)
$(usex qt4 "$(cmake-utils_use python Module_pqPython)" "-DModule_pqPython=OFF")
$(cmake-utils_use doc BUILD_DOCUMENTATION)
$(cmake-utils_use doc PARAVIEW_BUILD_WEB_DOCUMENTATION)
$(cmake-utils_use examples BUILD_EXAMPLES)
$(cmake-utils_use cg VTK_USE_CG_SHADERS)
$(cmake-utils_use mysql Module_vtkIOMySQL)
$(cmake-utils_use sqlite Module_vtksqlite)
$(cmake-utils_use coprocessing PARAVIEW_ENABLE_CATALYST)
$(cmake-utils_use ffmpeg PARAVIEW_ENABLE_FFMPEG)
$(cmake-utils_use ffmpeg VTK_USE_FFMPEG_ENCODER)
$(cmake-utils_use ffmpeg Module_vtkIOFFMPEG)
$(cmake-utils_use tk VTK_Group_Tk)
$(cmake-utils_use tk VTK_USE_TK)
$(cmake-utils_use tk Module_vtkRenderingTk)
$(cmake-utils_use tcl Module_vtkTclTk)
$(cmake-utils_use tcl Module_vtkWrappingTcl)
$(cmake-utils_use test BUILD_TESTING)
)
if use qt4 ; then
mycmakeargs+=( -DVTK_INSTALL_QT_DIR=/${PVLIBDIR}/plugins/designer )
if use python ; then
# paraview cannot guess sip directory properly
mycmakeargs+=( -DSIP_INCLUDE_DIR="${EPREFIX}$(python_get_includedir)" )
fi
fi
# TODO: MantaView VaporPlugin VRPlugin
mycmakeargs+=(
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_AdiosReader)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_AnalyzeNIfTIIO)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_ArrowGlyph)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_EyeDomeLighting)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_ForceTime)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_GMVReader)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_H5PartReader)
$(cmake-utils_use plugins RAVIEW_BUILD_PLUGIN_MobileRemoteControl)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_Moments)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_NonOrthogonalSource)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_PacMan)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_PointSprite)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_PrismPlugin)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_QuadView)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_SLACTools)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_SciberQuestToolKit)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_SierraPlotTools)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_StreamingParticles)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_SurfaceLIC)
$(cmake-utils_use plugins PARAVIEW_BUILD_PLUGIN_UncertaintyRendering)
# these are always needed for plugins
$(cmake-utils_use plugins Module_vtkFiltersFlowPaths)
$(cmake-utils_use plugins Module_vtkPVServerManagerApplication)
)
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}
newicon "${S}"/Applications/ParaView/pvIcon-32x32.png paraview.png
make_desktop_entry paraview "Paraview" paraview
use python && python_optimize "${D}"/usr/$(get_libdir)/${PN}-${MAJOR_PV}
}
pkg_postinst() {
# with Qt4.5 there seem to be issues reading data files
# under certain locales. Setting LC_ALL=C should fix these.
elog ""
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"
elog ""
elog "paraview no longer exports bundled python modules in PYTHONPATH"
elog "globally due to clashes of bundled packages with system-wide"
elog "site-packages. If you want to use paraview's python modules"
elog "export"
elog " PYTHONPATH=${EPREFIX}/usr/${PVLIBDIR}:${EPREFIX}/usr/${PVLIBDIR}/site-packages"
elog "as needed."
}