From ca29c7fa6b2d343de12cd7c854ee6de01fd2ec3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=BCtzel?= Date: Thu, 24 Oct 2024 18:42:21 +0200 Subject: [PATCH] vtk: rebuild with OpenCASCADE 7.8 Add patch from upstream. --- mingw-w64-vtk/005-opencascade-7.8.patch | 96 +++++++++++++++++++++++++ mingw-w64-vtk/PKGBUILD | 6 +- 2 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-vtk/005-opencascade-7.8.patch diff --git a/mingw-w64-vtk/005-opencascade-7.8.patch b/mingw-w64-vtk/005-opencascade-7.8.patch new file mode 100644 index 0000000000..ff3cda4900 --- /dev/null +++ b/mingw-w64-vtk/005-opencascade-7.8.patch @@ -0,0 +1,96 @@ +From 761aa1d15970fcb6aadb7d6152737fa9b2d4b0d0 Mon Sep 17 00:00:00 2001 +From: Lars Glud +Date: Fri, 24 May 2024 07:58:23 +0200 +Subject: [PATCH] Make compatible with opencascade 7.8.0. + +--- + IO/OCCT/CMakeLists.txt | 28 ++++++++++++++++++++-------- + IO/OCCT/vtkOCCTReader.cxx | 13 ++++++++++++- + 2 files changed, 32 insertions(+), 9 deletions(-) + +diff --git a/IO/OCCT/CMakeLists.txt b/IO/OCCT/CMakeLists.txt +index e81444ecebd..4baddeb719b 100644 +--- a/IO/OCCT/CMakeLists.txt ++++ b/IO/OCCT/CMakeLists.txt +@@ -4,12 +4,25 @@ vtk_module_find_package(PRIVATE_IF_SHARED + VERSION_VAR "@OpenCASCADE_MAJOR_VERSION@.@OpenCASCADE_MINOR_VERSION@.@OpenCASCADE_MAINTENANCE_VERSION@" + ) + +-set(opencascade_req_targets +- TKSTEP +- TKIGES +- TKMesh +- TKXDESTEP +- TKXDEIGES) ++if (OpenCASCADE_VERSION VERSION_GREATER_EQUAL "7.8.0") ++ set(opencascade_req_targets ++ TKDESTEP ++ TKDEIGES ++ TKernel ++ TKMath ++ TKMesh ++ TKBRep ++ TKXSBase ++ TKLCAF ++ TKXCAF) ++else() ++ set(opencascade_req_targets ++ TKSTEP ++ TKIGES ++ TKMesh ++ TKXDESTEP ++ TKXDEIGES) ++endif() + set(opencascade_missing_targets) + foreach (opencascade_req_target IN LISTS opencascade_req_targets) + if (NOT TARGET "${opencascade_req_target}") +@@ -35,8 +48,7 @@ vtk_module_link(VTK::IOOCCT + ${opencascade_req_targets}) + + # OpenCASCADE started putting include directory usage requirements in 7.7.0. +-set(OpenCASCADE_VERSION +- "${OpenCASCADE_MAJOR_VERSION}.${OpenCASCADE_MINOR_VERSION}.${OpenCASCADE_MAINTENANCE_VERSION}") ++ + if (OpenCASCADE_VERSION VERSION_LESS "7.7.0") + vtk_module_include(VTK::IOOCCT PRIVATE "${OpenCASCADE_INCLUDE_DIR}") + endif () +diff --git a/IO/OCCT/vtkOCCTReader.cxx b/IO/OCCT/vtkOCCTReader.cxx +index 52e76be72c1..5aca5c93c8c 100644 +--- a/IO/OCCT/vtkOCCTReader.cxx ++++ b/IO/OCCT/vtkOCCTReader.cxx +@@ -345,11 +345,19 @@ public: + } + + //---------------------------------------------------------------------------- ++#if VTK_OCCT_VERSION(7, 8, 0) <= OCC_VERSION_HEX ++ size_t GetHash(const TDF_Label& label) ++ { ++ TopoDS_Shape aShape; ++ return this->ShapeTool->GetShape(label, aShape) ? std::hash{}(aShape) : 0; ++ } ++#else + int GetHash(const TDF_Label& label) + { + TopoDS_Shape aShape; + return this->ShapeTool->GetShape(label, aShape) ? aShape.HashCode(INT_MAX) : 0; + } ++#endif + + //---------------------------------------------------------------------------- + static void GetMatrix(const TopLoc_Location& loc, vtkMatrix4x4* mat) +@@ -381,8 +389,11 @@ public: + GetMatrix(hLoc->Get(), location); + } + } +- ++#if VTK_OCCT_VERSION(7, 8, 0) <= OCC_VERSION_HEX ++ std::unordered_map> ShapeMap; ++#else + std::unordered_map> ShapeMap; ++#endif + Handle(XCAFDoc_ShapeTool) ShapeTool; + Handle(XCAFDoc_ColorTool) ColorTool; + +-- +GitLab + diff --git a/mingw-w64-vtk/PKGBUILD b/mingw-w64-vtk/PKGBUILD index 4334a005bc..763a80dca5 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=9.3.1 -pkgrel=5 +pkgrel=6 pkgdesc="A software system for 3D computer graphics, image processing and visualization (mingw-w64)" arch=('any') mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') @@ -107,6 +107,7 @@ source=(https://www.vtk.org/files/release/${pkgver%.*}/VTK-${pkgver}.tar.gz "002-Fix-build-with-gcc-13.patch" "003-fix-build-with-fmt-11.patch" "004-accept-future-versions-of-boost-and-occ.patch" + "005-opencascade-7.8.patch"::https://gitlab.kitware.com/vtk/vtk/-/merge_requests/11159.patch "007-dll-export-some-functions.patch" "008-Fix-vtkm_openmp-exported-target.patch") sha256sums=('8354ec084ea0d2dc3d23dbe4243823c4bfc270382d0ce8d658939fd50061cab8' @@ -114,6 +115,7 @@ sha256sums=('8354ec084ea0d2dc3d23dbe4243823c4bfc270382d0ce8d658939fd50061cab8' '20733e97ccf9b0a8e615c75936ce5e4c1db0ac00e9cac30bc359d5912da38990' '7c15ee91447c9199dafaa32eb3cf6afbf16e6306b7879a2dcd9f4ebc95c2e75e' 'a44b3ba4bdc02be4767ff48b8a7fd4206a53756a881421fca99f538b08a7b48c' + '761183f537772c8a75e0b41d1587872895c4ecd02c3d4fadcac78ac952cc975d' 'a9b9292be90c259f0aa058e3f4a7a08b6218f20e6cb2a71e214acda2d2302a50' '988ef1d43dadf1da157fc69398f545c6d2e82d2dabd7cb830e9fba9ebaba34ac') @@ -134,6 +136,7 @@ prepare() { 002-Fix-build-with-gcc-13.patch \ 003-fix-build-with-fmt-11.patch \ 004-accept-future-versions-of-boost-and-occ.patch \ + 005-opencascade-7.8.patch \ 008-Fix-vtkm_openmp-exported-target.patch # Succeed with Clang but failed with GCC! @@ -188,6 +191,7 @@ build() { -DVTK_SMP_ENABLE_OPENMP=ON \ -DVTK_USE_VIDEO_FOR_WINDOWS=ON \ -DVTK_ENABLE_OSPRAY=OFF \ + -DVTK_ENABLE_REMOTE_MODULES=OFF \ ../${_realname}-${pkgver} ${MINGW_PREFIX}/bin/cmake --build .