archrelease: copy trunk to community-x86_64
[ArchLinux/community.git] / vtk / trunk / PKGBUILD
blobe2ee083ea6c06ba9cf03d629f438c4479d1ca69b
1 # Maintainer: Bruno Pagani <archange at archlinux dot org>
2 # Contributor: Evgeniy Alekseev <arcanis at archlinux dot org>
3 # Contributor: Michael Migliore <mcmigliore+aur@gmail.com>
4 # Contributor: Ray Rashif <schiv at archlinux dot org>
5 # Contributor: Andrzej Giniewicz <gginiu at gmail dot com>
6 # Contributor: Thomas Dziedzic <gostrc at gmail>
8 pkgname=vtk
9 pkgver=9.2.6
10 pkgrel=6
11 pkgdesc="Software system for 3D computer graphics, image processing, and visualization"
12 arch=(x86_64)
13 url="https://www.vtk.org/"
14 license=(BSD)
15 depends=(
16   double-conversion
17   gcc-libs
18   glibc
19   libtiff
20   onetbb
21   pugixml
23 makedepends=(
24   adios2
25   boost
26   cgns
27   cli11
28   cmake
29   doxygen
30   eigen
31   expat
32   ffmpeg
33   fmt
34   freetype2
35   gdal
36   git
37   gl2ps
38   glew
39   gnuplot
40   hdf5
41   java-environment=11
42   jsoncpp
43   libharu
44   libjpeg
45   liblas
46   libogg
47   libpng
48   libtheora
49   libxml2
50   libxt
51   lz4
52   mariadb-libs
53   netcdf
54   openimagedenoise
55   openmp
56   openmpi
57   openvdb
58   openvr
59   openxr
60   ospray
61   pdal
62   postgresql-libs
63   proj
64   python-matplotlib
65   python-mpi4py
66   qt5-base
67   qt5-tools
68   qt5-declarative
69   rapidjson
70   sqlite
71   tk
72   unixodbc
73   utf8cpp
74   verdict
75   wget
76   xz
77   zfp
78   zlib
80 # pegtl: https://gitlab.kitware.com/vtk/vtk/-/issues/18151
81 # exprtk, ioss: not packaged
82 optdepends=(
83   adios2
84   cgns
85   ffmpeg
86   fmt
87   gdal
88   gl2ps
89   glew
90   'gnuplot: plotting tools'
91   'graphviz: drawing tools'
92   hdf5
93   'java-runtime=11: java bindings'
94   jsoncpp
95   libarchive
96   libharu
97   liblas
98   lz4
99   mariadb-libs
100   netcdf
101   openimagedenoise
102   'openmpi: OpenMPI support'
103   openvdb
104   openvr
105   openxr
106   ospray
107   pdal
108   postgresql-libs
109   proj
110   'python: python bindings'
111   'python-matplotlib: for Matplotlib rendering'
112   'python-mpi4py: OpenMPI python support'
113   'qt5-declarative: QML plugin'
114   sqlite
115   'tk: tcl bindings'
116   unixodbc
117   verdict
119 options=(staticlibs)
120 source=(${url}/files/release/${pkgver%.*}/VTK-${pkgver}.tar.gz
121         https://github.com/Kitware/VTK/commit/1233ceec.patch
122         https://github.com/Kitware/VTK/commit/4d8283bc.patch)
123 sha256sums=('06fc8d49c4e56f498c40fcb38a563ed8d4ec31358d0101e8988f0bb4d539dd12'
124             '5f662d5052dc07ee43d690c5ffdc1880c5c6c4236945c03a40177ae3a6dc5917'
125             '82eae5864704b1d955c905d75e565380829b05bb6300c4614da2d19834e15014')
127 prepare() {
128   cd ${pkgname^^}-${pkgver}
129   # We have a patched fmt
130   sed -i "s|8.1.0|9.0.0|" ThirdParty/fmt/CMakeLists.txt
132   patch -p1 -i ../1233ceec.patch # Fix build with GCC 13
133   patch -p1 -i ../4d8283bc.patch
136 build() {
137   # To help cmake find java
138   export JAVA_HOME=/usr/lib/jvm/default
139   # To set tcl lib path
140   local _tkver=$(echo 'puts $tcl_version' | tclsh)
141   cmake -B build -S ${pkgname^^}-${pkgver} \
142     -DCMAKE_BUILD_TYPE=Release \
143     -DCMAKE_CXX_FLAGS="$CXXFLAGS -ffat-lto-objects" \
144     -DCMAKE_INSTALL_PREFIX=/usr \
145     -DCMAKE_INSTALL_LICENSEDIR=share/licenses/vtk \
146     -DCMAKE_SKIP_RPATH=OFF \
147     -DCMAKE_SKIP_INSTALL_RPATH=ON \
148     -DCMAKE_JAVA_COMPILE_FLAGS="-Xlint:-options" \
149     -DBUILD_SHARED_LIBS=ON \
150     -DVTK_BUILD_ALL_MODULES=ON \
151     -DVTK_INSTALL_TCL_DIR=/usr/lib/tcl${_tkver}/vtk/ \
152     -DVTK_LEGACY_REMOVE=ON \
153     -DVTK_SMP_ENABLE_OPENMP=ON \
154     -DVTK_SMP_IMPLEMENTATION_TYPE=TBB \
155     -DVTK_PYTHON_VERSION=3 \
156     -DVTK_USE_MPI=ON \
157     -DVTK_USE_TK=ON \
158     -DVTK_VERSIONED_INSTALL=OFF \
159     -DVTK_WRAP_JAVA=ON \
160     -DVTK_WRAP_PYTHON=ON \
161     -DVTKOSPRAY_ENABLE_DENOISER=ON \
162     -DVTKm_ENABLE_HDF5_IO=ON \
163     -DVTKm_ENABLE_MPI=ON \
164     -DVTKm_ENABLE_OPENMP=ON \
165     -DVTK_USE_EXTERNAL=ON \
166     -DVTK_MODULE_USE_EXTERNAL_VTK_exprtk=OFF \
167     -DVTK_MODULE_USE_EXTERNAL_VTK_ioss=OFF \
168     -DVTK_MODULE_USE_EXTERNAL_VTK_pegtl=OFF \
169     -DVTK_MODULE_ENABLE_VTK_DomainsMicroscopy=NO \
170     -DVTK_MODULE_ENABLE_VTK_FiltersOpenTURNS=NO \
171     -DOpenGL_GL_PREFERENCE=LEGACY \
172     -Wno-dev
173 #    -DFIDES_USE_EXTERNAL_RAPIDJSON=ON \
174   make -C build
177 package() {
178   make -C build DESTDIR="${pkgdir}" install
180   # Move the vtk.jar to the arch-specific location…
181   install -dv "${pkgdir}"/usr/share/java/vtk
182   mv -v "${pkgdir}"/usr/lib/java/vtk.jar "${pkgdir}"/usr/share/java/vtk
183   # …and the libs to the proper place
184   mv "${pkgdir}"/usr/lib/java/vtk-Linux-${CARCH}/*.so "${pkgdir}"/usr/lib/
185   rmdir "${pkgdir}"/usr/lib/java/{vtk-Linux-${CARCH}/,}
187   # byte-compile python modules since the CMake build does not do it
188   local site_packages=$(python -c "import site; print(site.getsitepackages()[0])")
189   python -m compileall -o 0 -o 1 -o 2 --hardlink-dupes -s "${pkgdir}" "${pkgdir}"${site_packages}
191   # Remove third party CMake patching for older versions than ours
192   rm -rv "${pkgdir}"/usr/lib/cmake/vtk/patches/3.{1{3,6,9},20}
193   # … as well as duplicate copies
194   rm -rv "${pkgdir}"/usr/lib/cmake/vtk/vtkm/{Find*.cmake,cmake/{Find*.cmake,3.15}}