Checklist
Steps to reproduce the issue
I’ve submitted a MacPorts Portfile for Open3D at macports/macports-ports#32787
The clang build fails when compiling possionrecon at build/poisson/src/ext_poisson/PoissonRecon/Src/SparseMatrix.inl with error:
build/poisson/src/ext_poisson/PoissonRecon/Src/SparseMatrix.inl:466:24: error: reference to non-static member function must be called
466 | for( size_t i=0 ; i<A.rows ; i++ )
| ~~^~~~
A hack fix is in this patch of cpp/open3d/ml/impl/misc/VoxelPooling.h, which hacks into the cmake build a patch of ${CMAKE_BINARY_DIR}/poisson/src/ext_poisson/PoissonRecon/Src/SparseMatrix.inl that edits A.rows into A.rows() at lines 466 and 499:
--- ./3rdparty/possionrecon/possionrecon.cmake 2026-05-15 12:38:49
+++ ./3rdparty/possionrecon/possionrecon.cmake 2026-05-16 00:42:33
@@ -1,5 +1,27 @@
include(ExternalProject)
+# Fix https://github.com/isl-org/Open3D/issues/7390
+# A.rows() rather than A.rows
+set(PATCH_SCRIPT_NAME "fix_issue_7390.sh")
+set(PATCH_SCRIPT_PATH "${CMAKE_SOURCE_DIR}/3rdparty/possionrecon/${PATCH_SCRIPT_NAME}")
+if(NOT EXISTS "${PATCH_SCRIPT_PATH}")
+ file(GENERATE
+ OUTPUT "${PATCH_SCRIPT_PATH}"
+ CONTENT "#!/bin/bash -x
+
+if [ -f ${CMAKE_BINARY_DIR}/poisson/src/ext_poisson/PoissonRecon/Src/SparseMatrix.inl ] $<SEMICOLON> then
+ for lineno in 466 499 $<SEMICOLON> do
+ sed -E -i '' \"\$\{lineno\}s|(A\\.rows)([[:space:]]+)|\\1()\\2|\" \\
+ ${CMAKE_BINARY_DIR}/poisson/src/ext_poisson/PoissonRecon/Src/SparseMatrix.inl \\
+ && echo 'sed -E SUCCESSFUL' || echo 'sed -E FAILED' $<SEMICOLON>
+ done $<SEMICOLON>
+else
+ echo \"File '${CMAKE_BINARY_DIR}/poisson/src/ext_poisson/PoissonRecon/Src/SparseMatrix.inl' NOT FOUND!\" $<SEMICOLON>
+fi"
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+ )
+endif()
+
ExternalProject_Add(
ext_poisson
PREFIX poisson
@@ -10,7 +32,13 @@
UPDATE_COMMAND ""
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
- INSTALL_COMMAND ""
+ # INSTALL_COMMAND ""
+
+ INSTALL_COMMAND bash -x -c "if [ -x ${PATCH_SCRIPT_PATH} ] $<SEMICOLON> then \
+ ${PATCH_SCRIPT_PATH} $<SEMICOLON> \
+ else \
+ echo '${PATCH_SCRIPT_PATH} NOT FOUND!' $<SEMICOLON> \
+ fi"
)
ExternalProject_Get_Property(ext_poisson SOURCE_DIR)
Additional information
Related: #7390
Error message
build/poisson/src/ext_poisson/PoissonRecon/Src/SparseMatrix.inl:466:24: error: reference to non-static member function must be called
466 | for( size_t i=0 ; i<A.rows ; i++ )
| ~~^~~~
Open3D, Python and System information
- Operating system: macOS 26
- Python version: Python 3.14`
- Open3D version: 0.19.0`
- System architecture: arm64
- Is this a remote workstation?: no
- How did you install Open3D?: build from source
- Compiler version (if built from source): clang
Additional information
No response
Checklist
mainbranch).Steps to reproduce the issue
I’ve submitted a MacPorts Portfile for Open3D at macports/macports-ports#32787
The
clangbuild fails when compilingpossionreconatbuild/poisson/src/ext_poisson/PoissonRecon/Src/SparseMatrix.inlwith error:A hack fix is in this patch of
cpp/open3d/ml/impl/misc/VoxelPooling.h, which hacks into thecmakebuild a patch of${CMAKE_BINARY_DIR}/poisson/src/ext_poisson/PoissonRecon/Src/SparseMatrix.inlthat editsA.rowsintoA.rows()at lines 466 and 499:Additional information
Related: #7390
Error message
Open3D, Python and System information
Additional information
No response