1PORTNAME= vtk 2DISTVERSION= 9.2.6 3PORTREVISION= 1 4CATEGORIES= math graphics 5MASTER_SITES= https://vtk.org/files/release/${VTK_SHORT_VER}/ 6PKGNAMESUFFIX= 9 7DISTNAME= ${PORTNAME:tu}-${DISTVERSION} 8 9MAINTAINER= ports@MidnightBSD.org 10COMMENT= Visualization toolkit 11WWW= https://vtk.org/ 12 13LICENSE= bsd3 14 15LIB_DEPENDS= \ 16 libexpat.so:textproc/expat2 \ 17 libfreetype.so:print/freetype2 \ 18 libhdf5.so:science/hdf5 \ 19 libnetcdf.so:science/netcdf \ 20 libpng.so:graphics/png \ 21 libtiff.so:graphics/tiff 22 23USES= cmake compiler:c++11-lang gl jpeg localbase xorg 24USE_LDCONFIG= ${PREFIX}/lib/vtk-${VTK_SHORT_VER} 25USE_XORG= ice x11 xt xext sm xcursor xfixes xrender 26 27CFLAGS_powerpc64le= -DSQLITE_BYTEORDER=1234 28CMAKE_ON= BUILD_SHARED_LIBS \ 29 VTK_INSTALL_NO_DOCUMENTATION \ 30 Module_vtkTestingCore Module_vtkTestingRendering 31.for m in expat freetype hdf5 jpeg netcdf png tiff zlib # mpi4py should be here, but this fails, see https://gitlab.kitware.com/vtk/vtk/-/issues/18693 32CMAKE_ON+= VTK_MODULE_USE_EXTERNAL_VTK_${m} 33.endfor 34CMAKE_ARGS= -DVTK_INSTALL_LIBRARY_DIR=lib/vtk-${VTK_SHORT_VER} \ 35 -DVTK_INSTALL_ARCHIVE_DIR=lib/vtk-${VTK_SHORT_VER} \ 36 -DVTK_INSTALL_QT_DIR=/${QT_LIBDIR_REL}/plugins/designer \ 37 -DSTAGEDIR=${STAGEDIR} 38 # all build options are documented here: https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/build.md 39 # all modules can be obtailed by: find . -name vtk.module 40 # there's also CMake/vtkWrapSettings.cmake with options 41 42# disable finding Qt6 43CMAKE_ON+= CMAKE_DISABLE_FIND_PACKAGE_Qt6 44 45# enable all modules 46#CMAKE_ON+= VTK_BUILD_ALL_MODULES 47 48VTK_SHORT_VER= ${PORTVERSION:R} 49 50DOCSDIR= ${PREFIX}/share/doc/vtk-${VTK_SHORT_VER} 51DATADIR= ${PREFIX}/share/vtk-${VTK_SHORT_VER} 52 53# Options 54OPTIONS_DEFINE= DESIGNER DOCS OMPI OSMESA PYTHON QT5 EXAMPLES 55OPTIONS_DEFAULT= OMPI PYTHON QT5 # vtk python binding is needed by other packages, and is unfortunately is unseparable. It is a candidate to be a subpackage. 56OSMESA_DESC= Use Mesa for off-screen rendering 57OMPI_DESC= OpenMPI (Message Passing Interface) support 58DESIGNER_DESC= Build the Qt Designer plugin 59OPTIONS_SUB= yes 60 61# Option groups that enable groups of modules in VTK 62VTK_GROUPS= JAVA TCLTK 63OPTIONS_GROUP= GROUPS 64OPTIONS_GROUP_GROUPS= ${VTK_GROUPS} 65GROUPS_DESC= Groups 66.for w in ${VTK_GROUPS} 67$w_DESC= Enable $w group 68.endfor 69 70PYTHON_USES= python 71PYTHON_CMAKE_BOOL= VTK_WRAP_PYTHON 72PYTHON_CMAKE_ON= -DVTK_PYTHON_VERSION=${PYTHON_MAJOR_VER} -DPython3_EXECUTABLE=${PYTHON_CMD} 73PYTHON_VARS= SUB_FILES=PKG-INFO SUB_LIST=PORTVERSION=${PORTVERSION} 74 75QT5_USES= qt:5 76QT5_USE= QT=core,declarative,gui,network,opengl,sql,uiplugin,widgets,x11extras,qmake,buildtools # qmake and buildtools should be with :build, but see https://gitlab.kitware.com/vtk/vtk/-/issues/18705 77QT5_CMAKE_ON= -DVTK_GROUP_ENABLE_Qt:STRING=YES \ 78 -DCMAKE_PREFIX_PATH:STRING=${LOCALBASE}/lib/qt5 79 80#QT6_USES= qt:6 81#QT6_USE= QT=base,declarative,tools:build 82#QT6_CMAKE_ON= -DVTK_GROUP_ENABLE_Qt:STRING=YES \ 83 -DCMAKE_PREFIX_PATH:STRING=${LOCALBASE}/lib/qt5 84 85DESIGNER_CMAKE_BOOL= QT_DESIGNER_PLUGIN 86DESIGNER_USE= QT=designer 87DESIGNER_IMPLIES= QT5 88 89OMPI_CMAKE_BOOL= VTK_USE_MPI 90OMPI_USES= mpi:openmpi 91OMPI_CMAKE_ON= -DMPI_HOME=${LOCALBASE}/mpi/openmpi 92OMPI_LDFLAGS= ${MPI_LIBS} 93 94OSMESA_CMAKE_ON= -DVTK_OPENGL_HAS_OSMESA:BOOL=ON \ 95 -DOSMESA_INCLUDE_DIR:PATH=${LOCALBASE}/include/Mesa \ 96 -DOSMESA_LIBRARY:FILEPATH=${LOCALBASE}/lib/libOSMesa.so \ 97 -DOPENGL_gl_LIBRARY:FILEPATH=${LOCALBASE}/lib/libOSMesa.so \ 98 -DVTK_USE_X:BOOL=OFF 99OSMESA_LIB_DEPENDS= libOSMesa.so:graphics/libosmesa 100 101JAVA_USES= java 102JAVA_CMAKE_BOOL= VTK_WRAP_JAVA 103JAVA_CMAKE_ON= -DJAVA_INCLUDE_PATH:PATH=${JAVA_HOME}/include \ 104 -DJAVA_AWT_LIBRARY:PATH=${JAVA_HOME}/jre/lib/${ARCH}/libjawt.so \ 105 -DJAVA_JVM_LIBRARY:PATH=${JAVA_HOME}/jre/lib/${ATCH}/libjava.so 106 107TCLTK_USES= tk 108TCLTK_CMAKE_ON= -DVTK_GROUP_ENABLE_Tk:STRING=YES \ 109 -DTCL_INCLUDE_PATH:PATH=${TCL_INCLUDEDIR} \ 110 -DTK_INCLUDE_PATH:PATH=${TK_INCLUDEDIR} \ 111 -DVTK_INSTALL_TCL_DIR=lib/vtk-${VTK_SHORT_VER} 112 113DOCS_CMAKE_BOOL= BUILD_DOCUMENTATION 114DOCS_BUILD_DEPENDS= doxygen:devel/doxygen 115 116EXAMPLES_CMAKE_BOOL= BUILD_EXAMPLES 117 118.include <bsd.mport.options.mk> 119 120.if !${PORT_OPTIONS:MOSMESA} 121USES+= gl 122USE_GL= gl glu 123.endif 124 125.if ${PORT_OPTIONS:MPYTHON} && ${PORT_OPTIONS:MOMPI} 126BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mpi4py>0:net/py-mpi4py@${PY_FLAVOR} 127RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mpi4py>0:net/py-mpi4py@${PY_FLAVOR} 128.endif 129 130CONFLICTS= vtk6 vtk8 131 132do-install-PYTHON-on: 133 # cmake doesn't install pip's .egg-info: https://gitlab.kitware.com/vtk/vtk/-/issues/18087 134 @${MKDIR} ${FAKE_DESTDIR}${PYTHON_SITELIBDIR}/vtk-${DISTVERSION}-py${PYTHON_VER}.egg-info 135 @${INSTALL_DATA} ${WRKDIR}/PKG-INFO ${FAKE_DESTDIR}${PYTHON_SITELIBDIR}/vtk-${DISTVERSION}-py${PYTHON_VER}.egg-info 136 # workaround for: VTK installs mpi4py which makes it to conflict with the standalone mpi4py package, see https://gitlab.kitware.com/vtk/vtk/-/issues/18691 137 -${RM} -r ${FAKE_DESTDIR}${PYTHON_SITELIBDIR}/mpi4py 138 139post-install: # autoplist: thousands of files, complex dependencies on options 140 @cd ${PREFIX} && \ 141 ${FIND} * -type f -or -type l >> ${TMPPLIST} 142 143.include <bsd.port.mk> 144