From c1715d9ecaf9418f8936af60d2c6d407858ba86b Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Sat, 9 May 2026 11:16:23 -0500 Subject: [PATCH] BUG: Restore eigen_internal export to ITK's main targets set (#6239) Commit 64ddc666 (Eigen 5.0.1 vendored update, 2026-05-01) silently moved eigen_internal out of ITK's main `${ITK3P_INSTALL_EXPORT_NAME}` export set into a standalone `ITKInternalEigen3Targets`. Because `ITKConfig.cmake` only loads `ITKTargets.cmake`, downstream `find_package(ITK)` could no longer resolve `eigen_internal` and any consumer using FetchContent with `FIND_PACKAGE_ARGS` (SimpleITK's pattern) hit a target-collision cascade as CMake fell back to `add_subdirectory`. Re-add the install rule that registers `eigen_internal` in `${ITK3P_INSTALL_EXPORT_NAME}` while keeping the existing standalone `ITKInternalEigen3Targets` install for `find_package(ITKInternalEigen3)` consumers. Both export sets now reference the same target. Issue: #6239 --- Modules/ThirdParty/Eigen3/src/itkeigen/CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Modules/ThirdParty/Eigen3/src/itkeigen/CMakeLists.txt b/Modules/ThirdParty/Eigen3/src/itkeigen/CMakeLists.txt index b3658c338be..7731b4c14cb 100644 --- a/Modules/ThirdParty/Eigen3/src/itkeigen/CMakeLists.txt +++ b/Modules/ThirdParty/Eigen3/src/itkeigen/CMakeLists.txt @@ -965,6 +965,12 @@ target_include_directories (eigen_internal SYSTEM INTERFACE # Export as title case Eigen set_target_properties (eigen_internal PROPERTIES EXPORT_NAME Eigen) +# Register in ITK's main export set so find_package(ITK) resolves +# eigen_internal as an IMPORTED target loaded from ITKTargets.cmake +# (issue #6239: SimpleITK FetchContent + FIND_PACKAGE_ARGS fallback). +install (TARGETS eigen_internal EXPORT ${ITK3P_INSTALL_EXPORT_NAME}) +# Also register in the standalone ITKInternalEigen3 export set used by +# find_package(ITKInternalEigen3) consumers. install (TARGETS eigen_internal EXPORT ITKInternalEigen3Targets) set(EIGEN3_TARGETS_FILE ITKInternalEigen3Targets.cmake)