# Maintainer: Sergey Popov # Contributor: Mario Emmenlauer _realname=vtk pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=9.3.0 pkgrel=8 pkgdesc="A software system for 3D computer graphics, image processing and visualization (mingw-w64)" arch=('any') mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') url="https://www.vtk.org/" msys2_repository_url="https://gitlab.kitware.com/vtk/vtk" msys2_references=( 'archlinux: vtk' "cpe: cpe:/a:vtk:vtk" ) license=("spdx:BSD-3-Clause") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-double-conversion" "${MINGW_PACKAGE_PREFIX}-expat" "${MINGW_PACKAGE_PREFIX}-fmt" "${MINGW_PACKAGE_PREFIX}-freetype" "${MINGW_PACKAGE_PREFIX}-glew" "${MINGW_PACKAGE_PREFIX}-tbb" "${MINGW_PACKAGE_PREFIX}-jsoncpp" "${MINGW_PACKAGE_PREFIX}-libharu" "${MINGW_PACKAGE_PREFIX}-libjpeg" "${MINGW_PACKAGE_PREFIX}-libtiff" "${MINGW_PACKAGE_PREFIX}-libwinpthread-git" "${MINGW_PACKAGE_PREFIX}-lz4" "${MINGW_PACKAGE_PREFIX}-omp" "${MINGW_PACKAGE_PREFIX}-openxr-sdk" "${MINGW_PACKAGE_PREFIX}-pugixml" "${MINGW_PACKAGE_PREFIX}-xz" "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ninja" "${MINGW_PACKAGE_PREFIX}-adios2" "${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-cgns" "${MINGW_PACKAGE_PREFIX}-cli11" "${MINGW_PACKAGE_PREFIX}-eigen3" "${MINGW_PACKAGE_PREFIX}-fast_float" "${MINGW_PACKAGE_PREFIX}-ffmpeg" "${MINGW_PACKAGE_PREFIX}-fontconfig" "${MINGW_PACKAGE_PREFIX}-gdal" "${MINGW_PACKAGE_PREFIX}-gl2ps" "${MINGW_PACKAGE_PREFIX}-hdf5" "${MINGW_PACKAGE_PREFIX}-liblas" "${MINGW_PACKAGE_PREFIX}-libmariadbclient" "${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-libogg" "${MINGW_PACKAGE_PREFIX}-libtheora" "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-netcdf" "${MINGW_PACKAGE_PREFIX}-openslide" "${MINGW_PACKAGE_PREFIX}-opencascade" "${MINGW_PACKAGE_PREFIX}-openturns" "${MINGW_PACKAGE_PREFIX}-openvdb" "${MINGW_PACKAGE_PREFIX}-openvr" "${MINGW_PACKAGE_PREFIX}-pdal" # "${MINGW_PACKAGE_PREFIX}-pegtl" https://gitlab.kitware.com/vtk/vtk/-/issues/18151 "${MINGW_PACKAGE_PREFIX}-postgresql" "${MINGW_PACKAGE_PREFIX}-proj" "${MINGW_PACKAGE_PREFIX}-python" "${MINGW_PACKAGE_PREFIX}-qt6-declarative" "${MINGW_PACKAGE_PREFIX}-sqlite3" # "${MINGW_PACKAGE_PREFIX}-tk" "${MINGW_PACKAGE_PREFIX}-unixodbc" "${MINGW_PACKAGE_PREFIX}-utf8cpp" ) optdepends=("${MINGW_PACKAGE_PREFIX}-adios2: I/O ADIOS2" "${MINGW_PACKAGE_PREFIX}-boost: InfovisBoost and InfovisBoostGraphAlgorithms modules" "${MINGW_PACKAGE_PREFIX}-cgns: CGNS Reader" "${MINGW_PACKAGE_PREFIX}-ffmpeg: I/O FFMPEG" "${MINGW_PACKAGE_PREFIX}-fontconfig: Fontconfig Rendering" "${MINGW_PACKAGE_PREFIX}-gdal: I/O GDAL" "${MINGW_PACKAGE_PREFIX}-gl2ps: PS Rendering" "${MINGW_PACKAGE_PREFIX}-hdf5: I/O HDF5" "${MINGW_PACKAGE_PREFIX}-liblas: I/O LAS" "${MINGW_PACKAGE_PREFIX}-libmariadbclient: I/O MySQL/MariaDB" "${MINGW_PACKAGE_PREFIX}-libpng: I/O Images" "${MINGW_PACKAGE_PREFIX}-libogg: I/O OGG and Theora" "${MINGW_PACKAGE_PREFIX}-libtheora: I/O OGG and Theora" "${MINGW_PACKAGE_PREFIX}-libxml2: I/O Infovis" "${MINGW_PACKAGE_PREFIX}-netcdf: I/O netCDF" "${MINGW_PACKAGE_PREFIX}-opencascade: I/O OCCT" "${MINGW_PACKAGE_PREFIX}-openslide: DomainsMicroscopy" "${MINGW_PACKAGE_PREFIX}-openturns" "${MINGW_PACKAGE_PREFIX}-openvdb: I/O OpenVDB" "${MINGW_PACKAGE_PREFIX}-openvr: OpenVR Rendering" "${MINGW_PACKAGE_PREFIX}-pdal: I/O PDAL" "${MINGW_PACKAGE_PREFIX}-postgresql: I/O PostgreSQL" "${MINGW_PACKAGE_PREFIX}-proj: GEOVis" "${MINGW_PACKAGE_PREFIX}-python: Python bindings" "${MINGW_PACKAGE_PREFIX}-python-matplotlib: Matplotlib renderer" "${MINGW_PACKAGE_PREFIX}-qt6-base: Qt Rendering" "${MINGW_PACKAGE_PREFIX}-qt6-declarative: Qt Qml plugin" "${MINGW_PACKAGE_PREFIX}-sqlite3: I/O SQL" # "${MINGW_PACKAGE_PREFIX}-tk: TCL bindings, Python Tk widgets" "${MINGW_PACKAGE_PREFIX}-unixodbc") source=(https://www.vtk.org/files/release/${pkgver%.*}/VTK-${pkgver}.tar.gz "001-no-exact-version-for-fast_float.patch" "002-Fix-build-with-gcc-13.patch" "003-always-link-with-pdalcpp.patch::https://gitlab.kitware.com/vtk/vtk/-/commit/ccee5db7.patch" "007-dll-export-some-functions.patch" "008-Fix-vtkm_openmp-exported-target.patch") sha256sums=('fdc7b9295225b34e4fdddc49cd06e66e94260cb00efee456e0f66568c9681be9' '411b0521fcd2864acae0af20ba6334f69f7c605c9e31996529f64aa749d61065' '20733e97ccf9b0a8e615c75936ce5e4c1db0ac00e9cac30bc359d5912da38990' '5b734e933a91e316ec9b95f5f526e35d096cb3db2ba4868f8a7c432ec0c3d530' 'a9b9292be90c259f0aa058e3f4a7a08b6218f20e6cb2a71e214acda2d2302a50' '988ef1d43dadf1da157fc69398f545c6d2e82d2dabd7cb830e9fba9ebaba34ac') # Helper macros to help make tasks easier # apply_patch_with_msg() { for _patch in "$@" do msg2 "Applying ${_patch}" patch -Nbp1 -i "${srcdir}/${_patch}" done } prepare() { cd "${srcdir}/${_realname}-${pkgver}" apply_patch_with_msg \ 001-no-exact-version-for-fast_float.patch \ 002-Fix-build-with-gcc-13.patch \ 003-always-link-with-pdalcpp.patch \ 008-Fix-vtkm_openmp-exported-target.patch # Succeed with Clang but failed with GCC! if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then apply_patch_with_msg \ 007-dll-export-some-functions.patch fi } build() { mkdir -p ${srcdir}/build-${MSYSTEM} && cd ${srcdir}/build-${MSYSTEM} declare -a extra_config if check_option "debug" "n"; then extra_config+=("-DCMAKE_BUILD_TYPE=Release") else extra_config+=("-DCMAKE_BUILD_TYPE=Debug") fi CFLAGS+=" ${CPPFLAGS}" CXXFLAGS+=" ${CPPFLAGS} -D_USE_MATH_DEFINES -Wno-attributes -Wno-ignored-attributes -Wno-deprecated-declarations" MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -Wno-dev \ -G"Ninja" \ ${extra_config[@]} \ -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \ -DCMAKE_INSTALL_LICENSEDIR=share/licenses/vtk \ -DBUILD_SHARED_LIBS=ON \ -DPython3_EXECUTABLE="${MINGW_PREFIX}/bin/python.exe" \ -DVTK_BUILD_TESTING=OFF \ -DVTK_VERSIONED_INSTALL=OFF \ -DVTK_BUILD_ALL_MODULES=ON \ -DVTK_GROUP_ENABLE_MPI=NO \ -DVTK_GROUP_ENABLE_Web=NO \ -DVTK_MODULE_ENABLE_VTK_RenderingOpenXRRemoting=NO \ -DVTK_MODULE_ENABLE_VTK_RenderingZSpace=NO \ -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_USE_EXTERNAL_VTK_verdict=OFF \ -DVTK_WRAP_JAVA=OFF \ -DVTK_WRAP_PYTHON=ON \ -DVTK_SMP_IMPLEMENTATION_TYPE=TBB \ -DVTK_SMP_ENABLE_SEQUENTIAL=ON \ -DVTK_SMP_ENABLE_STDTHREAD=ON \ -DVTK_SMP_ENABLE_OPENMP=ON \ -DVTK_USE_VIDEO_FOR_WINDOWS=ON \ -DVTK_ENABLE_OSPRAY=OFF \ ../${_realname}-${pkgver} ${MINGW_PREFIX}/bin/cmake --build . } package() { cd "${srcdir}/build-${MSYSTEM}" DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install . install -Dm644 "${srcdir}/${_realname}-${pkgver}/Copyright.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" }