summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 7741c19f50e15b8bd02152fc5f21a322dcb6f3f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# Maintainer: domanov <domanov at gmail dot com>
# Contributor: Bruno Pagani <archange at archlinux dot org>
# Contributor: Evgeniy Alekseev <arcanis at archlinux dot org>
# Contributor: Michael Migliore <mcmigliore+aur@gmail.com>
# Contributor: Ray Rashif <schiv at archlinux dot org>
# Contributor: Andrzej Giniewicz <gginiu at gmail dot com>
# Contributor: Thomas Dziedzic <gostrc at gmail>

pkgname=vtk-nowraps
pkgver=9.1.0
pkgrel=1
pkgdesc="Software system for 3D computer graphics, image processing, and visualization. Stripped version with no python and java wrappers"
arch=(x86_64)
url="https://www.vtk.org/"
license=(BSD)
conflicts=('vtk')
provides=('vtk=9.1.0')
depends=(gcc-libs double-conversion pugixml tbb)
makedepends=(adios2 cmake boost doxygen ffmpeg gdal git gnuplot java-environment=11
             liblas libxt mariadb-libs openimagedenoise openmp openmpi openvdb
             openvr ospray pdal postgresql-libs python-matplotlib qt5-base
             qt5-tools qt5-webkit qt5-x11extras 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'
            'openmpi: OpenMPI support'
            'qt5-x11extras'
            'qt5-webkit: WebKit support'
            'tk: tcl bindings'
            adios2
            cgns
            ffmpeg
            fmt
            gdal
            gl2ps
            glew
            hdf5
            jsoncpp
            libarchive
            libharu
            liblas
            lz4
            mariadb-libs
            netcdf
            openimagedenoise
            openvdb
            openvr
            ospray
            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)
options=(staticlibs)
sha256sums=('8fed42f4f8f1eb8083107b68eaa9ad71da07110161a3116ad807f43e5ca5ce96'
            '37cff664c4eaacf44ecb995e62e9e54e54880bae0857d598c74660a2159ccb2e'
            '955ef22d2541beb9935557ef09a802b6504855a350f27ff056734679da8f0281'
            # 'dbc9a67caf548cf5afd571018d91aadcfcf78ddf8c66ac75b0772935e26ad29f'
            '1272fafccd3d9677f3fd9cc0a70e47a21f6ec86379765e25c6bccd9053875259')

prepare() {
  cd VTK-${pkgver}
  # We have a patched libharu
  sed -i "s|2.4.0|2.3.0|" ThirdParty/libharu/CMakeLists.txt
  # We have a patched fmt
  sed -i "s|8.1.0|8.0.1|" 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_CXX_FLAGS="$CXXFLAGS -ffat-lto-objects" \
    -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=OFF \
    -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=OFF \
    -DVTK_WRAP_PYTHON=OFF \
    -DVTKOSPRAY_ENABLE_DENOISER=ON \
    -DVTKm_ENABLE_HDF5_IO=OFF \
    -DVTKm_ENABLE_MPI=ON \
    -DVTKm_ENABLE_OPENMP=ON \
    -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-${CARCH}/*.so "${pkgdir}"/usr/lib/
  # rmdir "${pkgdir}"/usr/lib/java/{vtk-Linux-${CARCH}/,}

  # # 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}}
}