216 lines
8.8 KiB
Bash
216 lines
8.8 KiB
Bash
# Maintainer: Sergey Popov <popov.sa@gmail.com>
|
|
# Contributor: Mario Emmenlauer <memmenlauer@biodataanalysis.de>
|
|
|
|
_realname=vtk
|
|
pkgbase="mingw-w64-${_realname}"
|
|
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
|
pkgver=9.5.0
|
|
pkgrel=5
|
|
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}-cc-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"
|
|
"${MINGW_PACKAGE_PREFIX}-lz4"
|
|
"${MINGW_PACKAGE_PREFIX}-omp"
|
|
"${MINGW_PACKAGE_PREFIX}-openxr-sdk"
|
|
"${MINGW_PACKAGE_PREFIX}-pugixml"
|
|
$([[ ${MSYSTEM} == MINGW64 ]] || echo \
|
|
"${MINGW_PACKAGE_PREFIX}-verdict" \
|
|
"${MINGW_PACKAGE_PREFIX}-viskores")
|
|
"${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}-alembic"
|
|
$([[ ${MSYSTEM} == MINGW64 ]] || echo \
|
|
"${MINGW_PACKAGE_PREFIX}-anari-sdk" \
|
|
"${MINGW_PACKAGE_PREFIX}-scnlib")
|
|
"${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}-alembic: I/O Alembic"
|
|
"${MINGW_PACKAGE_PREFIX}-boost-libs: 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 PNG 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: OpenTURNS Filter"
|
|
"${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")
|
|
if [[ ${MSYSTEM} != MINGW64 ]]; then
|
|
optdepends+=("${MINGW_PACKAGE_PREFIX}-anari-sdk: ANARI Rendering")
|
|
fi
|
|
source=(https://www.vtk.org/files/release/${pkgver%.*}/VTK-${pkgver}.tar.gz
|
|
"001-no-exact-version-for-fast_float.patch"
|
|
"004-accept-future-versions-of-boost-and-occ.patch"
|
|
"007-dll-export-some-functions.patch")
|
|
sha256sums=('04ae86246b9557c6b61afbc534a6df099244fbc8f3937f82e6bc0570953af87d'
|
|
'a978ec60b9ef3a9a19265b4e502a602cff016a5cbfc7801398dc1f2f7206a1d9'
|
|
'a44b3ba4bdc02be4767ff48b8a7fd4206a53756a881421fca99f538b08a7b48c'
|
|
'61c334b3050f675ee65f92163719da3e75688e490971ffcc9c4cd95eb90d762a')
|
|
|
|
# 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 \
|
|
004-accept-future-versions-of-boost-and-occ.patch
|
|
|
|
# Succeeds with Clang but fails 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
|
|
|
|
if [[ ${MSYSTEM} == MINGW64 ]]; then
|
|
_extra_config+=("-DVTK_MODULE_ENABLE_VTK_RenderingAnari=NO"
|
|
"-DVTK_MODULE_USE_EXTERNAL_VTK_scn=OFF"
|
|
"-DVTK_MODULE_USE_EXTERNAL_VTK_verdict=OFF"
|
|
"-DVTK_MODULE_USE_EXTERNAL_VTK_vtkviskores=OFF")
|
|
fi
|
|
|
|
CFLAGS+=" ${CPPFLAGS}"
|
|
CXXFLAGS+=" ${CPPFLAGS} -D_USE_MATH_DEFINES -w"
|
|
|
|
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
|
|
${MINGW_PREFIX}/bin/cmake \
|
|
-Wno-dev \
|
|
-G"Ninja" \
|
|
-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_FiltersParallelVerdict=WANT \
|
|
-DVTK_MODULE_ENABLE_VTK_FiltersTemporal=WANT \
|
|
-DVTK_MODULE_ENABLE_VTK_IOERF=WANT \
|
|
-DVTK_MODULE_ENABLE_VTK_IOFDS=WANT \
|
|
-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_token=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 \
|
|
-DVTK_ENABLE_REMOTE_MODULES=OFF \
|
|
"${_extra_config[@]}" \
|
|
../${_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
|
|
|
|
# Remove third party CMake patching for older versions than ours
|
|
rm -rv "${pkgdir}"${MINGW_PREFIX}/lib/cmake/vtk/patches/3.{1{3,6,9},2{0,2,3}}
|
|
}
|