vtk: rebuild with OpenCASCADE 7.8
Add patch from upstream.
This commit is contained in:
96
mingw-w64-vtk/005-opencascade-7.8.patch
Normal file
96
mingw-w64-vtk/005-opencascade-7.8.patch
Normal file
@@ -0,0 +1,96 @@
|
||||
From 761aa1d15970fcb6aadb7d6152737fa9b2d4b0d0 Mon Sep 17 00:00:00 2001
|
||||
From: Lars Glud <larshg@gmail.com>
|
||||
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<TopoDS_Shape>{}(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<size_t, vtkSmartPointer<vtkPolyData>> ShapeMap;
|
||||
+#else
|
||||
std::unordered_map<int, vtkSmartPointer<vtkPolyData>> ShapeMap;
|
||||
+#endif
|
||||
Handle(XCAFDoc_ShapeTool) ShapeTool;
|
||||
Handle(XCAFDoc_ColorTool) ColorTool;
|
||||
|
||||
--
|
||||
GitLab
|
||||
|
||||
@@ -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 .
|
||||
|
||||
Reference in New Issue
Block a user