| 
					
				 | 
			
			
				@@ -35,14 +35,25 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # EIGEN_FOUND: TRUE iff Eigen is found. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # EIGEN_INCLUDE_DIRS: Include directories for Eigen. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # EIGEN_VERSION: Extracted from Eigen/src/Core/util/Macros.h 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # EIGEN_WORLD_VERSION: Equal to 3 if EIGEN_VERSION = 3.2.0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # EIGEN_MAJOR_VERSION: Equal to 2 if EIGEN_VERSION = 3.2.0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # EIGEN_MINOR_VERSION: Equal to 0 if EIGEN_VERSION = 3.2.0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# FOUND_INSTALLED_EIGEN_CMAKE_CONFIGURATION: True iff the version of Eigen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#                                            found was built & installed / 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#                                            exported as a CMake package. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # The following variables control the behaviour of this module: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# EIGEN_PREFER_EXPORTED_EIGEN_CMAKE_CONFIGURATION: TRUE/FALSE, iff TRUE then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#                           then prefer using an exported CMake configuration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#                           generated by Eigen over searching for the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#                           Eigen components manually.  Otherwise (FALSE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#                           ignore any exported Eigen CMake configurations and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#                           always perform a manual search for the components. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#                           Default: TRUE iff user does not define this variable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#                           before we are called, and does NOT specify 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#                           EIGEN_INCLUDE_DIR_HINTS, otherwise FALSE. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # EIGEN_INCLUDE_DIR_HINTS: List of additional directories in which to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #                          search for eigen includes, e.g: /timbuktu/eigen3. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -66,6 +77,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 macro(EIGEN_REPORT_NOT_FOUND REASON_MSG) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   unset(EIGEN_FOUND) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   unset(EIGEN_INCLUDE_DIRS) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  unset(FOUND_INSTALLED_EIGEN_CMAKE_CONFIGURATION) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   # Make results of search visible in the CMake GUI if Eigen has not 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   # been found so that user does not have to toggle to advanced view. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   mark_as_advanced(CLEAR EIGEN_INCLUDE_DIR) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -89,38 +101,68 @@ endmacro(EIGEN_REPORT_NOT_FOUND) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # here to fail. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 unset(EIGEN_FOUND) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Search user-installed locations first, so that we prefer user installs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# to system installs where both exist. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-list(APPEND EIGEN_CHECK_INCLUDE_DIRS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  /usr/local/include 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  /usr/local/homebrew/include # Mac OS X 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  /opt/local/var/macports/software # Mac OS X. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  /opt/local/include 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  /usr/include) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Additional suffixes to try appending to each search path. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-list(APPEND EIGEN_CHECK_PATH_SUFFIXES 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  eigen3 # Default root directory for Eigen. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  Eigen/include/eigen3 # Windows (for C:/Program Files prefix) < 3.3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  Eigen3/include/eigen3 ) # Windows (for C:/Program Files prefix) >= 3.3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Search supplied hint directories first if supplied. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-find_path(EIGEN_INCLUDE_DIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  NAMES Eigen/Core 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  PATHS ${EIGEN_INCLUDE_DIR_HINTS} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ${EIGEN_CHECK_INCLUDE_DIRS} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  PATH_SUFFIXES ${EIGEN_CHECK_PATH_SUFFIXES}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if (NOT EIGEN_INCLUDE_DIR OR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# ----------------------------------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# By default, if the user has expressed no preference for using an exported 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Eigen CMake configuration over performing a search for the installed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# components, and has not specified any hints for the search locations, then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# prefer an exported configuration if available. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if (NOT DEFINED EIGEN_PREFER_EXPORTED_EIGEN_CMAKE_CONFIGURATION 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    AND NOT EIGEN_INCLUDE_DIR_HINTS) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  message(STATUS "No preference for use of exported Eigen CMake configuration " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    "set, and no hints for include directory provided. " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    "Defaulting to preferring an installed/exported Eigen CMake configuration " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    "if available.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  set(EIGEN_PREFER_EXPORTED_EIGEN_CMAKE_CONFIGURATION TRUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if (EIGEN_PREFER_EXPORTED_EIGEN_CMAKE_CONFIGURATION) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  find_package(Eigen3 QUIET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (EIGEN3_FOUND) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    message(STATUS "Found installed version of Eigen: ${Eigen3_DIR}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    set(FOUND_INSTALLED_EIGEN_CMAKE_CONFIGURATION TRUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    set(EIGEN_FOUND ${EIGEN3_FOUND}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    set(EIGEN_INCLUDE_DIR "${EIGEN3_INCLUDE_DIR}" CACHE STRING 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "Eigen include directory" FORCE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  else() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    message(STATUS "Failed to find an installed/exported CMake configuration " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "for Eigen, will perform search for installed Eigen components.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if (NOT EIGEN_FOUND) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  # Search user-installed locations first, so that we prefer user installs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  # to system installs where both exist. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  list(APPEND EIGEN_CHECK_INCLUDE_DIRS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /usr/local/include 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /usr/local/homebrew/include # Mac OS X 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /opt/local/var/macports/software # Mac OS X. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /opt/local/include 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /usr/include) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  # Additional suffixes to try appending to each search path. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  list(APPEND EIGEN_CHECK_PATH_SUFFIXES 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    eigen3 # Default root directory for Eigen. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Eigen/include/eigen3 # Windows (for C:/Program Files prefix) < 3.3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Eigen3/include/eigen3 ) # Windows (for C:/Program Files prefix) >= 3.3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  # Search supplied hint directories first if supplied. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  find_path(EIGEN_INCLUDE_DIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    NAMES Eigen/Core 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    PATHS ${EIGEN_INCLUDE_DIR_HINTS} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ${EIGEN_CHECK_INCLUDE_DIRS} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    PATH_SUFFIXES ${EIGEN_CHECK_PATH_SUFFIXES}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (NOT EIGEN_INCLUDE_DIR OR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      NOT EXISTS ${EIGEN_INCLUDE_DIR}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    eigen_report_not_found( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "Could not find eigen3 include directory, set EIGEN_INCLUDE_DIR to " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "path to eigen3 include directory, e.g. /usr/local/include/eigen3.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  endif (NOT EIGEN_INCLUDE_DIR OR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     NOT EXISTS ${EIGEN_INCLUDE_DIR}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  eigen_report_not_found( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    "Could not find eigen3 include directory, set EIGEN_INCLUDE_DIR to " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    "path to eigen3 include directory, e.g. /usr/local/include/eigen3.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-endif (NOT EIGEN_INCLUDE_DIR OR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       NOT EXISTS ${EIGEN_INCLUDE_DIR}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Mark internally as found, then verify. EIGEN_REPORT_NOT_FOUND() unsets 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# if called. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-set(EIGEN_FOUND TRUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  # Mark internally as found, then verify. EIGEN_REPORT_NOT_FOUND() unsets 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  # if called. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  set(EIGEN_FOUND TRUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Extract Eigen version from Eigen/src/Core/util/Macros.h 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if (EIGEN_INCLUDE_DIR) 
			 |