Require Eigen >= 3.3.4 on aarch64. - Raised as issue #289: https://github.com/ceres-solver/ceres-solver/issues/289. Change-Id: I35888bf7eb3498cefbf02dadc893b231e0a9229f
diff --git a/CMakeLists.txt b/CMakeLists.txt index 7df2219..88410f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -205,12 +205,21 @@ # Eigen. find_package(Eigen REQUIRED) if (EIGEN_FOUND) + message("-- Found Eigen version ${EIGEN_VERSION}: ${EIGEN_INCLUDE_DIRS}") if (EIGEN_VERSION VERSION_LESS 3.1.0) message(FATAL_ERROR "-- Ceres requires Eigen version >= 3.1.0 in order " "that Eigen/SparseCore be available, detected version of Eigen is: " "${EIGEN_VERSION}") endif (EIGEN_VERSION VERSION_LESS 3.1.0) - message("-- Found Eigen version ${EIGEN_VERSION}: ${EIGEN_INCLUDE_DIRS}") + + if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)" AND + EIGEN_VERSION VERSION_LESS 3.3.4) + # As per issue #289: https://github.com/ceres-solver/ceres-solver/issues/289 + # the bundle_adjustment_test will fail for Eigen < 3.3.4 on aarch64. + message(FATAL_ERROR "-- Ceres requires Eigen version >= 3.3.4 on aarch64. " + "Detected version of Eigen is: ${EIGEN_VERSION}.") + endif() + if (EIGENSPARSE) message("-- Enabling use of Eigen as a sparse linear algebra library.") list(APPEND CERES_COMPILE_OPTIONS CERES_USE_EIGEN_SPARSE)