# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
# $Id: Portfile 58668 2009-10-02 16:37:02Z mnick@macports.org $

PortSystem 1.0

name        vtk5
version     5.2.1
revision    2
set branch  [join [lrange [split ${version} .] 0 1] .]
categories  graphics devel
maintainers nomaintainer
description 3D visualization toolkit
long_description    an open source, freely available software system  \
    for 3D computer graphics, image processing, and visualization     \
    used by thousands of researchers and developers around the world. \
    VTK consists of a C++ class library, and several interpreted      \
    interface layers including Tcl/Tk, Java, and Python.

homepage    http://www.vtk.org/
platforms   darwin freebsd
master_sites    http://www.vtk.org/files/release/${branch}/
checksums vtk-${version}.tar.gz md5 d59520d5f6c49c8b4e3b9227e341b19f \
          vtk-${version}.tar.gz sha1 e08ee5c9d738c2fe774fdb3111818b9899a7b751 \
          vtk-${version}.tar.gz rmd160 c6cdee0c76e243d21d802690f138faab1c6eb863\
      vtkdata-${version}.tar.gz md5 3cd99917ab1ec3ef369dd40db74b93b1 \
      vtkdata-${version}.tar.gz sha1 a625f4934d0fbaad2242ae2bc920084775438933 \
      vtkdata-${version}.tar.gz rmd160 5628fec27673d99426922dcd32b8d66a0d86c9ec

depends_build   bin:cmake:cmake \
        port:readline
distfiles   vtk-${version}.tar.gz \
        vtkdata-${version}.tar.gz
distname    VTK

use_parallel_build yes

post-extract {
    delete ${worksrcpath}/Utilities/vtktiff/tif_fax3sm.c
}

configure   { system "cd ${worksrcpath} && ${configure.env} cmake ${configure.args} ${worksrcpath}" }
configure.args  \
        -DBUILD_SHARED_LIBS:BOOL=ON \
        -DVTK_USE_RPATH:BOOL=ON \
        -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON \
        -DCMAKE_INSTALL_RPATH:STRING=${prefix}/lib/vtk-5.2 \
        -DCMAKE_INSTALL_NAME_DIR:STRING=${prefix}/lib/vtk-5.2 \
        -DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=ON \
        -DCMAKE_LIBRARY_PATH:PATH=${prefix}/lib \
        -DCMAKE_INCLUDE_PATH:PATH=${prefix}/include \
        -DCMAKE_INSTALL_PREFIX:PATH=${prefix} \
        -DVTK_INSTALL_PREFIX:PATH=${prefix} \
        -DVTK_USE_HYBRID:BOOL=ON \
        -DVTK_USE_TK:BOOL=OFF \
        -DVTK_WRAP_TCL:BOOL=OFF \
        -DTK_INCLUDE_PATH=${prefix}/include \
        -DTK_LIBRARY=${prefix}/lib/libtk.dylib \
        -DVTK_USE_CARBON:BOOL=OFF \
        -DVTK_USE_COCOA:BOOL=ON \
        -DVTK_DATA_ROOT:PATH=${prefix}/share/VTKData \
        -DVTK_USE_GL2PS:BOOL=ON \
        -DVTK_WRAP_PYTHON:BOOL=OFF

configure.env   \
        LDFLAGS="-L${prefix}/lib" \
        CPPFLAGS="-I${prefix}/include"

post-configure {
    reinplace "s|c++|c++ -L${prefix}/lib |" \
    ${worksrcpath}/Infovis/Testing/Cxx/CMakeFiles/InfovisCxxTests.dir/link.txt \
    ${worksrcpath}/IO/Testing/Cxx/CMakeFiles/IOCxxTests.dir/link.txt \
    ${worksrcpath}/Views/Testing/Cxx/CMakeFiles/ViewsCxxTests.dir/link.txt

    if {[variant_isset tcltk]} {
      reinplace "s|c++|c++ -L${prefix}/lib |" \
      ${worksrcpath}/Wrapping/Tcl/CMakeFiles/vtk.dir/link.txt
    }
}

build.env-append DYLD_LIBRARY_PATH=${worksrcpath}/bin

if {![variant_isset carbon]} {
    default_variants-append +x11 +tcltk
}
if {![variant_isset python26]} {
    default_variants-append python25
}

variant x11 conflicts carbon description {use X11} {
    depends_lib-append port:mesa port:Xft2 port:xorg-libXScrnSaver port:xorg-libXt
    configure.args-delete   -DVTK_USE_COCOA:BOOL=ON
    configure.args-append   \
        -DVTK_USE_COCOA:BOOL=OFF \
        -DVTK_USE_X:BOOL=ON \
        -DOPENGL_gl_LIBRARY:FILEPATH=${prefix}/lib/libGL.dylib \
        -DOPENGL_glu_LIBRARY:FILEPATH=${prefix}/lib/libGLU.dylib
}

