From 83e5173f28ce69f32f4becd4c58b9c225bdd1237 Mon Sep 17 00:00:00 2001 From: Mehdi Chinoune Date: Sun, 12 Sep 2021 06:38:23 +0100 Subject: [PATCH] vtk: fix building on ucrt64 --- .../034-no-dllexport-with-delete.patch | 13 +++ mingw-w64-vtk/PKGBUILD | 83 +++++++++++++------ 2 files changed, 70 insertions(+), 26 deletions(-) create mode 100644 mingw-w64-vtk/034-no-dllexport-with-delete.patch diff --git a/mingw-w64-vtk/034-no-dllexport-with-delete.patch b/mingw-w64-vtk/034-no-dllexport-with-delete.patch new file mode 100644 index 0000000000..2451944ebd --- /dev/null +++ b/mingw-w64-vtk/034-no-dllexport-with-delete.patch @@ -0,0 +1,13 @@ +--- a/Common/Core/vtkInformation.h ++++ b/Common/Core/vtkInformation.h +@@ -509,8 +509,8 @@ + friend class vtkInformationIterator; + + private: +- VTKCOMMONCORE_EXPORT vtkInformation(const vtkInformation&) = delete; +- VTKCOMMONCORE_EXPORT void operator=(const vtkInformation&) = delete; ++ vtkInformation(const vtkInformation&) = delete; ++ void operator=(const vtkInformation&) = delete; + vtkInformationRequestKey *Request; + }; + diff --git a/mingw-w64-vtk/PKGBUILD b/mingw-w64-vtk/PKGBUILD index 2edf1464d3..fd718fef3a 100644 --- a/mingw-w64-vtk/PKGBUILD +++ b/mingw-w64-vtk/PKGBUILD @@ -5,7 +5,7 @@ _realname=vtk pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=8.2.0 -pkgrel=9 +pkgrel=10 pkgdesc="A software system for 3D computer graphics, image processing and visualization (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64') @@ -17,9 +17,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-ffmpeg" "${MINGW_PACKAGE_PREFIX}-fontconfig" "${MINGW_PACKAGE_PREFIX}-freetype" - "${MINGW_PACKAGE_PREFIX}-gdal" "${MINGW_PACKAGE_PREFIX}-hdf5" - "${MINGW_PACKAGE_PREFIX}-intel-tbb" "${MINGW_PACKAGE_PREFIX}-jsoncpp" "${MINGW_PACKAGE_PREFIX}-libjpeg" "${MINGW_PACKAGE_PREFIX}-libharu" @@ -30,9 +28,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libxml2" "${MINGW_PACKAGE_PREFIX}-lz4" "${MINGW_PACKAGE_PREFIX}-pugixml" - "${MINGW_PACKAGE_PREFIX}-zlib") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-zlib" + $([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-intel-tbb") + ) +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-ninja" "${MINGW_PACKAGE_PREFIX}-boost" "${MINGW_PACKAGE_PREFIX}-libmariadbclient" "${MINGW_PACKAGE_PREFIX}-postgresql" @@ -40,8 +40,11 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-tk" "${MINGW_PACKAGE_PREFIX}-qt5-base" "${MINGW_PACKAGE_PREFIX}-qt5-winextras" - "${MINGW_PACKAGE_PREFIX}-qt5-tools") + "${MINGW_PACKAGE_PREFIX}-qt5-tools" + $([[ ${MSYSTEM} == MINGW* ]] && echo "${MINGW_PACKAGE_PREFIX}-gdal") + ) optdepends=("${MINGW_PACKAGE_PREFIX}-boost: InfovisBoost and InfovisBoostGraphAlgorithms modules" + "${MINGW_PACKAGE_PREFIX}-gdal" "${MINGW_PACKAGE_PREFIX}-libmariadbclient: interface to MariaDB" "${MINGW_PACKAGE_PREFIX}-postgresql: interface to PostgreSQL" "${MINGW_PACKAGE_PREFIX}-python: Python bindings" @@ -60,7 +63,8 @@ source=(https://www.vtk.org/files/release/${pkgver%.*}/VTK-${pkgver}.tar.gz "030-pugixml.patch" "031-fno-common.patch" "032-freetype-2.10.3-provide-FT_CALLBACK_DEF.patch" - "033-qt-5.15.patch") + "033-qt-5.15.patch" + "034-no-dllexport-with-delete.patch") sha256sums=('34c3dc775261be5e45a8049155f7228b6bd668106c72a3c435d95730d17d57bb' 'db3163012fc7d90f6ffd8300a7a306a609e7c69a88a1dcfb9cb5b5df4391e3ad' '7f428a9c15b2dfc23fff2a19a11c48a628c9b52f82ec0d1dca37d0a5cffc9aef' @@ -72,23 +76,37 @@ sha256sums=('34c3dc775261be5e45a8049155f7228b6bd668106c72a3c435d95730d17d57bb' 'cbcc8a0c81450e015c2ce4035f2f128956d20a22be581199446c4a72c0396190' 'a4597f0410bea856b06d023d9db7d2661b505eec110f4beccc155f6aa2c593f7' 'aa43d6b702e3e1bca2cb8560c1c7e6ce5681cef8a89e9b6442f8037bc295c21c' - 'de1d2088c54bc7fdd494cb8a90464d2f53dc7cabddcd0415d9fb8cc4de448d0e') + 'de1d2088c54bc7fdd494cb8a90464d2f53dc7cabddcd0415d9fb8cc4de448d0e' + '902ec3d23551de899a0682af88acc61257242fb5f474470884c3468d86a0d9f8') + +# 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}" - patch -Np1 -i "${srcdir}/001-vtk-mingw-w64.patch" - patch -Np1 -i "${srcdir}/004-fix-linking-rendering-tk.patch" + apply_patch_with_msg \ + 001-vtk-mingw-w64.patch \ + 004-fix-linking-rendering-tk.patch # it will find stdint from msys2-runtime-devel, but that's useless - patch -Np1 -i "${srcdir}/005-remove-bogus-stdint-check.patch" - patch -Np1 -i "${srcdir}/006-win7-defines-guard.patch" - patch -Np1 -i "${srcdir}/007-fix-linking-movie.patch" - patch -Np1 -i "${srcdir}/008-fix-python-modules-path.patch" - patch -Np1 -i "${srcdir}/020-python38-compat.patch" - patch -Np1 -i "${srcdir}/030-pugixml.patch" - patch -Np1 -i "${srcdir}/031-fno-common.patch" - patch -Np1 -i "${srcdir}/032-freetype-2.10.3-provide-FT_CALLBACK_DEF.patch" - patch -Np1 -i "${srcdir}/033-qt-5.15.patch" + apply_patch_with_msg \ + 005-remove-bogus-stdint-check.patch + apply_patch_with_msg \ + 006-win7-defines-guard.patch \ + 007-fix-linking-movie.patch \ + 008-fix-python-modules-path.patch \ + 020-python38-compat.patch \ + 030-pugixml.patch \ + 031-fno-common.patch \ + 032-freetype-2.10.3-provide-FT_CALLBACK_DEF.patch \ + 033-qt-5.15.patch \ + 034-no-dllexport-with-delete.patch } build() { @@ -101,12 +119,25 @@ build() { _cmakeopts=('-DVTK_USE_64BIT_IDS=ON') } + if [[ ${MINGW_PACKAGE_PREFIX} != *-clang-* ]]; then + _default_smp=TBB + else + _default_smp=STDThread + fi + + if [[ ${MSYSTEM} == MINGW* ]]; then + _enable_gdal=ON + else + _enable_gdal=OFF + fi + [[ -d ${srcdir}/build-${MSYSTEM} ]] && rm -rf ${srcdir}/build-${MSYSTEM} mkdir -p ${srcdir}/build-${MSYSTEM} && cd ${srcdir}/build-${MSYSTEM} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=;-DVTK_INSTALL_QT_PLUGIN_DIR=;-DVTK_INSTALL_TCL_DIR=" \ - "${MINGW_PREFIX}/bin/cmake.exe" -Wno-dev \ - -G"MSYS Makefiles" \ + cmake \ + -Wno-dev \ + -G"Ninja" \ -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \ -DVTK_INSTALL_QT_PLUGIN_DIR="${MINGW_PREFIX}/share/qt5/plugins/designer" \ -DVTK_INSTALL_TCL_DIR="${MINGW_PREFIX}/lib/vtk-${pkgver%.*}" \ @@ -146,7 +177,7 @@ build() { -DMYSQL_LIBRARY="${MINGW_PREFIX}/lib/libmariadb.dll.a" \ -DModule_vtkInfovisBoost=ON \ -DModule_vtkInfovisBoostGraphAlgorithms=ON \ - -DModule_vtkIOGDAL=ON \ + -DModule_vtkIOGDAL=${_enable_gdal} \ -DModule_vtkIOODBC=OFF \ -DModule_vtkIOPostgreSQL=ON \ -DModule_vtkPythonInterpreter=ON \ @@ -157,19 +188,19 @@ build() { -DVTK_WRAP_PYTHON=ON \ -DVTK_QT_VERSION=5 \ -DPYTHON_EXECUTABLE="${MINGW_PREFIX}/bin/python.exe" \ - -DVTK_SMP_IMPLEMENTATION_TYPE=TBB \ + -DVTK_SMP_IMPLEMENTATION_TYPE=${_default_smp} \ -DCMAKE_RC_FLAGS=--use-temp-file \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=ON \ ${_cmakeopts[@]} \ ../${_realname}-${pkgver} - make + cmake --build . } package() { cd "${srcdir}/build-${MSYSTEM}" - make -j1 DESTDIR="${pkgdir}" install + DESTDIR="${pkgdir}" cmake --install . local PREFIX_DEPS=$(cygpath -am ${MINGW_PREFIX})