# Copy:right 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ # TODO: # o Warning: CMake is forcing CMAKE_CXX_COMPILER to "/usr/lib/distcc/bin/g++" to # match that imported from VTK. This is required because C++ projects must use # the same compiler. If this message appears for more than one imported # project, you have conflicting C++ compilers and will have to re-build one of # those projects. # I get that type of warning when I use FEATURES="distcc" to emerge vtk # Mini changelog: # o fixed symlinks in /usr/lib/python2.3/site-packages/vtk_python # o PATH, and VTK_DATA_ROOT problems not apparrent anymore # o java wrapping works now # o fixed some style changes according to ebuild guide # o FIXME: need to fix Examples/CMakeLists.txt to build other examples # o tcl/tk is actually required to compile, still using tcltk use flags for # enabling tcltk wrapping # o added mpi support inherit distutils flag-o-matic versionator DESCRIPTION="visualization toolkit" HOMEPAGE="http://www.vtk.org" LICENSE="VTK" SLOT="0" KEYWORDS="~x86" IUSE="doc data example hybrid java mpi parallel patented python tcltk" RDEPEND="java? ( virtual/jdk ) mpi? ( sys-cluster/mpich ) python? ( >=dev-lang/python-2.0 ) >=dev-lang/tcl-8.2.3 >=dev-lang/tk-8.2.3 media-libs/jpeg media-libs/tiff media-libs/libpng sys-libs/zlib dev-libs/expat" DEPEND="${RDEPEND} >=dev-util/cmake-1.8 virtual/x11 virtual/opengl" MY_PV="$(get_version_component_range 1-2)" SRC_URI="ftp://public.kitware.com/pub/vtk/vtk${MY_PV}/moved_to_sourceforge/VTK-${PV}.tar.gz doc? ( ftp://public.kitware.com/pub/vtk/vtk${MY_PV}/moved_to_sourceforge/VTKDocHtml-${MY_PV}.tar.gz ) data? ( ftp://public.kitware.com/pub/vtk/vtk${MY_PV}/moved_to_sourceforge/VTKData-${MY_PV}.tar.gz )" S=${WORKDIR}/VTK src_compile() { # gcc versions 3.2.x seem to have sse-related bugs that are triggered # by VTK when compiling for pentium3/4 if [ `get-flag -march` == "-march=pentium4" ] && has_version=sys-libs/glibc-3.2*; then filter-mfpmath sse filter-flags "-msse -msse2" fi # build list of config variable define's to pass to cmake CMAKE_VARIABLES="-DCMAKE_INSTALL_PREFIX:PATH=/usr" CMAKE_VARIABLES="${CMAKE_VARIABLES} -DBUILD_SHARED_LIBS:BOOL=ON" CMAKE_VARIABLES="${CMAKE_VARIABLES} -DVTK_USE_SYSTEM_JPEG:BOOL=ON" CMAKE_VARIABLES="${CMAKE_VARIABLES} -DVTK_USE_SYSTEM_PNG:BOOL=ON" CMAKE_VARIABLES="${CMAKE_VARIABLES} -DVTK_USE_SYSTEM_TIFF:BOOL=ON" CMAKE_VARIABLES="${CMAKE_VARIABLES} -DVTK_USE_SYSTEM_ZLIB:BOOL=ON" CMAKE_VARIABLES="${CMAKE_VARIABLES} -DVTK_USE_SYSTEM_EXPAT:BOOL=ON" CMAKE_VARIABLES="${CMAKE_VARIABLES} -DBUILD_TESTING:BOOL=OFF" if use java; then CMAKE_VARIABLES="${CMAKE_VARIABLES} -DVTK_WRAP_JAVA:BOOL=ON" CMAKE_VARIABLES="${CMAKE_VARIABLES} -DJAVA_AWT_LIBRARY:PATH=`java-config -O`/jre/lib/i386/libjawt.so" CMAKE_VARIABLES="${CMAKE_VARIABLES} -DJAVA_AWT_INCLUDE_PATH:PATH=`java-config -O`/include" CMAKE_VARIABLES="${CMAKE_VARIABLES} -DJAVA_INCLUDE_PATH:PATH=`java-config -O`/include" CMAKE_VARIABLES="${CMAKE_VARIABLES} -DJAVA_INCLUDE_PATH2:PATH=`java-config -O`/include/linux" fi if use mpi; then CMAKE_VARIABLES="${CMAKE_VARIABLES} -DVTK_USE_MPI:BOOL=ON" use !parallel && CMAKE_VARIABLES="${CMAKE_VARIABLES} -DVTK_USE_PARALLEL:BOOL=ON" fi use python && CMAKE_VARIABLES="${CMAKE_VARIABLES} -DVTK_WRAP_PYTHON:BOOL=ON" use tcltk && CMAKE_VARIABLES="${CMAKE_VARIABLES} -DVTK_WRAP_TCL:BOOL=ON" # local use flags use data && CMAKE_VARIABLES="${CMAKE_VARIABLES} -DVTK_DATA_ROOT:PATH=/usr/share/${PN}/data" use example && CMAKE_VARIABLES="${CMAKE_VARIABLES} -DBUILD_EXAMPLES:BOOL=ON" use hybrid && CMAKE_VARIABLES="${CMAKE_VARIABLES} -DVTK_USE_HYBRID:BOOL=ON" use parallel && CMAKE_VARIABLES="${CMAKE_VARIABLES} -DVTK_USE_PARALLEL:BOOL=ON" use patented && CMAKE_VARIABLES="${CMAKE_VARIABLES} -DVTK_USE_PATENTED:BOOL=ON" cmake ${CMAKE_VARIABLES} . || die "cmake configuration failed" emake || die "emake failed" } src_install() { make install DESTDIR=${D} || die "make install failed" # fix config file dosed -i -e "s:${D}:/:g" /usr/lib/${PN}/VTKConfig.cmake LDPATH="/usr/lib/${PN}" # install python modules if use python; then distutils_python_version LDPATH="${LDPATH}:/usr/lib/python${PYVER}/site-packages/${PN}_python" cd ${S}/Wrapping/Python docinto vtk_python distutils_src_install # make symlinks to vtk python modules FILES="${D}/usr/lib/vtk/libvtk*Python*.so" for file in ${FILES} do dosym ${file} /usr/lib/python${PYVER}/site-packages/${PN}_python done fi # install jar if use java; then dodir /usr/share/${PN} cp ${S}/bin/vtk.jar ${D}/usr/share/${PN} chmod 644 ${D}/usr/share/${PN}/vtk.jar fi # install documentation use doc && dohtml -r ${WORKDIR}/html/ # install examples if use example; then dodir /usr/share/${PN} cp -a ${S}/Examples ${D}/usr/share/${PN}/examples # fix example's permissions find ${D}/usr/share/${PN}/examples -type d -exec chmod 0755 {} \; find ${D}/usr/share/${PN}/examples -type f -exec chmod 0644 {} \; fi # install data if use data; then # VTKData uses a hyphen instead of a dot MY_PV_HYPHEN=`echo ${MY_PV} | sed -e "s/\./-/"` dodir /usr/share/${PN} cp -a ${WORKDIR}/VTKData-release-${MY_PV_HYPHEN} ${D}/usr/share/${PN}/data # fix data's permissions find ${D}/usr/share/${PN}/data -type d -exec chmod 0755 {} \; find ${D}/usr/share/${PN}/data -type f -exec chmod 0644 {} \; fi # environment echo "LDPATH=${LDPATH}" > ${T}/40${PN} use data && echo "VTK_DATA_ROOT=/usr/share/${PN}/data" >> ${T}/40${PN} if use java; then echo "CLASSPATH=/usr/share/${PN}/${PN}.jar" >> ${T}/40${PN} echo "LD_LIBRARY_PATH=/usr/lib/${PN}" >> ${T}/40${PN} fi use tcltk && echo "TCLLIBPATH=/usr/lib/${PN}/tcl" >> ${T}/40${PN} doenvd ${T}/40${PN} } pkg_postinst() { if use patented ; then ewarn "Using patented classes in commercial application requires a licence." ewarn "For more information read" ewarn "http://public.kitware.com/cgi-bin/vtkfaq?req=show&file=faq07.005.htp" fi }