| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | set(EIGEN3_INCLUDE_DIR_HINTS "" CACHE PATH "Eigen include directory") |
| |
|
| | unset(EIGEN3_FOUND) |
| | unset(EIGEN3_VERSION) |
| | unset(EIGEN3_INCLUDE_DIRS) |
| |
|
| | if(NOT Eigen3_FIND_VERSION) |
| | if(NOT Eigen3_FIND_VERSION_MAJOR) |
| | set(Eigen3_FIND_VERSION_MAJOR 2) |
| | endif() |
| |
|
| | if(NOT Eigen3_FIND_VERSION_MINOR) |
| | set(Eigen3_FIND_VERSION_MINOR 91) |
| | endif() |
| |
|
| | if(NOT Eigen3_FIND_VERSION_PATCH) |
| | set(Eigen3_FIND_VERSION_PATCH 0) |
| | endif() |
| |
|
| | set(Eigen3_FIND_VERSION "${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}") |
| | endif() |
| |
|
| | macro(_EIGEN3_CHECK_VERSION) |
| | file(READ "${EIGEN3_INCLUDE_DIRS}/Eigen/src/Core/util/Macros.h" _EIGEN3_VERSION_HEADER) |
| |
|
| | string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _EIGEN3_WORLD_VERSION_MATCH "${_EIGEN3_VERSION_HEADER}") |
| | set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}") |
| | string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _EIGEN3_MAJOR_VERSION_MATCH "${_EIGEN3_VERSION_HEADER}") |
| | set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}") |
| | string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _EIGEN3_MINOR_VERSION_MATCH "${_EIGEN3_VERSION_HEADER}") |
| | set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}") |
| |
|
| | set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION}) |
| |
|
| | if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) |
| | set(EIGEN3_VERSION_OK FALSE) |
| | else() |
| | set(EIGEN3_VERSION_OK TRUE) |
| | endif() |
| |
|
| | if(NOT EIGEN3_VERSION_OK) |
| | message(STATUS "Eigen version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIRS}, " |
| | "but at least version ${Eigen3_FIND_VERSION} is required.") |
| | endif() |
| | endmacro() |
| |
|
| | if(EIGEN3_INCLUDE_DIRS) |
| | _EIGEN3_CHECK_VERSION() |
| | set(EIGEN3_FOUND ${EIGEN3_VERSION_OK}) |
| | else() |
| | find_path(EIGEN3_INCLUDE_DIRS |
| | NAMES |
| | signature_of_eigen3_matrix_library |
| | PATHS |
| | ${EIGEN3_INCLUDE_DIR_HINTS} |
| | /usr/include |
| | /usr/local/include |
| | /opt/include |
| | /opt/local/include |
| | PATH_SUFFIXES |
| | eigen3 |
| | eigen |
| | ) |
| |
|
| | if(EIGEN3_INCLUDE_DIRS) |
| | _EIGEN3_CHECK_VERSION() |
| | endif() |
| |
|
| | include(FindPackageHandleStandardArgs) |
| | find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIRS EIGEN3_VERSION_OK) |
| |
|
| | mark_as_advanced(EIGEN3_INCLUDE_DIRS) |
| | endif() |
| |
|
| | if(EIGEN3_FOUND) |
| | message(STATUS "Found Eigen") |
| | message(STATUS " Includes : ${EIGEN3_INCLUDE_DIRS}") |
| | else() |
| | if(Eigen3_FIND_REQUIRED) |
| | message(FATAL_ERROR "Could not find Eigen") |
| | endif() |
| | endif() |
| |
|