lol
1From a29cffa646356228d6ec7bd7ce21fe3ab90fdd19 Mon Sep 17 00:00:00 2001
2From: Someone Serge <sergei.kozlukov@aalto.fi>
3Date: Wed, 7 Feb 2024 16:59:09 +0000
4Subject: [PATCH] eigen: allow dependency injection
5
6---
7 cmake/external/eigen.cmake | 12 +++++++++---
8 1 file changed, 9 insertions(+), 3 deletions(-)
9
10diff --git a/cmake/external/eigen.cmake b/cmake/external/eigen.cmake
11index c0f7ddc50e..996b83d18a 100644
12--- a/cmake/external/eigen.cmake
13+++ b/cmake/external/eigen.cmake
14@@ -1,4 +1,3 @@
15-
16 if (onnxruntime_USE_PREINSTALLED_EIGEN)
17 add_library(eigen INTERFACE)
18 file(TO_CMAKE_PATH ${eigen_SOURCE_PATH} eigen_INCLUDE_DIRS)
19@@ -10,14 +9,21 @@ else ()
20 URL ${DEP_URL_eigen}
21 URL_HASH SHA1=${DEP_SHA1_eigen}
22 PATCH_COMMAND ${Patch_EXECUTABLE} --ignore-space-change --ignore-whitespace < ${PROJECT_SOURCE_DIR}/patches/eigen/Fix_Eigen_Build_Break.patch
23+ FIND_PACKAGE_ARGS NAMES Eigen3
24 )
25 else()
26 FetchContent_Declare(
27 eigen
28 URL ${DEP_URL_eigen}
29 URL_HASH SHA1=${DEP_SHA1_eigen}
30+ FIND_PACKAGE_ARGS NAMES Eigen3
31 )
32 endif()
33- FetchContent_Populate(eigen)
34- set(eigen_INCLUDE_DIRS "${eigen_SOURCE_DIR}")
35+ FetchContent_MakeAvailable(eigen)
36+ add_library(eigen ALIAS Eigen3::Eigen)
37+
38+ # Onnxruntime doesn't always use `eigen` as a target in
39+ # `target_link_libraries`, sometimes it just uses
40+ # `target_include_directories`:
41+ get_target_property(eigen_INCLUDE_DIRS Eigen3::Eigen INTERFACE_INCLUDE_DIRECTORIES)
42 endif()
43--
442.42.0
45