1 find_path(Eigen3_INCLUDE_DIR
2 NAMES signature_of_eigen3_matrix_library
3 PATH_SUFFIXES eigen3 eigen
4 DOC
"Eigen include directory")
5 mark_as_advanced(Eigen3_INCLUDE_DIR)
7 if (Eigen3_INCLUDE_DIR)
8 file(STRINGS
"${Eigen3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _Eigen3_version_lines
9 REGEX
"#define[ \t]+EIGEN_(WORLD|MAJOR|MINOR)_VERSION")
10 string(REGEX REPLACE
".*EIGEN_WORLD_VERSION *\([0-9]*\).*" "\\1" _Eigen3_version_world
"${_Eigen3_version_lines}")
11 string(REGEX REPLACE
".*EIGEN_MAJOR_VERSION *\([0-9]*\).*" "\\1" _Eigen3_version_major
"${_Eigen3_version_lines}")
12 string(REGEX REPLACE
".*EIGEN_MINOR_VERSION *\([0-9]*\).*" "\\1" _Eigen3_version_minor
"${_Eigen3_version_lines}")
13 set(Eigen3_VERSION
"${_Eigen3_version_world}.${_Eigen3_version_major}.${_Eigen3_version_minor}")
14 unset(_Eigen3_version_world)
15 unset(_Eigen3_version_major)
16 unset(_Eigen3_version_minor)
17 unset(_Eigen3_version_lines)
20 include(FindPackageHandleStandardArgs)
21 find_package_handle_standard_args(Eigen3
22 REQUIRED_VARS Eigen3_INCLUDE_DIR
23 VERSION_VAR Eigen3_VERSION)
26 set(Eigen3_INCLUDE_DIRS "${Eigen3_INCLUDE_DIR}
") 28 if (NOT TARGET Eigen3::Eigen3) 29 add_library(Eigen3::Eigen3 INTERFACE IMPORTED) 30 set_target_properties(Eigen3::Eigen3 PROPERTIES 31 INTERFACE_INCLUDE_DIRECTORIES "${Eigen3_INCLUDE_DIR}
")