# Maintainer: Evgeniy Alekseev # Maintainer: Bruno Pagani # Contributor: Michael Migliore # Contributor: Ray Rashif # Contributor: Andrzej Giniewicz # Contributor: Thomas Dziedzic # ALARM: Kevin Mihelich # - remove make/optdepends on adios2, openimagedenoise, ospray # - add makedepend on tbb, previously pulled in by ospray # - explicitly disable the fides, adios2 modules due to -DVTK_BUILD_ALL_MODULES=ON # - generalize moving .so files in install # - removed -ffat-lto-objects from CFLAGS pkgname=vtk pkgver=9.1.0 pkgrel=23 pkgdesc="Software system for 3D computer graphics, image processing, and visualization" arch=(x86_64) url="https://www.vtk.org/" license=(BSD) depends=(gcc-libs double-conversion pugixml tbb) makedepends=(cmake boost doxygen ffmpeg gdal git gnuplot java-environment=11 liblas libxt mariadb-libs openmp openmpi openvdb openvr pdal postgresql-libs python-matplotlib qt5-base qt5-tools qt5-declarative tk unixodbc wget cgns cli11 eigen expat fmt freetype2 gl2ps glew hdf5 libjpeg jsoncpp libjsoncpp.so libharu proj libxml2 lz4 xz python-mpi4py netcdf libogg libpng rapidjson sqlite libtheora libtiff utf8cpp zfp zlib) # pegtl: https://gitlab.kitware.com/vtk/vtk/-/issues/18151 # exprtk, ioss: not packaged optdepends=('gnuplot: plotting tools' 'graphviz: drawing tools' 'java-runtime=11: java bindings' 'python: python bindings' 'python-mpi4py: OpenMPI python support' 'python-matplotlib: for Matplotlib rendering' 'openmpi: OpenMPI support' 'qt5-declarative: QML plugin' 'tk: tcl bindings' cgns ffmpeg fmt gdal gl2ps glew hdf5 jsoncpp libarchive libharu liblas lz4 mariadb-libs netcdf openvdb openvr pdal postgresql-libs proj sqlite unixodbc) source=(${url}/files/release/${pkgver%.*}/VTK-${pkgver}.tar.gz vtkm-tbb-2021.patch::https://gitlab.kitware.com/vtk/vtk-m/-/merge_requests/2509.patch vtk-ffmpeg5.patch::https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8863.patch vtk-python3.10.patch::https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8738.patch vtk-exodus-netcdf4.9-compat.patch::https://github.com/sandialabs/seacas/commit/5e1b19181110c52b76d13e3f60da2c8cf678c941.patch vtk-libharu-2.4.0.patch) options=(staticlibs) sha256sums=('8fed42f4f8f1eb8083107b68eaa9ad71da07110161a3116ad807f43e5ca5ce96' '37cff664c4eaacf44ecb995e62e9e54e54880bae0857d598c74660a2159ccb2e' '955ef22d2541beb9935557ef09a802b6504855a350f27ff056734679da8f0281' 'dbc9a67caf548cf5afd571018d91aadcfcf78ddf8c66ac75b0772935e26ad29f' '1272fafccd3d9677f3fd9cc0a70e47a21f6ec86379765e25c6bccd9053875259' '675707ec492182d1f0c8f4682775613dd9b5d315596af8df99ad4d758196e9c3') prepare() { cd VTK-${pkgver} # Fix build with libharu 2.4.0 patch -p1 < ../vtk-libharu-2.4.0.patch # We have a patched fmt sed -i "s|8.1.0|9.0.0|" ThirdParty/fmt/CMakeLists.txt # Fix build with TBB 2021 patch -p1 -d ThirdParty/vtkm/vtkvtkm/vtk-m < ../vtkm-tbb-2021.patch # Fix build with FFmpeg 5 patch -p1 < ../vtk-ffmpeg5.patch # Fix Python 3.10 compatibility https://gitlab.kitware.com/vtk/vtk/-/issues/18518 patch -p1 < ../vtk-python3.10.patch || true # Fix build with netCDF 4.9 sed -i 's|1999-2020|1999-2021|' ThirdParty/exodusII/vtkexodusII/src/ex_utils.c patch -p5 -d ThirdParty/exodusII/vtkexodusII/ < ../vtk-exodus-netcdf4.9-compat.patch } build() { # To help cmake find java export JAVA_HOME=/usr/lib/jvm/default # To set tcl lib path local _tkver=$(echo 'puts $tcl_version' | tclsh) cmake -B build -S VTK-${pkgver} \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LICENSEDIR=share/licenses/vtk \ -DCMAKE_SKIP_RPATH=OFF \ -DCMAKE_SKIP_INSTALL_RPATH=ON \ -DBUILD_SHARED_LIBS=ON \ -DVTK_BUILD_ALL_MODULES=ON \ -DVTK_MODULE_ENABLE_VTK_IOADIOS2:STRING=NO \ -DVTK_MODULE_ENABLE_VTK_fides:STRING=NO \ -DVTK_INSTALL_TCL_DIR=/usr/lib/tcl${_tkver}/vtk/ \ -DVTK_LEGACY_REMOVE=ON \ -DVTK_SMP_ENABLE_OPENMP=ON \ -DVTK_SMP_IMPLEMENTATION_TYPE=TBB \ -DVTK_PYTHON_VERSION=3 \ -DVTK_USE_MPI=ON \ -DVTK_USE_TK=ON \ -DVTK_VERSIONED_INSTALL=OFF \ -DVTK_WRAP_JAVA=ON \ -DVTK_WRAP_PYTHON=ON \ -DVTKOSPRAY_ENABLE_DENOISER=OFF \ -DVTKm_ENABLE_HDF5_IO=ON \ -DVTKm_ENABLE_MPI=ON \ -DVTKm_ENABLE_OPENMP=ON \ -DVTK_ENABLE_OSPRAY=OFF \ -DVTK_USE_EXTERNAL=ON \ -DVTK_MODULE_USE_EXTERNAL_VTK_exprtk=OFF \ -DVTK_MODULE_USE_EXTERNAL_VTK_ioss=OFF \ -DVTK_MODULE_USE_EXTERNAL_VTK_pegtl=OFF \ -DVTK_MODULE_ENABLE_VTK_DomainsMicroscopy=NO \ -DVTK_MODULE_ENABLE_VTK_FiltersOpenTURNS=NO \ -Wno-dev # -DFIDES_USE_EXTERNAL_RAPIDJSON=ON \ make -C build } package() { make -C build DESTDIR="${pkgdir}" install # Move the vtk.jar to the arch-specific location… install -dv "${pkgdir}"/usr/share/java/vtk mv -v "${pkgdir}"/usr/lib/java/vtk.jar "${pkgdir}"/usr/share/java/vtk # …and the libs to the proper place mv "${pkgdir}"/usr/lib/java/vtk-Linux-*/*.so "${pkgdir}"/usr/lib/ rmdir "${pkgdir}"/usr/lib/java/{vtk-Linux-*/,} # byte-compile python modules since the CMake build does not do it local site_packages=$(python -c "import site; print(site.getsitepackages()[0])") python -m compileall -o 0 -o 1 -o 2 --hardlink-dupes -s "${pkgdir}" "${pkgdir}"${site_packages} # Remove third party CMake patching for older versions than ours rm -rv "${pkgdir}"/usr/lib/cmake/vtk/patches/3.{1{3,6,8,9},20} # … as well as duplicate copies rm -rv "${pkgdir}"/usr/lib/cmake/vtk/vtkm/{Find*.cmake,cmake/{Find*.cmake,3.15}} }