[50222] trunk/dports/graphics
dweber at macports.org
dweber at macports.org
Mon Apr 27 16:27:02 PDT 2009
Revision: 50222
http://trac.macports.org/changeset/50222
Author: dweber at macports.org
Date: 2009-04-27 16:27:01 -0700 (Mon, 27 Apr 2009)
Log Message:
-----------
The default installation with shared libraries appears to work now; still lots of work to be done on wrapping for java, python, tcl, among other things.
Added Paths:
-----------
trunk/dports/graphics/vtk-devel/
trunk/dports/graphics/vtk-devel/Portfile
Added: trunk/dports/graphics/vtk-devel/Portfile
===================================================================
--- trunk/dports/graphics/vtk-devel/Portfile (rev 0)
+++ trunk/dports/graphics/vtk-devel/Portfile 2009-04-27 23:27:01 UTC (rev 50222)
@@ -0,0 +1,437 @@
+# -*- 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$
+
+PortSystem 1.0
+
+name vtk-devel
+version 5.4.0
+revision 0
+
+set branch [join [lrange [split ${version} .] 0 1] .]
+
+categories graphics math science devel
+
+maintainers dweber openmaintainer
+
+description 3D visualization toolkit (www.vtk.org)
+
+long_description \
+An open source, freely available software system for 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. \
+default_variants: +examples +testing +tclSys
+
+homepage http://www.vtk.org/
+master_sites http://www.vtk.org/files/release/${branch}
+
+distname vtk-${branch}
+distfiles vtk-${version}.tar.gz \
+ vtkdata-${version}.tar.gz
+
+checksums vtk-${version}.tar.gz \
+ md5 3e7c6d5c37602c935674d580a8dd43c0 \
+ sha1 a227caf932315d944cf72008d75df90dd4c554e7 \
+ rmd160 e2140fc35ed974f5fde6b418089554904e197c21 \
+ vtkdata-${version}.tar.gz \
+ md5 283d40f3e499b3a6102d86855d2ca20b \
+ sha1 a710227e7f7f25f481a36d2fa14bda49756bd39d \
+ ripemd160 160129a0580bd7b70b40d3f7fa61bbd78b586ad8
+
+platforms darwin
+
+#depends_build bin:cmake:cmake
+depends_build port:cmake \
+ port:gmake
+depends_lib port:readline
+
+# Using this dummy stage to inspect macport variables (using 'port -d fetch vtk-devel')
+#fetch { system "echo ${workbuildpath} && echo ${worksrcpath} && echo ${destroot}" }
+
+
+# Build in a separate directory from the source
+set workbuildpath ${workpath}/${distname}-build
+post-extract {
+ system "cd ${workpath}; mv VTK ${distname}; mv VTKData ${distname}-data;"
+ system "mkdir ${workbuildpath}"
+}
+configure {
+ system "cd ${workbuildpath} && ${configure.env} && cmake ${configure.args} ${worksrcpath}"
+}
+build {
+ system "cd ${workbuildpath} && gmake"
+}
+destroot {
+ system "cd ${workbuildpath} && gmake install DESTDIR=${destroot}"
+}
+
+# Set the equivalent of ${configure.ldflags} ${configure.cppflags}
+# cmake also has variables called:
+# CMAKE_LIBRARY_PATH_FLAG => specify -L compiler options
+# CMAKE_LINK_LIBRARY_FLAG => specify -l compiler options
+configure.env \
+ LDFLAGS=-L${prefix}/lib \
+ CXXFLAGS=-I${prefix}/include
+
+# To double-check all the cmake variable settings after the configure
+#cd ${workbuildpath}
+#sudo cmake -LAH ../vtk-${branch} > ~/cmake_vars.txt
+# Similarly, for an interactive configuration with ccmake, try:
+#cd ${workbuildpath}
+#sudo ccmake ../vtk-${branch}
+
+configure.args \
+ -DBUILD_DOCUMENTATION:BOOL=OFF \
+ -DBUILD_EXAMPLES:BOOL=OFF \
+ -DBUILD_TESTING:BOOL=OFF \
+ -DBUILD_SHARED_LIBS:BOOL=OFF \
+ -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
+ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
+ -DCMAKE_INSTALL_PREFIX:PATH=${prefix} \
+ -DCMAKE_INCLUDE_PATH:PATH=${prefix}/include \
+ -DCMAKE_LIBRARY_PATH:PATH=${prefix}/lib \
+ -DCMAKE_INSTALL_NAME_DIR:STRING=${prefix}/lib/${distname} \
+ -DVTK_DATA_ROOT:PATH=${prefix}/share/${distname}-data \
+ -DVTK_DEBUG_LEAKS:BOOL=ON \
+ -DVTK_USE_HYBRID:BOOL=ON \
+ -DVTK_USE_COCOA:BOOL=ON \
+ -DVTK_USE_CARBON:BOOL=OFF \
+ -DVTK_USE_X:BOOL=OFF \
+ -DVTK_USE_GUISUPPORT:BOOL=ON \
+ -DVTK_USE_INFOVIS:BOOL=ON \
+ -DVTK_USE_PARALLEL:BOOL=ON \
+ -DVTK_USE_RENDERING:BOOL=ON \
+ -DVTK_USE_VIEWS:BOOL=ON \
+ -DVTK_WRAP_TCL:BOOL=OFF \
+ -DVTK_WRAP_JAVA:BOOL=OFF \
+ -DVTK_WRAP_PYTHON:BOOL=OFF
+
+
+ #-DVTK_USE_RPATH:BOOL=OFF \
+ #-DVTK_REQUIRED_EXE_LINKER_FLAGS:STRING=-rpath ${prefix}/lib \
+ #-DCMAKE_EXE_LINKER_FLAGS:STRING=-rpath ${prefix}/lib \
+
+
+
+# PLATFORMS: platform darwin <version>
+# Can be used to handle different tasks depending
+# on the version of Mac OS X. The version can be:
+# 6 for 10.2 Jaguar,
+# 7 for 10.3 Panther,
+# 8 for 10.4 Tiger, or
+# 9 for 10.5 Leopard.
+
+platform darwin 8 {
+ # I have not tested this [dweber]
+ depends_build-append \
+ port:gcc40
+ configure.env-append \
+ CC=/usr/bin/gcc-4.0 \
+ CXX=/usr/bin/cpp-4.0 \
+ MACOSX_DEPLOYMENT_TARGET=10.4
+}
+
+#VTK_REQUIRED_OBJCXX_FLAGS "-fobjc-gc"
+# When building VTK with Cocoa, in 10.5, Cocoa supports two memory models:
+# reference counting and garbage collection. This compiler flag lets it work with both.
+platform darwin 9 {
+ configure.env-append \
+ MACOSX_DEPLOYMENT_TARGET=10.5
+ configure.args-append \
+ VTK_REQUIRED_OBJCXX_FLAGS="-fobjc-gc"
+}
+
+
+# ------------------------------------------------------------------
+# VARIANTS
+#
+# variant name [requires variant] [conflicts variant] [description description]
+
+default_variants \
+ +cocoa \
+ +data \
+ +examples \
+ +shared
+
+variant data description {Install the example data [default]} {
+}
+
+
+variant doc description {Build the doxygen documentation} {
+ depends_build-append \
+ port:doxygen
+ configure.args-append \
+ -DBUILD_DOCUMENTATION:BOOL=ON
+}
+
+
+variant examples description {Build and install VTK examples [default]} {
+ configure.args-delete \
+ -DBUILD_EXAMPLES:BOOL=OFF
+ configure.args-append \
+ -DBUILD_EXAMPLES:BOOL=ON
+}
+
+
+variant testing description {Build VTK tests} {
+ configure.args-delete \
+ -DBUILD_TESTING:BOOL=OFF
+ configure.args-append \
+ -DBUILD_TESTING:BOOL=ON
+}
+
+
+variant tclSys conflicts tclMacPorts description {Tcl Wrapper (System Tcl/Tk)} {
+ configure.args-delete \
+ -DVTK_WRAP_TCL:BOOL=OFF
+ configure.args-append \
+ -DVTK_WRAP_TCL:BOOL=ON \
+ -DTCL_TCLSH:FILEPATH=/usr/bin/tclsh \
+ -DTCL_INCLUDE_PATH:PATH=/System/Library/Frameworks/Tcl.framework/Headers \
+ -DTCL_LIBRARY:FILEPATH=/System/Library/Frameworks/tcl.framework \
+ -DTK_INCLUDE_PATH:PATH=/System/Library/Frameworks/Tk.framework/Headers \
+ -DTK_LIBRARY:FILEPATH=/System/Library/Frameworks/tk.framework
+}
+
+# This provides a tcl variant that uses the macports tcl installation. (It seems
+# vtk 5.2 does not work with tcl8.5 - macports has 8.5, as of Sep 2008).
+variant tclMacPorts conflicts tclSys description {Tcl Wrapper (MacPorts Tcl/Tk)} {
+ depends_lib-append \
+ port:tcl \
+ port:tk
+ configure.args-delete \
+ -DVTK_WRAP_TCL:BOOL=OFF
+ configure.args-append \
+ -DVTK_WRAP_TCL:BOOL=ON \
+ -DTCL_TCLSH:FILEPATH=${prefix}/bin/tclsh \
+ -DTCL_INCLUDE_PATH:PATH=${prefix}/include \
+ -DTCL_LIBRARY:FILEPATH=${prefix}/lib \
+ -DTK_INCLUDE_PATH:PATH=${prefix}/include \
+ -DTK_LIBRARY:FILEPATH=${prefix}/lib
+}
+# /opt/local/lib/tclConfig.sh
+# /opt/local/lib/tkConfig.sh
+
+
+variant java description {Java wrapping for VTK} {
+ configure.args-append \
+ -DVTK_WRAP_JAVA:BOOL=ON
+}
+
+
+variant python requires shared description {Python Wrapping for VTK} {
+ depends_build-append port:python26
+ configure.args-delete \
+ -DVTK_WRAP_PYTHON:BOOL=OFF \
+ configure.args-append \
+ -DVTK_WRAP_PYTHON:BOOL=ON \
+ -DVTK_NO_PYTHON_THREADS:BOOL=OFF \
+ -DPYTHON_INCLUDE_PATH:FILEPATH=${prefix}/include/python2.6 \
+ -DPYTHON_LIBRARY:FILEPATH=${prefix}/lib/libpython2.6.dylib \
+ -DPYTHON_DEBUG_LIBRARY:FILEPATH=${prefix}/lib/libpython2.6.dylib \
+ -DPYTHON_EXECUTABLE:FILEPATH=${prefix}/bin/python2.6 \
+ -DVTK_PYTHON_SETUP_ARGS:STRING="--prefix=${prefix} --root=${destdir}"
+}
+
+
+# ---------------------------------------------------------
+# There is a problem with RPATH config for the shared libs.
+# Until this is fixed, it will not be a default variant.
+
+variant shared description {Build shared libraries [default]} {
+ configure.args-delete \
+ -DBUILD_SHARED_LIBS:BOOL=OFF
+ configure.args-append \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DCMAKE_SKIP_BUILD_RPATH:BOOL=ON \
+ -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON \
+ -DCMAKE_INSTALL_RPATH:STRING=${prefix}/lib/${distname} \
+ -DVTK_USE_RPATH:BOOL=ON
+}
+
+# CMAKE_EXE_LINKER_FLAGS:STRING=
+
+# -DVTK_INSTALL_LIB_DIR:STRING=${prefix}/lib/vtk-5.2
+# -DVTK_USE_RPATH=ON \
+# -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF \
+
+# -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON \
+# Cannot use this RPATH setting because the build tree is
+# used to bootstrap the build process, eg:
+#
+#[ 4%] Generating vtkGLSLShaderLibrary.h
+#dyld: Library not loaded: "/opt/local/lib/vtk-5.2"/libvtksys.5.2.dylib
+# Referenced from: /opt/local/var/macports/build/_Users_dweber_ports_graphics_vtk5/work/VTK/Utilities/MaterialLibrary/../../bin/ProcessShader
+# Reason: image not found
+
+# Might need variants for carbon vs. cocoa. When doing a shared library
+# build, must use carbon, not cocoa.
+
+
+variant carbon conflicts {cocoa x11} description {Build with Carbon} {
+ 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 cocoa conflicts {carbon x11} description {Build with Cocoa [Default]} {
+}
+
+
+variant x11 conflicts {cocoa carbon} description {Build with X11} {
+ #depends_build-append \
+ port:xorg-libs \
+ port:xorg-proto
+ configure.args-delete \
+ -DVTK_USE_COCOA:BOOL=ON \
+ -DVTK_USE_X:BOOL=OFF
+ configure.args-append \
+ -DVTK_USE_COCOA:BOOL=OFF \
+ -DVTK_USE_X:BOOL=ON \
+ -DOPENGL_gl_LIBRARY:FILEPATH=${x11prefix}/lib/libGL.dylib \
+ -DOPENGL_glu_LIBRARY:FILEPATH=${x11prefix}/lib/libGLU.dylib \
+ -DOPENGL_INCLUDE_DIR:PATH=${x11prefix}/include \
+ -DVTK_GLEXT_FILE:FILEPATH=${x11prefix}/include/GL/glext.h \
+ -DVTK_GLXEXT_FILE:FILEPATH=${x11prefix}/include/GL/glxext.h
+ -DVTK_OPENGL_HAS_OSMESA:BOOL=OFF
+}
+
+
+# This mesaOpenGL variant may not require the x11 variant, but the
+# assumption here is that it's more likely to work with it than without it.
+
+variant mesaOpenGL requires {x11} description {Use mesa OpenGL} {
+ depends_build-append \
+ port:mesa
+ configure.args-append \
+ -DOPENGL_INCLUDE_DIR:PATH=${prefix}/include \
+ -DOPENGL_gl_LIBRARY:FILEPATH=${prefix}/lib/libGL.dylib \
+ -DOPENGL_glu_LIBRARY:FILEPATH=${prefix}/lib/libGLU.dylib \
+ -DVTK_GLEXT_FILE:FILEPATH=${prefix}/include/GL/glext.h \
+ -DVTK_GLXEXT_FILE:FILEPATH=${prefix}/include/GL/glxext.h \
+ -DVTK_OPENGL_HAS_OSMESA:BOOL=ON
+}
+
+
+variant mpi description {Use message passing interface (MPI) for parallel support} {
+ depends_lib-append \
+ port:mpich2
+ configure.args-append \
+ -DVTK_USE_MPI:BOOL=ON
+}
+
+
+variant mysql description {Build the MySQL driver for vtkSQLDatabase} {
+ depends_build-append \
+ port:mysql5
+ configure.args-append \
+ -DVTK_USE_MYSQL:BOOL=ON
+}
+
+
+variant pgsql description {Build the PostgreSQL driver for vtkSQLDatabase} {
+ depends_build-append \
+ port:libpqxx
+ configure.args-append \
+ -DVTK_USE_POSTGRES:BOOL=ON
+}
+
+
+variant odbc description {Build the ODBC database interface} {
+ depends_build-append \
+ port:unixODBC
+ configure.args-append \
+ -DVTK_USE_ODBC:BOOL=ON
+}
+
+
+# ------------------------------------------------------------------
+# POST DESTROOT
+
+set vtkDocPath ${destroot}${prefix}/share/doc/${distname}
+set vtkDataPath ${destroot}${prefix}/share/${distname}-data
+
+# Define variables used by install_name_tool for
+# the shared libary installation RPATH
+set libdestStr ${destroot}${prefix}/bin/libvtk
+set libinstStr ${prefix}/lib/${distname}/libvtk
+
+post-destroot {
+
+ # Provide data files
+ xinstall -d -m 0755 ${vtkDataPath}
+ system "tar -C ${vtkDataPath} -zxvf ${distpath}/vtkdata-${version}.tar.gz"
+ system "mv ${vtkDataPath}/VTKData/* ${vtkDataPath}/"
+ system "rm -rf ${vtkDataPath}/VTKData"
+
+ # Add basic documentation
+ xinstall -d -m 0755 ${vtkDocPath}
+ file copy ${worksrcpath}/README.html ${vtkDocPath}
+ file copy ${worksrcpath}/Copyright.txt ${vtkDocPath}
+ file copy ${worksrcpath}/Testing.txt ${vtkDocPath}
+
+ # Copy examples to the documentation path
+ if {[variant_isset examples]} {
+ file copy ${worksrcpath}/Examples ${vtkDocPath}
+ }
+
+ # Provide some tests in the documentation path
+ if {[variant_isset testing]} {
+ foreach x { \
+ CommonCxxTests \
+ FilteringCxxTests \
+ GenericFilteringCxxTests \
+ GraphicsCxxTests \
+ IOCxxTests \
+ ImagingCxxTests \
+ RenderingCxxTests \
+ TestCxxFeatures \
+ TestInstantiator \
+ VTKBenchMark \
+ VolumeRenderingCxxTests \
+ WidgetsCxxTests } \
+ {
+ file copy ${worksrcpath}/bin/$x ${vtkDocPath}/Examples
+ }
+ }
+
+ #if {[variant_isset shared]} {
+ # Must set RPATH on all .dylib for shared variant; the RPATH settings
+ # in the build are hi-jacked by the DESTDIR set by macports during
+ # 'make install'. Add some system code here to correct the RPATH
+ # settings for shared libs? Perhaps add the system code to the shared
+ # variant only.
+
+ # Use install_name_tool to change the
+ # RPATH settings for each .dylib file.
+
+ # This doesn't work!
+ #system "cd ${destroot}${prefix}/bin; install_name_tool -change $libdestStr $libinstStr $*{version}.dylib"
+ # See
+ # http://qin.laya.com/tech_coding_help/dylib_linking.html
+
+ #for f in `otool -L libvtkRendering.5.2.0.dylib`; do
+ # echo $f | grep $libdestStr;
+ #done
+
+ # otool -L ${dylib} | grep ${libdestStr} | sed s/.dylib.*/.dylib/
+
+ # http://guide.macports.org/chunked/reference.phases.html
+ # During the destroot phase, macports issues:
+ # make install DESTDIR=${destroot}
+ # in ${worksrcpath}.
+ #}
+}
+
+# This may be useful to uninstall the port:
+# for f in `cat install_manifest.txt`; do echo $f; sudo rm $f; done
+#
+# The installation is going into:
+# /opt/local/include/vtk-5.2/
+# /opt/local/lib/vtk-5.2/
+# /opt/local/bin/vtk*
+
Property changes on: trunk/dports/graphics/vtk-devel/Portfile
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20090427/57468cc3/attachment-0001.html>
More information about the macports-changes
mailing list