3 if (NOT DEFINED INSTALL_EIGEN)
4 set (INSTALL_EIGEN OFF CACHE BOOL "${INSTALL_EIGEN_DESCR}")
8 if (NOT DEFINED 3RDPARTY_EIGEN_DIR)
9 set (3RDPARTY_EIGEN_DIR "" CACHE PATH "The directory containing eigen")
12 # search for eigen in user defined directory
13 if (3RDPARTY_DIR AND EXISTS "${3RDPARTY_DIR}")
14 if (NOT 3RDPARTY_EIGEN_DIR OR NOT EXISTS "${3RDPARTY_EIGEN_DIR}")
15 FIND_PRODUCT_DIR("${3RDPARTY_DIR}" Eigen EIGEN_DIR_NAME)
17 set (3RDPARTY_EIGEN_DIR "${3RDPARTY_DIR}/${EIGEN_DIR_NAME}" CACHE PATH "The directory containing eigen" FORCE)
22 if (NOT DEFINED 3RDPARTY_EIGEN_INCLUDE_DIR)
23 set (3RDPARTY_EIGEN_INCLUDE_DIR "" CACHE FILEPATH "The directory containing headers of the EIGEN")
26 if (NOT 3RDPARTY_EIGEN_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_EIGEN_INCLUDE_DIR}")
28 set (HEADER_NAMES Eigen)
30 set (3RDPARTY_EIGEN_INCLUDE_DIR "3RDPARTY_EIGEN_INCLUDE_DIR-NOTFOUND" CACHE PATH "the path to Eigen header file" FORCE)
32 if (3RDPARTY_EIGEN_DIR AND EXISTS "${3RDPARTY_EIGEN_DIR}")
33 find_path (3RDPARTY_EIGEN_INCLUDE_DIR NAMES ${HEADER_NAMES}
34 PATHS ${3RDPARTY_EIGEN_DIR}
35 PATH_SUFFIXES include eigen3 include/eigen3
36 CMAKE_FIND_ROOT_PATH_BOTH
39 find_path (3RDPARTY_EIGEN_INCLUDE_DIR NAMES ${HEADER_NAMES}
40 PATH_SUFFIXES include eigen3 include/eigen3
41 CMAKE_FIND_ROOT_PATH_BOTH)
44 # use default (CMake) EIGEN search
45 if (NOT 3RDPARTY_EIGEN_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_EIGEN_INCLUDE_DIR}")
46 # use 3RDPARTY_EIGEN_DIR if it is specified for eigen search
47 if (3RDPARTY_EIGEN_DIR AND EXISTS "${3RDPARTY_EIGEN_DIR}")
48 set (CACHED_EIGEN_DIR $ENV{Eigen3_DIR})
49 set (ENV{Eigen3_DIR} "${3RDPARTY_EIGEN_DIR}")
52 find_package(Eigen3 QUIET)
54 # restore ENV{Eigen3_DIR}
55 if (3RDPARTY_EIGEN_DIR AND EXISTS "${3RDPARTY_EIGEN_DIR}")
56 set (ENV{Eigen3_DIR} ${CACHED_EIGEN_DIR})
60 set (3RDPARTY_EIGEN_INCLUDE_DIR "${EIGEN3_INCLUDE_DIR}" CACHE PATH "the path to Eigen header file" FORCE)
61 set (3RDPARTY_EIGEN_DIR "${EIGEN3_ROOT_DIR}" CACHE PATH "The directory containing eigen" FORCE)
66 if (3RDPARTY_EIGEN_INCLUDE_DIR AND EXISTS "${3RDPARTY_EIGEN_INCLUDE_DIR}")
67 list (APPEND 3RDPARTY_INCLUDE_DIRS "${3RDPARTY_EIGEN_INCLUDE_DIR}")
69 # Install header files
71 file(GLOB EIGEN_SUBDIRS "${3RDPARTY_EIGEN_INCLUDE_DIR}/*")
72 foreach(SUBDIR ${EIGEN_SUBDIRS})
73 if(IS_DIRECTORY "${SUBDIR}")
74 install (DIRECTORY "${SUBDIR}" DESTINATION "${INSTALL_DIR_INCLUDE}")
76 install (FILES "${SUBDIR}" DESTINATION "${INSTALL_DIR_INCLUDE}")
81 list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_EIGEN_INCLUDE_DIR)
83 set (3RDPARTY_EIGEN_INCLUDE_DIR "" CACHE PATH "the path to Eigen header file" FORCE)
86 # unset all redundant variables
87 OCCT_CHECK_AND_UNSET(Eigen3_DIR)