From cb99bb719da2d49d4221f31ad22cd4ec353baa60 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Mon, 20 Sep 2021 07:39:36 +1000 Subject: [PATCH 1/2] Add remove-exact-eigen-requirement.patch to meta.yaml --- recipe/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index f350fe6..11acdd0 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -7,12 +7,13 @@ package: source: url: http://ceres-solver.org/ceres-solver-{{ version }}.tar.gz sha256: 10298a1d75ca884aa0507d1abb0e0f04800a92871cd400d4c361b56a777a7603 + patches: + - remove-exact-eigen-requirement.patch build: - number: 4 + number: 5 run_exports: - {{ pin_subpackage('ceres-solver', max_pin='x.x') }} - - {{ pin_compatible('eigen', max_pin='x.x.x') }} requirements: build: From 35e3dd3df1ab453c0a5eceb43d56e7c97d787f1f Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Mon, 20 Sep 2021 07:39:57 +1000 Subject: [PATCH 2/2] Create remove-exact-eigen-requirement.patch --- recipe/remove-exact-eigen-requirement.patch | 22 +++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 recipe/remove-exact-eigen-requirement.patch diff --git a/recipe/remove-exact-eigen-requirement.patch b/recipe/remove-exact-eigen-requirement.patch new file mode 100644 index 0000000..389b334 --- /dev/null +++ b/recipe/remove-exact-eigen-requirement.patch @@ -0,0 +1,22 @@ +diff --git a/cmake/CeresConfig.cmake.in b/cmake/CeresConfig.cmake.in +index e5e2976..184d4eb 100644 +--- a/cmake/CeresConfig.cmake.in ++++ b/cmake/CeresConfig.cmake.in +@@ -193,17 +193,6 @@ set(CERES_EIGEN_VERSION @EIGEN3_VERSION_STRING@) + # 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) +- # 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 " +- "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)