From 8d3e64dd5e64b346ed3e412cba2b70d760881bfb Mon Sep 17 00:00:00 2001 From: Alex Stewart Date: Tue, 16 Nov 2021 19:51:06 +0000 Subject: [PATCH] Use modern-style Eigen3 CMake variables Change-Id: I4c14aa54552b3f718dff90eb397cb030aeb6ecd4 --- CMakeLists.txt | 6 +++--- cmake/CeresConfig.cmake.in | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 055bd0e12..4851be506 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -239,8 +239,8 @@ message("-- Building with C++${CMAKE_CXX_STANDARD}") # Eigen. # Eigen delivers Eigen3Config.cmake since v3.3.3 find_package(Eigen3 3.3 REQUIRED) -if (EIGEN3_FOUND) - message("-- Found Eigen version ${Eigen3_VERSION}: ${EIGEN3_INCLUDE_DIRS}") +if (Eigen3_FOUND) + message("-- Found Eigen version ${Eigen3_VERSION}: ${Eigen3_DIR}") if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)" AND Eigen3_VERSION VERSION_LESS 3.3.4) # As per issue #289: https://github.com/ceres-solver/ceres-solver/issues/289 @@ -258,7 +258,7 @@ if (EIGEN3_FOUND) message(" which can still use the EIGEN_SPARSE_QR algorithm.") add_definitions(-DEIGEN_MPL2_ONLY) endif (EIGENSPARSE) -endif (EIGEN3_FOUND) +endif (Eigen3_FOUND) if (LAPACK) find_package(LAPACK QUIET) diff --git a/cmake/CeresConfig.cmake.in b/cmake/CeresConfig.cmake.in index e5e297604..907646feb 100644 --- a/cmake/CeresConfig.cmake.in +++ b/cmake/CeresConfig.cmake.in @@ -187,30 +187,30 @@ find_dependency(Threads) # Eigen. # Flag set during configuration and build of Ceres. -set(CERES_EIGEN_VERSION @EIGEN3_VERSION_STRING@) +set(CERES_EIGEN_VERSION @Eigen3_VERSION@) # Search quietly to control the timing of the error message if not found. The # search should be for an exact match, but for usability reasons do a soft # match and reject with an explanation below. find_package(Eigen3 ${CERES_EIGEN_VERSION} QUIET) -if (EIGEN3_FOUND) - if (NOT EIGEN3_VERSION_STRING VERSION_EQUAL CERES_EIGEN_VERSION) +if (Eigen3_FOUND) + if (NOT Eigen3_VERSION VERSION_EQUAL CERES_EIGEN_VERSION) # CMake's VERSION check in FIND_PACKAGE() will accept any version >= the # specified version. However, only version = is supported. Improve # usability by explaining why we don't accept non-exact version matching. ceres_report_not_found("Found Eigen dependency, but the version of Eigen " - "found (${EIGEN3_VERSION_STRING}) does not exactly match the version of Eigen " + "found (${Eigen3_VERSION}) does not exactly match the version of Eigen " "Ceres was compiled with (${CERES_EIGEN_VERSION}). This can cause subtle " "bugs by triggering violations of the One Definition Rule. See the " "Wikipedia article http://en.wikipedia.org/wiki/One_Definition_Rule " "for more details") endif () ceres_message(STATUS "Found required Ceres dependency: " - "Eigen version ${CERES_EIGEN_VERSION} in ${EIGEN3_INCLUDE_DIRS}") -else (EIGEN3_FOUND) + "Eigen version ${CERES_EIGEN_VERSION} in ${Eigen3_DIR}") +else (Eigen3_FOUND) ceres_report_not_found("Missing required Ceres " "dependency: Eigen version ${CERES_EIGEN_VERSION}, please set " "Eigen3_DIR.") -endif (EIGEN3_FOUND) +endif (Eigen3_FOUND) # glog (and maybe gflags). #