Skip to content

Update eigen 5.0.1 v3#6259

Draft
blowekamp wants to merge 3 commits into
InsightSoftwareConsortium:mainfrom
blowekamp:update_eigen_5.0.1_v3
Draft

Update eigen 5.0.1 v3#6259
blowekamp wants to merge 3 commits into
InsightSoftwareConsortium:mainfrom
blowekamp:update_eigen_5.0.1_v3

Conversation

@blowekamp
Copy link
Copy Markdown
Member

PR Checklist

  • No API changes were made (or the changes have been approved)
  • No major design changes were made (or the changes have been approved)
  • Added test (or behavior not changed)
  • Updated API documentation (or API not changed)
  • Added license to new files (if any)
  • Added Python wrapping to new files (if any) as described in ITK Software Guide Section 9.5
  • Added ITK examples for all new major features (if any)

Refer to the ITK Software Guide for
further development details if necessary.

@seanm
Copy link
Copy Markdown
Contributor

seanm commented May 12, 2026

Will this fix the breakage I reported a few days ago here?

@blowekamp
Copy link
Copy Markdown
Member Author

Will this fix the breakage I reported a few days ago here?

I am just testing from an installed ITK with SimpleITK and it seems to be working. There are more things that I need to check and it will take some time to do so.

@hjmjohnson
Copy link
Copy Markdown
Member

Build matrix results for PR #6259 (Linux, 48-core cortex.ecn.uiowa.edu)

Repeating the M1–M6 gauntlet from PR #6249 against this PR's head (19091e73fe). All six modes pass cleanly.

Mode What Status Notes
M1 FetchContent root build SimpleITK CMakeLists.txtsitkITKFetchContent.cmake, ITK_GIT_REPOSITORY pointed at local PR head ✅ 3186/3186 targets, 0 errors, 50 libSimpleITK*.a ITK fetched + built fresh from PR head
M2 Superbuild from installed ITK USE_SYSTEM_ITK=ON, ITK_DIR=<install>/lib/cmake/ITK-6.0 ✅ Superbuild 37/37, 0 errors, 94 libSimpleITK*.a ITK::eigen_internal present in installed ITKTargets.cmake
M3 Superbuild with ITK_USE_BUILD_DIR=ON ITK_DIR=<ITK-bld> (build tree consumer) ✅ Superbuild 45/45, 0 errors, 100 libSimpleITK*.a ITK::eigen_internal present in build-tree ITKTargets.cmake
M4 M2 with system Eigen 5.0.1 ITK rebuilt + installed with ITK_USE_SYSTEM_EIGEN=ON, Eigen3_DIR=<conda-forge eigen 5.0.1> ✅ Superbuild 37/37, 0 errors, 94 libSimpleITK*.a eigen_internal absent (system path) — PR's fork-tag has no effect
M5 M3 with system Eigen 3.4.0 ITK build tree configured with ITK_USE_SYSTEM_EIGEN=ON, Eigen3_DIR=/usr/share/eigen3/cmake ✅ Superbuild 45/45, 0 errors, 100 libSimpleITK*.a Same bypass as M4; ITK 5.0.1 fork still compatible with system Eigen 3.4.0
M6 Wrapped remote module vs ITK build tree ITKTotalVariation PR #57 (cmake_interface_update) with ITK_DIR=<ITK-bld> libitkproxTV-6.0.a + TotalVariationTestDriver + TotalVariationHeaderTest1 linked proxTV <Eigen/Dense> resolution via ITKEigen3_INCLUDE_DIRS clean
Linux-specific substitutions for system Eigen

The original PR #6249 matrix used macOS homebrew Eigen 5.0.1 for M4 and a downloaded Eigen 3.4.0 for M5. On Linux, the equivalent sources are:

  • M4 (Eigen 5.0.1): conda-forge::eigen-5.0.1-hc65338a_0 installed via pixi into /home/johnsonhj/src/eigen6259-eigen501-env/.pixi/envs/default/share/eigen3/cmake. SHA256 f122c5bb618532eb40124f34dc3d467b9142c4a573c206e3e6a51df671345d6a.
  • M5 (Eigen 3.4.0): Ubuntu libeigen3-dev 3.4.0-4build0.1, CMake config at /usr/share/eigen3/cmake.

Both report Found Eigen3: ... (found suitable version "<expected>") in the ITK CMake configure pass.

@hjmjohnson
Copy link
Copy Markdown
Member

@blowekamp, very minor ghostflow issues. I think it may need to be addressed in ISC/eigen with a new branch that is then updated here.

Used ISC eigen branch name "itk_module_install" as prior forked
branch. Rebased all prior fork commits onto upstream 5.0.1.

Ported ITK local commit for eigen to be applied to fork.
@blowekamp blowekamp force-pushed the update_eigen_5.0.1_v3 branch from 19091e7 to 7700a8c Compare May 12, 2026 20:58
kwrobot and others added 2 commits May 12, 2026 17:05
Code extracted from:

    https://github.com/InsightSoftwareConsortium/eigen

at commit 572347d14a7c2960af406712a541b72ce335690b (for/itk-5.0.1-v3).
* upstream-Eigen3:
  Eigen3 2026-05-12 (572347d1)
@blowekamp blowekamp force-pushed the update_eigen_5.0.1_v3 branch from 7700a8c to eb3e74d Compare May 12, 2026 21:06
@blowekamp
Copy link
Copy Markdown
Member Author

@blowekamp, very minor ghostflow issues. I think it may need to be addressed in ISC/eigen with a new branch that is then updated here.

Yes that did the trick. I added another commit to the fork branch:
https://github.com/InsightSoftwareConsortium/eigen/commits/for/itk-5.0.1-v3/

Likely some of these should be squashed to make future updates easier. For example just one commit for the modification of the CMakeLists.txt file and the commit message updates.

With these changes and workflow, Eigen should be updated to 5.0.1, and have the same functionality as before the update to 5 started. There are still a couple questionable features within the ITK Cmake infrastructure that are in a questionable state.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants