PKGBUILDs/extra/vtk/PKGBUILD

221 lines
5.9 KiB
Bash
Raw Normal View History

2021-10-29 00:30:55 +00:00
# Maintainer: Evgeniy Alekseev <arcanis at archlinux dot org>
# Maintainer: Bruno Pagani <archange 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>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - remove make/optdepends on adios2, openimagedenoise, ospray
# - add makedepend on tbb, previously pulled in by ospray
2023-02-28 14:48:12 +00:00
# - add makedepend on nlohmann-json, previously pulled in by adios2
2021-11-07 21:28:53 +00:00
# - explicitly disable the fides, adios2 modules due to -DVTK_BUILD_ALL_MODULES=ON
2021-10-29 00:30:55 +00:00
# - generalize moving .so files in install
2022-04-23 20:02:02 +00:00
# - removed -ffat-lto-objects from CFLAGS
2021-10-29 00:30:55 +00:00
pkgname=vtk
2023-11-18 14:35:24 +00:00
# May need bootstrapping on upgrades due to circular vtk <-> opencascade dependency
2023-11-18 14:26:12 +00:00
pkgver=9.3.0
2023-11-18 14:28:47 +00:00
pkgrel=2
2021-10-29 00:30:55 +00:00
pkgdesc="Software system for 3D computer graphics, image processing, and visualization"
arch=(x86_64)
url="https://www.vtk.org/"
license=(BSD)
2023-05-03 19:12:26 +00:00
depends=(
double-conversion
gcc-libs
glibc
libtiff
onetbb
pugixml
)
makedepends=(
boost
cgns
cli11
cmake
doxygen
eigen
expat
2023-11-18 14:26:12 +00:00
fast_float
2023-05-03 19:12:26 +00:00
ffmpeg
fmt
freetype2
gdal
git
gl2ps
glew
gnuplot
hdf5
java-environment=11
jsoncpp
libharu
libjpeg
liblas
libogg
libpng
libtheora
libxml2
libxt
lz4
mariadb-libs
netcdf
2023-11-18 14:35:24 +00:00
opencascade
2023-05-03 19:12:26 +00:00
nlohmann-json
openmp
openmpi
openvdb
openvr
openxr
pdal
postgresql-libs
proj
python-matplotlib
python-mpi4py
qt5-base
qt5-tools
qt5-declarative
rapidjson
sqlite
tk
unixodbc
utf8cpp
verdict
wget
xz
zfp
zlib
)
2022-03-19 21:24:01 +00:00
# pegtl: https://gitlab.kitware.com/vtk/vtk/-/issues/18151
# exprtk, ioss: not packaged
2023-05-03 19:12:26 +00:00
optdepends=(
cgns
ffmpeg
fmt
gdal
gl2ps
glew
'gnuplot: plotting tools'
'graphviz: drawing tools'
hdf5
'java-runtime=11: java bindings'
jsoncpp
libarchive
libharu
liblas
lz4
mariadb-libs
netcdf
'openmpi: OpenMPI support'
openvdb
2023-11-18 14:26:12 +00:00
opencascade
2023-05-03 19:12:26 +00:00
openvr
openxr
pdal
postgresql-libs
proj
'python: python bindings'
'python-matplotlib: for Matplotlib rendering'
'python-mpi4py: OpenMPI python support'
'qt5-declarative: QML plugin'
sqlite
'tk: tcl bindings'
unixodbc
verdict
)
2021-10-29 00:30:55 +00:00
options=(staticlibs)
2023-05-14 16:27:38 +00:00
source=(${url}/files/release/${pkgver%.*}/VTK-${pkgver}.tar.gz
2023-11-18 14:26:12 +00:00
vtk-occt.patch
2023-05-14 16:27:38 +00:00
https://github.com/Kitware/VTK/commit/1233ceec.patch
2023-07-28 12:40:18 +00:00
https://github.com/Kitware/VTK/commit/4d8283bc.patch
2023-11-05 01:24:10 +00:00
fmt-10.patch
47ceab32.patch
fdb93d3e9.patch)
2023-11-18 14:26:12 +00:00
sha256sums=('fdc7b9295225b34e4fdddc49cd06e66e94260cb00efee456e0f66568c9681be9'
'df958eabc7dc4f5b33383ce0fb0f90a3ba202c1c2a24d3b5b9e7cfb1fb38b011'
2023-05-14 16:27:38 +00:00
'5f662d5052dc07ee43d690c5ffdc1880c5c6c4236945c03a40177ae3a6dc5917'
2023-07-28 12:40:18 +00:00
'82eae5864704b1d955c905d75e565380829b05bb6300c4614da2d19834e15014'
2023-11-05 01:24:10 +00:00
'c60aa3276a3d7c0e6ae4db5f18a8023ab319ac7d2ff66616936012097e6cebbe'
'd9e9eb9ebadd3ca066729732165f4420b0df10759defc17458a1b0b71255b36e'
'79eae9ff919a36f79ba91916fdc8b2c7312713ad13a6972a6d38220f229b1887')
2021-10-29 00:30:55 +00:00
prepare() {
2023-05-03 19:12:26 +00:00
cd ${pkgname^^}-${pkgver}
2021-11-07 16:38:12 +00:00
# We have a patched fmt
2023-11-18 14:26:12 +00:00
# sed -i "s|8.1.0|9.0.0|" ThirdParty/fmt/CMakeLists.txt
sed -i "s|3.9.0|5.1.0|" ThirdParty/fast_float/CMakeLists.txt
2023-05-14 16:27:38 +00:00
2023-11-18 14:26:12 +00:00
patch -Np1 -i "$srcdir"/vtk-occt.patch
# patch -p1 -i ../1233ceec.patch # Fix build with GCC 13
# patch -p1 -i ../4d8283bc.patch
# patch -p1 -i ../fmt-10.patch # Fix build with fmt 10
2023-11-05 01:24:10 +00:00
# Fix build with adios2 2.9
2023-11-18 14:26:12 +00:00
# patch -d ThirdParty/fides/vtkfides -p1 < ../47ceab32.patch
# patch -p1 < ../fdb93d3e9.patch
2021-10-29 00:30:55 +00:00
}
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)
2023-05-03 19:12:26 +00:00
cmake -B build -S ${pkgname^^}-${pkgver} \
2021-10-29 00:30:55 +00:00
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LICENSEDIR=share/licenses/vtk \
-DCMAKE_SKIP_RPATH=OFF \
-DCMAKE_SKIP_INSTALL_RPATH=ON \
2023-02-28 13:30:57 +00:00
-DCMAKE_JAVA_COMPILE_FLAGS="-Xlint:-options" \
2021-10-29 00:30:55 +00:00
-DBUILD_SHARED_LIBS=ON \
-DVTK_BUILD_ALL_MODULES=ON \
-DVTK_MODULE_ENABLE_VTK_IOADIOS2:STRING=NO \
2021-11-07 21:28:53 +00:00
-DVTK_MODULE_ENABLE_VTK_fides:STRING=NO \
2021-10-29 00:30:55 +00:00
-DVTK_INSTALL_TCL_DIR=/usr/lib/tcl${_tkver}/vtk/ \
-DVTK_LEGACY_REMOVE=ON \
2021-11-07 16:38:12 +00:00
-DVTK_SMP_ENABLE_OPENMP=ON \
2021-10-29 00:30:55 +00:00
-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 \
2021-11-07 16:38:12 +00:00
-DVTKOSPRAY_ENABLE_DENOISER=OFF \
-DVTKm_ENABLE_HDF5_IO=ON \
-DVTKm_ENABLE_MPI=ON \
-DVTKm_ENABLE_OPENMP=ON \
2021-11-07 21:28:53 +00:00
-DVTK_ENABLE_OSPRAY=OFF \
2021-10-29 00:30:55 +00:00
-DVTK_USE_EXTERNAL=ON \
2021-11-07 16:38:12 +00:00
-DVTK_MODULE_USE_EXTERNAL_VTK_exprtk=OFF \
-DVTK_MODULE_USE_EXTERNAL_VTK_ioss=OFF \
2021-10-29 00:30:55 +00:00
-DVTK_MODULE_USE_EXTERNAL_VTK_pegtl=OFF \
-DVTK_MODULE_ENABLE_VTK_DomainsMicroscopy=NO \
-DVTK_MODULE_ENABLE_VTK_FiltersOpenTURNS=NO \
2023-11-18 14:26:12 +00:00
-DVTK_MODULE_ENABLE_VTK_RenderingZSpace=NO \
2023-03-01 13:55:35 +00:00
-DOpenGL_GL_PREFERENCE=LEGACY \
2021-10-29 00:30:55 +00:00
-Wno-dev
2021-11-07 16:38:12 +00:00
# -DFIDES_USE_EXTERNAL_RAPIDJSON=ON \
2021-10-29 00:30:55 +00:00
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-*/,}
2022-07-23 00:24:17 +00:00
# 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}
2021-10-29 00:30:55 +00:00
# Remove third party CMake patching for older versions than ours
2023-02-28 13:30:57 +00:00
rm -rv "${pkgdir}"/usr/lib/cmake/vtk/patches/3.{1{3,6,9},20}
2021-10-29 00:30:55 +00:00
# … as well as duplicate copies
2021-12-10 03:06:26 +00:00
rm -rv "${pkgdir}"/usr/lib/cmake/vtk/vtkm/{Find*.cmake,cmake/{Find*.cmake,3.15}}
2021-10-29 00:30:55 +00:00
}