4 if (NOT DEFINED 3RDPARTY_EIGEN_DIR)
5 set (3RDPARTY_EIGEN_DIR "" CACHE PATH "The directory containing eigen")
8 # search for eigen in user defined directory
9 if (3RDPARTY_DIR AND EXISTS "${3RDPARTY_DIR}")
10 if (NOT 3RDPARTY_EIGEN_DIR OR NOT EXISTS "${3RDPARTY_EIGEN_DIR}")
11 FIND_PRODUCT_DIR("${3RDPARTY_DIR}" Eigen EIGEN_DIR_NAME)
13 set (3RDPARTY_EIGEN_DIR "${3RDPARTY_DIR}/${EIGEN_DIR_NAME}" CACHE PATH "The directory containing eigen" FORCE)
18 if (NOT DEFINED 3RDPARTY_EIGEN_INCLUDE_DIR)
19 set (3RDPARTY_EIGEN_INCLUDE_DIR "" CACHE FILEPATH "The directory containing headers of the EIGEN")
22 if (NOT 3RDPARTY_EIGEN_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_EIGEN_INCLUDE_DIR}")
24 set (HEADER_NAMES Eigen)
26 set (3RDPARTY_EIGEN_INCLUDE_DIR "3RDPARTY_EIGEN_INCLUDE_DIR-NOTFOUND" CACHE PATH "the path to Eigen header file" FORCE)
28 if (3RDPARTY_EIGEN_DIR AND EXISTS "${3RDPARTY_EIGEN_DIR}")
29 find_path (3RDPARTY_EIGEN_INCLUDE_DIR NAMES ${HEADER_NAMES}
30 PATHS ${3RDPARTY_EIGEN_DIR}
31 PATH_SUFFIXES include eigen3 include/eigen3
32 CMAKE_FIND_ROOT_PATH_BOTH
35 find_path (3RDPARTY_EIGEN_INCLUDE_DIR NAMES ${HEADER_NAMES}
36 PATH_SUFFIXES include eigen3 include/eigen3
37 CMAKE_FIND_ROOT_PATH_BOTH)
40 # use default (CMake) EIGEN search
41 if (NOT 3RDPARTY_EIGEN_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_EIGEN_INCLUDE_DIR}")
42 # use 3RDPARTY_FREETYPE_DIR if it is specified for freetype search
43 if (3RDPARTY_EIGEN_DIR AND EXISTS "${3RDPARTY_EIGEN_DIR}")
44 set (CACHED_EIGEN_DIR $ENV{Eigen3_DIR})
45 set (ENV{Eigen3_DIR} "${3RDPARTY_EIGEN_DIR}")
48 find_package(Eigen3 QUIET)
50 # restore ENV{Eigen3_DIR}
51 if (3RDPARTY_EIGEN_DIR AND EXISTS "${3RDPARTY_EIGEN_DIR}")
52 set (ENV{Eigen3_DIR} ${CACHED_EIGEN_DIR})
56 set (3RDPARTY_EIGEN_INCLUDE_DIR "${EIGEN3_INCLUDE_DIR}" CACHE PATH "the path to Eigen header file" FORCE)
57 set (3RDPARTY_EIGEN_DIR "${EIGEN3_ROOT_DIR}" CACHE PATH "The directory containing eigen" FORCE)
62 if (3RDPARTY_EIGEN_INCLUDE_DIR AND EXISTS "${3RDPARTY_EIGEN_INCLUDE_DIR}")
63 list (APPEND 3RDPARTY_INCLUDE_DIRS "${3RDPARTY_EIGEN_INCLUDE_DIR}")
65 list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_EIGEN_INCLUDE_DIR)
67 set (3RDPARTY_EIGEN_INCLUDE_DIR "" CACHE PATH "the path to Eigen header file" FORCE)
70 # unset all redundant variables
71 OCCT_CHECK_AND_UNSET(Eigen3_DIR)