From: ericonr <ericonr@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] freecad: fix build for vtk9 and musl.
Date: Sat, 29 Aug 2020 05:19:44 +0200 [thread overview]
Message-ID: <20200829031944.7ps9J5mzeBlm7CAPQ137mOmzBv8COVkzrnpiKash7pI@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-24530@inbox.vuxu.org>
[-- Attachment #1: Type: text/plain, Size: 381 bytes --]
There is an updated pull request by ericonr against master on the void-packages repository
https://github.com/ericonr/void-packages cad
https://github.com/void-linux/void-packages/pull/24530
freecad: fix build for vtk9 and musl.
New patch and add libexecinfo to makedepends.
[ci skip]
A patch file from https://github.com/void-linux/void-packages/pull/24530.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-cad-24530.patch --]
[-- Type: text/x-diff, Size: 33467 bytes --]
From 46d35da054d2832453e32444ff8ad5987303927b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Fri, 28 Aug 2020 23:04:57 -0300
Subject: [PATCH] freecad: fix build for vtk9 and musl.
New patch, add libexecinfo to makedepends and stop removing qt5-webkit
for musl.
[ci skip]
---
srcpkgs/freecad/patches/150-vtk9.patch | 760 +++++++++++++++++++++++++
srcpkgs/freecad/template | 8 +-
2 files changed, 763 insertions(+), 5 deletions(-)
create mode 100644 srcpkgs/freecad/patches/150-vtk9.patch
diff --git a/srcpkgs/freecad/patches/150-vtk9.patch b/srcpkgs/freecad/patches/150-vtk9.patch
new file mode 100644
index 00000000000..e8fb5ec14b7
--- /dev/null
+++ b/srcpkgs/freecad/patches/150-vtk9.patch
@@ -0,0 +1,760 @@
+Taken from https://github.com/wwmayer/FreeCAD/commit/52599f771fa934ceeb11a970c3639bfa8f90411e
+
+diff --git src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx b/src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
+index 14a6d9a76..7b9d88db1 100644
+--- src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
++++ src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
+@@ -40,10 +40,16 @@
+
+ #include <vtkType.h>
+ #include <vtkCellType.h>
++#include <vtkCellArray.h>
+
+ //typedef unsigned short UShortType;
+ typedef short ShortType;
+ typedef int LongType;
++#ifdef VTK_CELL_ARRAY_V2
++typedef const vtkIdType* vtkIdTypePtr;
++#else
++typedef vtkIdType* vtkIdTypePtr;
++#endif
+
+ class SMDS_MeshNode;
+ class SMDS_MeshEdge;
+@@ -192,7 +198,7 @@ protected:
+ //! Element index in vector SMDS_Mesh::myNodes or SMDS_Mesh::myCells
+ int myID;
+ //! index in vtkUnstructuredGrid
+- int myVtkID;
++ vtkIdType myVtkID;
+ //! SMDS_Mesh identification in SMESH
+ ShortType myMeshId;
+ //! SubShape and SubMesh identification in SMESHDS
+diff --git src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx b/src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx
+index 9e4a23edd..774658145 100644
+--- src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx
++++ src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx
+@@ -95,7 +95,11 @@ public:
+ std::map<int, std::map<long,int> >& nodeQuadDomains);
+ vtkCellLinks* GetLinks()
+ {
++#ifdef VTK_CELL_ARRAY_V2
++ return static_cast<vtkCellLinks*>(GetCellLinks());
++#else
+ return Links;
++#endif
+ }
+ SMDS_Downward* getDownArray(unsigned char vtkType)
+ {
+diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp
+index 299093c94..990e2b641 100644
+--- src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp
++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp
+@@ -68,9 +68,13 @@ bool SMDS_BallElement::ChangeNode (const SMDS_MeshNode * node)
+ {
+ vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+ vtkIdType npts = 0;
+- vtkIdType* pts = 0;
++ vtkIdTypePtr pts = 0;
+ grid->GetCellPoints(myVtkID, npts, pts);
++#ifdef VTK_CELL_ARRAY_V2
++//FIXME: vtk9
++#else
+ pts[0] = node->getVtkId();
++#endif
+ SMDS_Mesh::_meshList[myMeshId]->setMyModified();
+ return true;
+ }
+@@ -83,7 +87,8 @@ void SMDS_BallElement::Print (std::ostream & OS) const
+ const SMDS_MeshNode* SMDS_BallElement::GetNode (const int ind) const
+ {
+ vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+- vtkIdType npts, *pts;
++ vtkIdType npts;
++ vtkIdTypePtr pts;
+ grid->GetCellPoints( myVtkID, npts, pts );
+ return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ 0 ]);
+ }
+diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp
+index d6049c0bd..77555d5bc 100644
+--- src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp
++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_Downward.cpp
+@@ -303,7 +303,7 @@ int SMDS_Down1D::getNodeSet(int cellId, int* nodeSet)
+ void SMDS_Down1D::setNodes(int cellId, int vtkId)
+ {
+ vtkIdType npts = 0;
+- vtkIdType *pts; // will refer to the point id's of the face
++ vtkIdTypePtr pts; // will refer to the point id's of the face
+ _grid->GetCellPoints(vtkId, npts, pts);
+ // MESSAGE(vtkId << " " << npts << " " << _nbDownCells);
+ //ASSERT(npts == _nbDownCells);
+@@ -532,7 +532,7 @@ int SMDS_Down2D::computeVolumeIds(int cellId, int* ids)
+ // --- find point id's of the face
+
+ vtkIdType npts = 0;
+- vtkIdType *pts; // will refer to the point id's of the face
++ vtkIdTypePtr pts; // will refer to the point id's of the face
+ _grid->GetCellPoints(cellId, npts, pts);
+ vector<int> nodes;
+ for (int i = 0; i < npts; i++)
+@@ -627,7 +627,7 @@ int SMDS_Down2D::computeVolumeIdsFromNodesFace(int* pts, int npts, int* ids)
+ void SMDS_Down2D::setTempNodes(int cellId, int vtkId)
+ {
+ vtkIdType npts = 0;
+- vtkIdType *pts; // will refer to the point id's of the face
++ vtkIdTypePtr pts; // will refer to the point id's of the face
+ _grid->GetCellPoints(vtkId, npts, pts);
+ // MESSAGE(vtkId << " " << npts << " " << _nbNodes);
+ //ASSERT(npts == _nbNodes);
+@@ -795,7 +795,7 @@ void SMDS_Down3D::getNodeIds(int cellId, std::set<int>& nodeSet)
+ {
+ int vtkId = this->_vtkCellIds[cellId];
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(vtkId, npts, nodes);
+ for (int i = 0; i < npts; i++)
+ nodeSet.insert(nodes[i]);
+@@ -1126,7 +1126,7 @@ void SMDS_DownTetra::getOrderedNodesOfFace(int cellId, std::vector<vtkIdType>& o
+ //MESSAGE("cellId = " << cellId);
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+
+ set<int> tofind;
+@@ -1178,7 +1178,7 @@ void SMDS_DownTetra::computeFacesWithNodes(int cellId, ListElemByNodesType& face
+ // --- find point id's of the volume
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(cellId, npts, nodes);
+
+ // --- create all the ordered list of node id's for each face
+@@ -1234,7 +1234,7 @@ void SMDS_DownQuadTetra::getOrderedNodesOfFace(int cellId, std::vector<vtkIdType
+ //MESSAGE("cellId = " << cellId);
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+
+ set<int> tofind;
+@@ -1288,7 +1288,7 @@ void SMDS_DownQuadTetra::computeFacesWithNodes(int cellId, ListElemByNodesType&
+ // --- find point id's of the volume
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(cellId, npts, nodes);
+
+ // --- create all the ordered list of node id's for each face
+@@ -1357,7 +1357,7 @@ void SMDS_DownPyramid::getOrderedNodesOfFace(int cellId, std::vector<vtkIdType>&
+ //MESSAGE("cellId = " << cellId);
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+
+ set<int> tofind;
+@@ -1435,7 +1435,7 @@ void SMDS_DownPyramid::computeFacesWithNodes(int cellId, ListElemByNodesType& fa
+ // --- find point id's of the volume
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(cellId, npts, nodes);
+
+ // --- create all the ordered list of node id's for each face
+@@ -1500,7 +1500,7 @@ void SMDS_DownQuadPyramid::getOrderedNodesOfFace(int cellId, std::vector<vtkIdTy
+ //MESSAGE("cellId = " << cellId);
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+
+ set<int> tofind;
+@@ -1580,7 +1580,7 @@ void SMDS_DownQuadPyramid::computeFacesWithNodes(int cellId, ListElemByNodesType
+ // --- find point id's of the volume
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(cellId, npts, nodes);
+
+ // --- create all the ordered list of node id's for each face
+@@ -1660,7 +1660,7 @@ void SMDS_DownPenta::getOrderedNodesOfFace(int cellId, std::vector<vtkIdType>& o
+ //MESSAGE("cellId = " << cellId);
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+
+ set<int> tofind;
+@@ -1744,7 +1744,7 @@ void SMDS_DownPenta::computeFacesWithNodes(int cellId, ListElemByNodesType& face
+ // --- find point id's of the volume
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(cellId, npts, nodes);
+
+ // --- create all the ordered list of node id's for each face
+@@ -1810,7 +1810,7 @@ void SMDS_DownQuadPenta::getOrderedNodesOfFace(int cellId, std::vector<vtkIdType
+ //MESSAGE("cellId = " << cellId);
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+
+ set<int> tofind;
+@@ -1896,7 +1896,7 @@ void SMDS_DownQuadPenta::computeFacesWithNodes(int cellId, ListElemByNodesType&
+ // --- find point id's of the volume
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(cellId, npts, nodes);
+
+ // --- create all the ordered list of node id's for each face
+@@ -1981,7 +1981,7 @@ void SMDS_DownHexa::getOrderedNodesOfFace(int cellId, std::vector<vtkIdType>& or
+ //MESSAGE("cellId = " << cellId);
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+
+ set<int> tofind;
+@@ -2036,7 +2036,7 @@ void SMDS_DownHexa::computeFacesWithNodes(int cellId, ListElemByNodesType& faces
+ // --- find point id's of the volume
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(cellId, npts, nodes);
+
+ // --- create all the ordered list of node id's for each face
+@@ -2112,7 +2112,7 @@ void SMDS_DownQuadHexa::getOrderedNodesOfFace(int cellId, std::vector<vtkIdType>
+ //MESSAGE("cellId = " << cellId);
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(this->_vtkCellIds[cellId], npts, nodes);
+
+ set<int> tofind;
+@@ -2167,7 +2167,7 @@ void SMDS_DownQuadHexa::computeFacesWithNodes(int cellId, ListElemByNodesType& f
+ // --- find point id's of the volume
+
+ vtkIdType npts = 0;
+- vtkIdType *nodes; // will refer to the point id's of the volume
++ vtkIdTypePtr nodes; // will refer to the point id's of the volume
+ _grid->GetCellPoints(cellId, npts, nodes);
+
+ // --- create all the ordered list of node id's for each face
+diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
+index 4ac6fd768..51b281699 100644
+--- src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
+@@ -4763,7 +4763,11 @@ void SMDS_Mesh::dumpGrid(string ficdump)
+ ficcon << endl;
+ }
+ ficcon << "-------------------------------- connectivity " << nbPoints << endl;
+- vtkCellLinks *links = myGrid->GetCellLinks();
++#ifdef VTK_CELL_ARRAY_V2
++ vtkCellLinks *links = static_cast<vtkCellLinks*>(myGrid->GetCellLinks());
++#else
++ vtkCellLinks *links = myGrid->GetCellLinks();
++#endif
+ for (int i=0; i<nbPoints; i++)
+ {
+ int ncells = links->GetNcells(i);
+diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp
+index 95438eab0..a7f8059e0 100644
+--- src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp
++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp
+@@ -147,7 +147,7 @@ bool SMDS_Mesh0DElement::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbN
+ {
+ vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+ vtkIdType npts = 0;
+- vtkIdType* pts = 0;
++ vtkIdTypePtr pts = 0;
+ grid->GetCellPoints(myVtkID, npts, pts);
+ if (nbNodes != npts)
+ {
+@@ -155,7 +155,11 @@ bool SMDS_Mesh0DElement::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbN
+ return false;
+ }
+ myNode = nodes[0];
++#ifdef VTK_CELL_ARRAY_V2
++//FIXME: vtk9
++#else
+ pts[0] = myNode->getVtkId();
++#endif
+
+ SMDS_Mesh::_meshList[myMeshId]->setMyModified();
+ return true;
+diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp
+index f647a5f1b..5b903c8fb 100644
+--- src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp
++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp
+@@ -191,7 +191,7 @@ public:
+ SMDS_ElemIteratorPtr SMDS_MeshNode::
+ GetInverseElementIterator(SMDSAbs_ElementType type) const
+ {
+- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID);
++ vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
+ //MESSAGE("myID " << myID << " ncells " << l.ncells);
+ return SMDS_ElemIteratorPtr(new SMDS_MeshNode_MyInvIterator(SMDS_Mesh::_meshList[myMeshId], l.cells, l.ncells, type));
+ }
+@@ -251,7 +251,7 @@ elementsIterator(SMDSAbs_ElementType type) const
+ return SMDS_MeshElement::elementsIterator(SMDSAbs_Node);
+ else
+ {
+- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID);
++ vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
+ return SMDS_ElemIteratorPtr(new SMDS_MeshNode_MyIterator(SMDS_Mesh::_meshList[myMeshId], l.cells, l.ncells, type));
+ }
+ }
+@@ -350,7 +350,7 @@ void SMDS_MeshNode::AddInverseElement(const SMDS_MeshElement* ME)
+ const SMDS_MeshCell *cell = dynamic_cast<const SMDS_MeshCell*> (ME);
+ assert(cell);
+ SMDS_UnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+- vtkCellLinks *Links = grid->GetCellLinks();
++ vtkCellLinks *Links = static_cast<vtkCellLinks*>(grid->GetCellLinks());
+ Links->ResizeCellList(myVtkID, 1);
+ Links->AddCellReference(cell->getVtkId(), myVtkID);
+ }
+@@ -366,7 +366,7 @@ void SMDS_MeshNode::ClearInverseElements()
+
+ bool SMDS_MeshNode::emptyInverseElements()
+ {
+- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID);
++ vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
+ return (l.ncells == 0);
+ }
+
+@@ -378,7 +378,7 @@ bool SMDS_MeshNode::emptyInverseElements()
+
+ int SMDS_MeshNode::NbInverseElements(SMDSAbs_ElementType type) const
+ {
+- vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID);
++ vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
+
+ if ( type == SMDSAbs_All )
+ return l.ncells;
+diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp
+index fbd903b1e..19ccebcab 100644
+--- src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp
++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp
+@@ -139,8 +139,8 @@ int SMDS_UnstructuredGrid::InsertNextLinkedCell(int type, int npts, vtkIdType *p
+ for (; it != setOfNodes.end(); ++it)
+ {
+ //MESSAGE("reverse link for node " << *it << " cell " << cellid);
+- this->Links->ResizeCellList(*it, 1);
+- this->Links->AddCellReference(cellid, *it);
++ this->GetLinks()->ResizeCellList(*it, 1);
++ this->GetLinks()->AddCellReference(cellid, *it);
+ }
+
+ return cellid;
+@@ -332,9 +332,13 @@ void SMDS_UnstructuredGrid::copyBloc(vtkUnsignedCharArray *newTypes,
+ {
+ newTypes->SetValue(alreadyCopied, this->Types->GetValue(j));
+ idCellsOldToNew[j] = alreadyCopied; // old vtkId --> new vtkId
++#ifdef VTK_CELL_ARRAY_V2
++ vtkIdType oldLoc; //FIXME: vtk9
++#else
+ vtkIdType oldLoc = this->Locations->GetValue(j);
++#endif
+ vtkIdType nbpts;
+- vtkIdType *oldPtsCell = 0;
++ vtkIdTypePtr oldPtsCell = 0;
+ this->Connectivity->GetCell(oldLoc, nbpts, oldPtsCell);
+ assert(nbpts < NBMAXNODESINCELL);
+ //MESSAGE(j << " " << alreadyCopied << " " << (int)this->Types->GetValue(j) << " " << oldLoc << " " << nbpts );
+@@ -953,14 +957,18 @@ void SMDS_UnstructuredGrid::GetNodeIds(std::set<int>& nodeSet, int downId, unsig
+ void SMDS_UnstructuredGrid::ModifyCellNodes(int vtkVolId, std::map<int, int> localClonedNodeIds)
+ {
+ vtkIdType npts = 0;
+- vtkIdType *pts; // will refer to the point id's of the face
++ vtkIdTypePtr pts; // will refer to the point id's of the face
+ this->GetCellPoints(vtkVolId, npts, pts);
+ for (int i = 0; i < npts; i++)
+ {
+ if (localClonedNodeIds.count(pts[i]))
+ {
+ vtkIdType oldpt = pts[i];
++#ifdef VTK_CELL_ARRAY_V2
++//FIXME: vtk9
++#else
+ pts[i] = localClonedNodeIds[oldpt];
++#endif
+ //MESSAGE(oldpt << " --> " << pts[i]);
+ //this->RemoveReferenceToCell(oldpt, vtkVolId);
+ //this->AddReferenceToCell(pts[i], vtkVolId);
+@@ -995,11 +1003,20 @@ void SMDS_UnstructuredGrid::BuildLinks()
+ this->Links->UnRegister(this);
+ }
+
++#ifdef VTK_CELL_ARRAY_V2
++//FIXME: vtk9
++ this->Links = SMDS_CellLinks::New();
++ //this->Links->Allocate(this->GetNumberOfPoints());
++ this->Links->Register(this);
++ //this->Links->BuildLinks(this, this->Connectivity);
++ this->Links->Delete();
++#else
+ this->Links = SMDS_CellLinks::New();
+ this->Links->Allocate(this->GetNumberOfPoints());
+ this->Links->Register(this);
+ this->Links->BuildLinks(this, this->Connectivity);
+ this->Links->Delete();
++#endif
+ }
+
+ /*! Create a volume (prism or hexahedron) by duplication of a face.
+diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp
+index deb05985f..63b6eabb7 100644
+--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp
++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp
+@@ -33,7 +33,8 @@ SMDS_VtkCellIterator::SMDS_VtkCellIterator(SMDS_Mesh* mesh, int vtkCellId, SMDSA
+ }
+ else
+ {
+- vtkIdType npts, *pts;
++ vtkIdType npts;
++ vtkIdTypePtr pts;
+ grid->GetCellPoints( _cellId, npts, pts );
+ _vtkIdList->SetNumberOfIds( _nbNodes = npts );
+ for (int i = 0; i < _nbNodes; i++)
+@@ -67,7 +68,7 @@ SMDS_VtkCellIteratorToUNV::SMDS_VtkCellIteratorToUNV(SMDS_Mesh* mesh, int vtkCel
+ //MESSAGE("SMDS_VtkCellInterlacedIterator (UNV)" << _type);
+
+ _vtkIdList = vtkIdList::New();
+- vtkIdType* pts;
++ vtkIdTypePtr pts;
+ vtkIdType npts;
+ vtkUnstructuredGrid* grid = _mesh->getGrid();
+ grid->GetCellPoints((vtkIdType)_cellId, npts, pts);
+@@ -182,7 +183,7 @@ SMDS_VtkCellIteratorPolyH::SMDS_VtkCellIteratorPolyH(SMDS_Mesh* mesh, int vtkCel
+ {
+ //MESSAGE("SMDS_VtkCellIterator Polyhedra");
+ vtkIdType nFaces = 0;
+- vtkIdType* ptIds = 0;
++ vtkIdTypePtr ptIds = 0;
+ grid->GetFaceStream(_cellId, nFaces, ptIds);
+ int id = 0;
+ _nbNodesInFaces = 0;
+diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp
+index 9786abf9a..58d2df3cf 100644
+--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp
++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp
+@@ -68,7 +68,7 @@ bool SMDS_VtkEdge::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes)
+ {
+ vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+ vtkIdType npts = 0;
+- vtkIdType* pts = 0;
++ vtkIdTypePtr pts = 0;
+ grid->GetCellPoints(myVtkID, npts, pts);
+ if (nbNodes != npts)
+ {
+@@ -77,7 +77,11 @@ bool SMDS_VtkEdge::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes)
+ }
+ for (int i = 0; i < nbNodes; i++)
+ {
++#ifdef VTK_CELL_ARRAY_V2
++//FIXME: vtk9
++#else
+ pts[i] = nodes[i]->getVtkId();
++#endif
+ }
+ SMDS_Mesh::_meshList[myMeshId]->setMyModified();
+ return true;
+@@ -87,7 +91,7 @@ bool SMDS_VtkEdge::IsMediumNode(const SMDS_MeshNode* node) const
+ {
+ vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+ vtkIdType npts = 0;
+- vtkIdType* pts = 0;
++ vtkIdTypePtr pts = 0;
+ grid->GetCellPoints(myVtkID, npts, pts);
+ //MESSAGE("IsMediumNode " << npts << " " << (node->getVtkId() == pts[npts-1]));
+ return ((npts == 3) && (node->getVtkId() == pts[2]));
+@@ -137,7 +141,8 @@ const SMDS_MeshNode*
+ SMDS_VtkEdge::GetNode(const int ind) const
+ {
+ vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+- vtkIdType npts, *pts;
++ vtkIdType npts;
++ vtkIdTypePtr pts;
+ grid->GetCellPoints( this->myVtkID, npts, pts );
+ return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ ind ]);
+ }
+diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp
+index 1389e0d35..a92601f1e 100644
+--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp
++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp
+@@ -102,7 +102,7 @@ bool SMDS_VtkFace::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes)
+ {
+ vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+ vtkIdType npts = 0;
+- vtkIdType* pts = 0;
++ vtkIdTypePtr pts = 0;
+ grid->GetCellPoints(myVtkID, npts, pts);
+ if (nbNodes != npts)
+ {
+@@ -111,7 +111,11 @@ bool SMDS_VtkFace::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes)
+ }
+ for (int i = 0; i < nbNodes; i++)
+ {
++#ifdef VTK_CELL_ARRAY_V2
++//FIXME: vtk9
++#else
+ pts[i] = nodes[i]->getVtkId();
++#endif
+ }
+ SMDS_Mesh::_meshList[myMeshId]->setMyModified();
+ return true;
+@@ -173,7 +177,8 @@ const SMDS_MeshNode*
+ SMDS_VtkFace::GetNode(const int ind) const
+ {
+ vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+- vtkIdType npts, *pts;
++ vtkIdType npts;
++ vtkIdTypePtr pts;
+ grid->GetCellPoints( this->myVtkID, npts, pts );
+ return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ ind ]);
+ }
+@@ -186,7 +191,8 @@ SMDS_VtkFace::GetNode(const int ind) const
+ int SMDS_VtkFace::GetNodeIndex( const SMDS_MeshNode* node ) const
+ {
+ vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+- vtkIdType npts, *pts;
++ vtkIdType npts;
++ vtkIdTypePtr pts;
+ grid->GetCellPoints( this->myVtkID, npts, pts );
+ for ( vtkIdType i = 0; i < npts; ++i )
+ if ( pts[i] == node->getVtkId() )
+@@ -251,7 +257,7 @@ bool SMDS_VtkFace::IsMediumNode(const SMDS_MeshNode* node) const
+ return false;
+ }
+ vtkIdType npts = 0;
+- vtkIdType* pts = 0;
++ vtkIdTypePtr pts = 0;
+ grid->GetCellPoints(myVtkID, npts, pts);
+ vtkIdType nodeId = node->getVtkId();
+ for (int rank = 0; rank < npts; rank++)
+@@ -357,10 +363,14 @@ void SMDS_VtkFace::ChangeApex(SMDS_MeshNode* node)
+ {
+ vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+ vtkIdType npts = 0;
+- vtkIdType* pts = 0;
++ vtkIdTypePtr pts = 0;
+ grid->GetCellPoints(myVtkID, npts, pts);
+ grid->RemoveReferenceToCell(pts[0], myVtkID);
++#ifdef VTK_CELL_ARRAY_V2
++//FIXME: vtk9
++#else
+ pts[0] = node->getVtkId();
++#endif
+ node->AddInverseElement(this),
+ SMDS_Mesh::_meshList[myMeshId]->setMyModified();
+ }
+diff --git src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp b/src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp
+index 015edf75f..da2f73ffb 100644
+--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp
++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp
+@@ -134,7 +134,7 @@ bool SMDS_VtkVolume::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes
+ {
+ vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
+ vtkIdType npts = 0;
+- vtkIdType* pts = 0;
++ vtkIdTypePtr pts = 0;
+ grid->GetCellPoints(myVtkID, npts, pts);
+ if (nbNodes != npts)
+ {
+@@ -143,7 +143,11 @@ bool SMDS_VtkVolume::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes
+ }
+ for (int i = 0; i < nbNodes; i++)
+ {
++#ifdef VTK_CELL_ARRAY_V2
++//FIXME: vtk9
++#else
+ pts[i] = nodes[i]->getVtkId();
++#endif
+ }
+ SMDS_Mesh::_meshList[myMeshId]->setMyModified();
+ return true;
+@@ -207,7 +211,7 @@ int SMDS_VtkVolume::NbFaces() const
+ case VTK_POLYHEDRON:
+ {
+ vtkIdType nFaces = 0;
+- vtkIdType* ptIds = 0;
++ vtkIdTypePtr ptIds = 0;
+ grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+ nbFaces = nFaces;
+ break;
+@@ -236,7 +240,7 @@ int SMDS_VtkVolume::NbNodes() const
+ else
+ {
+ vtkIdType nFaces = 0;
+- vtkIdType* ptIds = 0;
++ vtkIdTypePtr ptIds = 0;
+ grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+ int id = 0;
+ for (int i = 0; i < nFaces; i++)
+@@ -276,7 +280,7 @@ int SMDS_VtkVolume::NbEdges() const
+ case VTK_POLYHEDRON:
+ {
+ vtkIdType nFaces = 0;
+- vtkIdType* ptIds = 0;
++ vtkIdTypePtr ptIds = 0;
+ grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+ nbEdges = 0;
+ int id = 0;
+@@ -312,7 +316,7 @@ int SMDS_VtkVolume::NbFaceNodes(const int face_ind) const
+ if (aVtkType == VTK_POLYHEDRON)
+ {
+ vtkIdType nFaces = 0;
+- vtkIdType* ptIds = 0;
++ vtkIdTypePtr ptIds = 0;
+ grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+ int id = 0;
+ for (int i = 0; i < nFaces; i++)
+@@ -342,7 +346,7 @@ const SMDS_MeshNode* SMDS_VtkVolume::GetFaceNode(const int face_ind, const int n
+ if (aVtkType == VTK_POLYHEDRON)
+ {
+ vtkIdType nFaces = 0;
+- vtkIdType* ptIds = 0;
++ vtkIdTypePtr ptIds = 0;
+ grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+ int id = 0;
+ for (int i = 0; i < nFaces; i++)
+@@ -372,7 +376,7 @@ std::vector<int> SMDS_VtkVolume::GetQuantities() const
+ if (aVtkType == VTK_POLYHEDRON)
+ {
+ vtkIdType nFaces = 0;
+- vtkIdType* ptIds = 0;
++ vtkIdTypePtr ptIds = 0;
+ grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+ int id = 0;
+ for (int i = 0; i < nFaces; i++)
+@@ -430,7 +434,7 @@ const SMDS_MeshNode* SMDS_VtkVolume::GetNode(const int ind) const
+ if ( aVtkType == VTK_POLYHEDRON)
+ {
+ vtkIdType nFaces = 0;
+- vtkIdType* ptIds = 0;
++ vtkIdTypePtr ptIds = 0;
+ grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+ int id = 0, nbPoints = 0;
+ for (int i = 0; i < nFaces; i++)
+@@ -443,7 +447,8 @@ const SMDS_MeshNode* SMDS_VtkVolume::GetNode(const int ind) const
+ }
+ return 0;
+ }
+- vtkIdType npts, *pts;
++ vtkIdType npts;
++ vtkIdTypePtr pts;
+ grid->GetCellPoints( this->myVtkID, npts, pts );
+ const std::vector<int>& interlace = SMDS_MeshCell::fromVtkOrder( VTKCellType( aVtkType ));
+ return SMDS_Mesh::_meshList[myMeshId]->FindNodeVtk( pts[ interlace.empty() ? ind : interlace[ind]] );
+@@ -460,7 +465,7 @@ int SMDS_VtkVolume::GetNodeIndex( const SMDS_MeshNode* node ) const
+ if ( aVtkType == VTK_POLYHEDRON)
+ {
+ vtkIdType nFaces = 0;
+- vtkIdType* ptIds = 0;
++ vtkIdTypePtr ptIds = 0;
+ grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
+ int id = 0;
+ for (int iF = 0; iF < nFaces; iF++)
+@@ -473,7 +478,8 @@ int SMDS_VtkVolume::GetNodeIndex( const SMDS_MeshNode* node ) const
+ }
+ return -1;
+ }
+- vtkIdType npts, *pts;
++ vtkIdType npts;
++ vtkIdTypePtr pts;
+ grid->GetCellPoints( this->myVtkID, npts, pts );
+ for ( vtkIdType i = 0; i < npts; ++i )
+ if ( pts[i] == node->getVtkId() )
+@@ -534,7 +540,7 @@ bool SMDS_VtkVolume::IsMediumNode(const SMDS_MeshNode* node) const
+ return false;
+ }
+ vtkIdType npts = 0;
+- vtkIdType* pts = 0;
++ vtkIdTypePtr pts = 0;
+ grid->GetCellPoints(myVtkID, npts, pts);
+ vtkIdType nodeId = node->getVtkId();
+ for (int rank = 0; rank < npts; rank++)
+diff --git src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp b/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp
+index a742702ff..1ff4d5eef 100644
+--- src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp
++++ src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp
+@@ -11343,7 +11343,7 @@ bool SMESH_MeshEditor::DoubleNodesOnGroupBoundaries( const std::vector<TIDSorted
+ {
+ int oldId = *itn;
+ //MESSAGE(" node " << oldId);
+- vtkCellLinks::Link l = grid->GetCellLinks()->GetLink(oldId);
++ vtkCellLinks::Link l = static_cast<vtkCellLinks*>(grid->GetCellLinks())->GetLink(oldId);
+ for (int i=0; i<l.ncells; i++)
+ {
+ int vtkId = l.cells[i];
+@@ -11522,7 +11522,7 @@ bool SMESH_MeshEditor::DoubleNodesOnGroupBoundaries( const std::vector<TIDSorted
+ //MESSAGE(" domain " << idom << " volume " << elem->GetID());
+ double values[3];
+ vtkIdType npts = 0;
+- vtkIdType* pts = 0;
++ vtkIdTypePtr pts = 0;
+ grid->GetCellPoints(vtkVolIds[ivol], npts, pts);
+ SMDS_VtkVolume::gravityCenter(grid, pts, npts, values);
+ if (id ==0)
+@@ -11703,7 +11703,7 @@ bool SMESH_MeshEditor::DoubleNodesOnGroupBoundaries( const std::vector<TIDSorted
+ {
+ int oldId = itnod->first;
+ //MESSAGE(" node " << oldId);
+- vtkCellLinks::Link l = grid->GetCellLinks()->GetLink(oldId);
++ vtkCellLinks::Link l = static_cast<vtkCellLinks*>(grid->GetCellLinks())->GetLink(oldId);
+ for (int i = 0; i < l.ncells; i++)
+ {
+ int vtkId = l.cells[i];
+@@ -12160,7 +12160,7 @@ void SMESH_MeshEditor::CreateHoleSkin(double radius,
+ MESSAGE("volume to check, vtkId " << vtkId << " smdsId " << meshDS->fromVtkToSmds(vtkId));
+ bool volInside = false;
+ vtkIdType npts = 0;
+- vtkIdType* pts = 0;
++ vtkIdTypePtr pts = 0;
+ grid->GetCellPoints(vtkId, npts, pts);
+ for (int i=0; i<npts; i++)
+ {
+diff --git src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp b/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp
+index dde2bd824..3acfead65 100644
+--- src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp
++++ src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp
+@@ -56,6 +56,11 @@
+
+ using namespace FemGui;
+
++#ifdef VTK_CELL_ARRAY_V2
++typedef const vtkIdType* vtkIdTypePtr;
++#else
++typedef vtkIdType* vtkIdTypePtr;
++#endif
+
+ PROPERTY_SOURCE(FemGui::ViewProviderFemPostObject, Gui::ViewProviderDocumentObject)
+
+@@ -316,7 +321,7 @@ void ViewProviderFemPostObject::update3D() {
+ vtkDataArray *tcoords = NULL;
+ vtkCellArray *cells;
+ vtkIdType npts = 0;
+- vtkIdType *indx = 0;
++ vtkIdTypePtr indx = 0;
+
+ points = pd->GetPoints();
+ pntData = pd->GetPointData();
diff --git a/srcpkgs/freecad/template b/srcpkgs/freecad/template
index b56d8227d60..8a36d1a38e4 100644
--- a/srcpkgs/freecad/template
+++ b/srcpkgs/freecad/template
@@ -36,11 +36,9 @@ homepage="https://freecadweb.org/"
distfiles="https://github.com/FreeCAD/FreeCAD/archive/${version}.tar.gz"
checksum=4e0cce447b31b8989a00cf68c49ae012ce8e5546a56c6e0874fbd8f7ddedffd2
-case "$XBPS_TARGET_MACHINE" in
- *-musl) # SIGSEGV with musl, see https://github.com/void-linux/void-packages/issues/12595
- makedepends=${makedepends/qt5-webkit-devel/}
- ;;
-esac
+if [ "$XBPS_TARGET_LIBC" = musl ]; then
+ makedepends+=" libexecinfo-devel"
+fi
post_extract() {
# Report exact minor version
next prev parent reply other threads:[~2020-08-29 3:19 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-29 2:06 [PR PATCH] " ericonr
2020-08-29 2:06 ` ericonr
2020-08-29 3:19 ` ericonr [this message]
2020-08-29 3:22 ` ericonr
2020-08-29 4:06 ` ahesford
2020-08-29 4:06 ` ahesford
2020-08-29 4:25 ` ericonr
2020-08-29 4:34 ` ericonr
2020-08-29 9:28 ` pullmoll
2020-08-29 10:35 ` [PR PATCH] [Closed]: " pullmoll
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200829031944.7ps9J5mzeBlm7CAPQ137mOmzBv8COVkzrnpiKash7pI@z \
--to=ericonr@users.noreply.github.com \
--cc=ml@inbox.vuxu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).