Ensure Eigen is at least 3.1.0 for Eigen/SparseCore. - Eigen/SparseCore is required by covariance_impl, this was added in v 3.1.0 of Eigen, and thus without at least this version Ceres will not compile. - Note that Ubuntu 12.04 provides only version 3.0.5 in the mainline repository. - Update docs to match CMake check for Eigen >= 3.2.2 to avoid warning about reduced sparse performance. Change-Id: I291bb185d1c76e1e1422429169a76e3f1b828163
diff --git a/CMakeLists.txt b/CMakeLists.txt index 1812df4..1565413 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -262,6 +262,12 @@ HANDLE_LEGACY_INCLUDE_DEPENDENCY_HINT(EIGEN_INCLUDE EIGEN_INCLUDE_DIR_HINTS) FIND_PACKAGE(Eigen REQUIRED) IF (EIGEN_FOUND) + 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}") # Ensure that only MPL2 licensed code is part of the default build. MESSAGE("")
diff --git a/docs/source/building.rst b/docs/source/building.rst index fd86e7e..9d6ab82 100644 --- a/docs/source/building.rst +++ b/docs/source/building.rst
@@ -26,7 +26,7 @@ :ref:`section-customizing` . - `Eigen <http://eigen.tuxfamily.org/index.php?title=Main_Page>`_ - 3.2.1 or later. **Required** + 3.2.2 or later **strongly** recommended, 3.1.0 or later **required**. .. NOTE ::