variant tcltk conflicts carbon description {build with Tcl wrappers and Tk support} {
    configure.args-delete \
        -DVTK_USE_TK:BOOL=OFF \
        -DVTK_WRAP_TCL:BOOL=OFF
    configure.args-append \
        -DVTK_USE_TK:BOOL=ON \
        -DVTK_WRAP_TCL:BOOL=ON \
        -DTCL_INCLUDE_PATH=${prefix}/include \
        -DTCL_LIBRARY=${prefix}/lib/libtcl.dylib
}

variant carbon conflicts x11 tcltk description {Use Carbon.  Allows embedding VTK within qt4-mac (and py25-pyqt4 when used with Python)} {
    configure.args-delete \
        -DVTK_USE_COCOA:BOOL=ON \
        -DVTK_USE_CARBON:BOOL=OFF
    configure.args-append \
        -DVTK_USE_COCOA:BOOL=OFF \
        -DVTK_USE_CARBON:BOOL=ON
}

variant python requires python25 description {Compatibility variant, requires +python25} {}
variant python25 description {builds python2.5 wrappers} conflicts python26 {
    depends_build-append    port:python25
    configure.args-delete   \
        -DVTK_WRAP_PYTHON:BOOL=OFF
    configure.args-append   \
        -DPYTHON_DEBUG_LIBRARY:FILEPATH=${prefix}/lib/libpython2.5.dylib \
        -DPYTHON_EXECUTABLE:FILEPATH=${prefix}/bin/python2.5 \
        -DPYTHON_INCLUDE_PATH:FILEPATH=${prefix}/include/python2.5 \
        -DPYTHON_LIBRARY:FILEPATH=${prefix}/lib/libpython2.5.dylib \
        -DVTK_WRAP_PYTHON:BOOL=ON \
        -DVTK_INSTALL_NO_PYTHON:BOOL=ON
}

variant python26 description {builds python2.6 wrappers} conflicts python25 {
    depends_build-append    port:python26
    configure.args-delete   \
        -DVTK_WRAP_PYTHON:BOOL=OFF
    configure.args-append   \
        -DPYTHON_DEBUG_LIBRARY:FILEPATH=${prefix}/lib/libpython2.6.dylib \
        -DPYTHON_EXECUTABLE:FILEPATH=${prefix}/bin/python2.6 \
        -DPYTHON_INCLUDE_PATH:FILEPATH=${frameworks_dir}/Python.framework/Versions/2.6/include/python2.6 \
        -DPYTHON_LIBRARY:FILEPATH=${prefix}/lib/libpython2.6.dylib \
        -DVTK_WRAP_PYTHON:BOOL=ON \
        -DVTK_INSTALL_NO_PYTHON:BOOL=ON
}


set vtkdest ${destroot}${prefix}/share/doc/${name}

post-destroot {
    if {[variant_isset python25]} {
        file mkdir ${destroot}${prefix}/lib/python2.5/site-packages
        system "cd ${worksrcpath}/Wrapping/Python; ${prefix}/bin/python2.5 setup.py install --prefix=${prefix} --root=${destroot}"
    }

    if {[variant_isset python26]} {
        system "cd ${worksrcpath}/Wrapping/Python; ${prefix}/bin/python2.6 setup.py install --prefix=${frameworks_dir}/Python.framework/Versions/2.6/ --root=${destroot}"
    }

    xinstall -d -m 0755 ${vtkdest}
    file copy ${worksrcpath}/README.html ${vtkdest}
    file copy ${worksrcpath}/Copyright.txt ${vtkdest}
    file copy ${worksrcpath}/Testing.txt ${vtkdest}

    # Provide some examples
    file copy ${worksrcpath}/Examples ${vtkdest}
    foreach x {CommonCxxTests FilteringCxxTests GenericFilteringCxxTests GraphicsCxxTests IOCxxTests} { file copy ${worksrcpath}/bin/$x ${vtkdest}/Examples }
    foreach x {ImagingCxxTests RenderingCxxTests TestCxxFeatures TestInstantiator VTKBenchMark VolumeRenderingCxxTests WidgetsCxxTests} { file copy ${worksrcpath}/bin/$x ${vtkdest}/Examples }

    # Provide data files
    system "tar -C ${destroot}${prefix}/share -xzvf ${distpath}/vtkdata-${version}.tar.gz"
}
