Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion cmake/modules/FindEigen3.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,18 @@ if(NOT Eigen3_FIND_VERSION)
endif()

macro(_eigen3_check_version)
file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header)
# Try the Eigen 5.x location first
if(EXISTS "${EIGEN3_INCLUDE_DIR}/Eigen/Version")
file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/Version" _eigen3_version_header)
# Fall back to Eigen 3.x location
elseif(EXISTS "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h")
file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header)
else()
# Could not locate any known Eigen version header; mark version as not OK and return.
set(EIGEN3_VERSION_OK FALSE)
message(STATUS "Could not find Eigen version header under ${EIGEN3_INCLUDE_DIR}")
return()
endif()

string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}")
set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}")
Expand Down
2 changes: 1 addition & 1 deletion export/CMakeLists.txt.export
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ find_package(Eigen3 MODULE)
if (TARGET Eigen3::Eigen)
set(LIBINT_HAS_EIGEN 1)
endif()
if (LIBINT2_REQUIRE_CXX_API AND NOT ${LIBINT_HAS_EIGEN})
if (LIBINT2_REQUIRE_CXX_API AND NOT LIBINT_HAS_EIGEN)
message(FATAL_ERROR "C++ API cannot be built without Eigen3; configure (via CMake) and install Eigen3 and add the install prefix to CMAKE_PREFIX_PATH, or add -D LIBINT2_REQUIRE_CXX_API=OFF to the CMake command line if the C++ API is not required")
endif()

Expand Down
Loading