42 lines
1.7 KiB
CMake
42 lines
1.7 KiB
CMake
|
|
###############################################################################
|
||
|
|
# Find Eigen3
|
||
|
|
#
|
||
|
|
# This sets the following variables:
|
||
|
|
# EIGEN_FOUND - True if Eigen was found.
|
||
|
|
# EIGEN_INCLUDE_DIRS - Directories containing the Eigen include files.
|
||
|
|
# EIGEN_DEFINITIONS - Compiler flags for Eigen.
|
||
|
|
# EIGEN_VERSION - Package version
|
||
|
|
|
||
|
|
find_package(PkgConfig QUIET)
|
||
|
|
pkg_check_modules(PC_EIGEN eigen3)
|
||
|
|
set(EIGEN_DEFINITIONS ${PC_EIGEN_CFLAGS_OTHER})
|
||
|
|
|
||
|
|
find_path(EIGEN_INCLUDE_DIR Eigen/Core
|
||
|
|
HINTS "${EIGEN_ROOT}" "$ENV{EIGEN_ROOT}" ${PC_EIGEN_INCLUDEDIR} ${PC_EIGEN_INCLUDE_DIRS}
|
||
|
|
PATHS "$ENV{PROGRAMFILES}/Eigen" "$ENV{PROGRAMW6432}/Eigen"
|
||
|
|
"$ENV{PROGRAMFILES}/Eigen3" "$ENV{PROGRAMW6432}/Eigen3"
|
||
|
|
PATH_SUFFIXES eigen3 include/eigen3 include)
|
||
|
|
|
||
|
|
if(EIGEN_INCLUDE_DIR)
|
||
|
|
file(READ "${EIGEN_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen_version_header)
|
||
|
|
|
||
|
|
string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen_world_version_match "${_eigen_version_header}")
|
||
|
|
set(EIGEN_WORLD_VERSION "${CMAKE_MATCH_1}")
|
||
|
|
string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen_major_version_match "${_eigen_version_header}")
|
||
|
|
set(EIGEN_MAJOR_VERSION "${CMAKE_MATCH_1}")
|
||
|
|
string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen_minor_version_match "${_eigen_version_header}")
|
||
|
|
set(EIGEN_MINOR_VERSION "${CMAKE_MATCH_1}")
|
||
|
|
set(EIGEN_VERSION ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})
|
||
|
|
endif()
|
||
|
|
|
||
|
|
set(EIGEN_INCLUDE_DIRS ${EIGEN_INCLUDE_DIR})
|
||
|
|
|
||
|
|
include(FindPackageHandleStandardArgs)
|
||
|
|
find_package_handle_standard_args(Eigen DEFAULT_MSG EIGEN_INCLUDE_DIR)
|
||
|
|
|
||
|
|
mark_as_advanced(EIGEN_INCLUDE_DIR)
|
||
|
|
|
||
|
|
if(EIGEN_FOUND)
|
||
|
|
message(STATUS "Eigen found (include: ${EIGEN_INCLUDE_DIRS}, version: ${EIGEN_VERSION})")
|
||
|
|
endif()
|