From 2d6929bdcd98beaa28fa8ee3a105beb566f16347 Mon Sep 17 00:00:00 2001
From: Markus Vieth <39675748+mvieth@users.noreply.github.com>
Date: Sat, 27 Sep 2025 17:58:30 +0200
Subject: [PATCH] Enable compilation with Eigen 5.0.0 (#6354)

* Enable compilation with Eigen 5.0.0

* Fix Eigen3 package version requirement

* Additional change in PCLConfig.cmake.in

* Add version check in CMakeLists.txt

Add version check for Eigen3 to ensure compatibility.

* Add version check in PCLConfig.cmake.in
---
 CMakeLists.txt     | 5 ++++-
 PCLConfig.cmake.in | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 302215496a5..01ea783abd5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -346,7 +346,10 @@ endif()
 find_package(Threads REQUIRED)
 
 # Eigen3 (required)
-find_package(Eigen3 3.3 REQUIRED NO_MODULE)
+find_package(Eigen3 REQUIRED NO_MODULE)
+if (Eigen3_VERSION VERSION_LESS 3.3)
+  message(FATAL_ERROR "Eigen version>=3.3 is required, but found ${Eigen3_VERSION}")
+endif()
 if(NOT EIGEN3_FOUND AND Eigen3_FOUND)
     set(EIGEN3_FOUND ${Eigen3_FOUND})
 endif()
diff --git a/PCLConfig.cmake.in b/PCLConfig.cmake.in
index d90f4a225a6..54ba7f16cc9 100644
--- a/PCLConfig.cmake.in
+++ b/PCLConfig.cmake.in
@@ -118,7 +118,10 @@ macro(find_eigen3)
   if(PCL_ALL_IN_ONE_INSTALLER)
     set(Eigen3_DIR "${PCL_ROOT}/3rdParty/Eigen3/share/eigen3/cmake/")
   endif()
-  find_package(Eigen3 3.3 REQUIRED NO_MODULE)
+  find_package(Eigen3 REQUIRED NO_MODULE)
+  if (Eigen3_VERSION VERSION_LESS 3.3)
+    message(FATAL_ERROR "Eigen version>=3.3 is required, but found ${Eigen3_VERSION}")
+  endif()
   if(NOT EIGEN3_FOUND AND Eigen3_FOUND)
     set(EIGEN3_FOUND ${Eigen3_FOUND})
   endif()
