CMake: unbundle eigen3
[blender.git] / build_files / cmake / Modules / FindEigen3.cmake
1 # - Find Eigen3 library
2 # Find the native Eigen3 includes and library
3 # This module defines
4 #  EIGEN3_INCLUDE_DIRS, where to find spnav.h, Set when
5 #                        EIGEN3_INCLUDE_DIR is found.
6 #  EIGEN3_ROOT_DIR, The base directory to search for Eigen3.
7 #                    This can also be an environment variable.
8 #  EIGEN3_FOUND, If false, do not try to use Eigen3.
9 #
10 #=============================================================================
11 # Copyright 2015 Blender Foundation.
12 #
13 # Distributed under the OSI-approved BSD License (the "License");
14 # see accompanying file Copyright.txt for details.
15 #
16 # This software is distributed WITHOUT ANY WARRANTY; without even the
17 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 # See the License for more information.
19 #=============================================================================
20
21 # If EIGEN3_ROOT_DIR was defined in the environment, use it.
22 IF(NOT EIGEN3_ROOT_DIR AND NOT $ENV{EIGEN3_ROOT_DIR} STREQUAL "")
23   SET(EIGEN3_ROOT_DIR $ENV{EIGEN3_ROOT_DIR})
24 ENDIF()
25
26 SET(_eigen3_SEARCH_DIRS
27   ${EIGEN3_ROOT_DIR}
28   /usr/local
29   /sw # Fink
30   /opt/local # DarwinPorts
31   /opt/csw # Blastwave
32 )
33
34 FIND_PATH(EIGEN3_INCLUDE_DIR
35   NAMES
36     # header has no '.h' suffix
37     Eigen/Eigen
38   HINTS
39     ${_eigen3_SEARCH_DIRS}
40   PATH_SUFFIXES
41     include/eigen3
42 )
43
44 # handle the QUIETLY and REQUIRED arguments and set EIGEN3_FOUND to TRUE if 
45 # all listed variables are TRUE
46 INCLUDE(FindPackageHandleStandardArgs)
47 FIND_PACKAGE_HANDLE_STANDARD_ARGS(Eigen3 DEFAULT_MSG
48     EIGEN3_INCLUDE_DIR)
49
50 IF(EIGEN3_FOUND)
51   SET(EIGEN3_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR})
52 ENDIF(EIGEN3_FOUND)
53
54 MARK_AS_ADVANCED(
55   EIGEN3_INCLUDE_DIR
56 )