@@ -11,7 +11,7 @@ mark_as_advanced(ITK_USE_SYSTEM_EIGEN)
1111if (ITK_USE_SYSTEM_EIGEN)
1212 set (_eigen_itk_target Eigen3::Eigen)
1313else ()
14- set (_eigen_itk_target ITKInternalEigen3::Eigen )
14+ set (_eigen_itk_target eigen_internal )
1515endif ()
1616set (ITKEigen3_LIBRARIES ${_eigen_itk_target} )
1717# Assume that Eigen generates a Eigen3Config.cmake
@@ -57,60 +57,51 @@ set(_Eigen3_min_version 3.3)
5757if (ITK_USE_SYSTEM_EIGEN)
5858 set (_Eigen3_SYSTEM_OR_INTERNAL "Eigen3" )
5959 find_package (${_Eigen3_SYSTEM_OR_INTERNAL} REQUIRED CONFIG )
60- set (Eigen3_DIR_INSTALL ${Eigen3_DIR} )
61- set (Eigen3_DIR_BUILD ${Eigen3_DIR} )
62- else ()
63- set (_Eigen3_SYSTEM_OR_INTERNAL "ITKInternalEigen3" )
64- find_package (${_Eigen3_SYSTEM_OR_INTERNAL} REQUIRED CONFIG )
65- set (Eigen3_DIR_INSTALL "\$ {ITK_MODULES_DIR}" )
66- set (_eigen3_build_dir "${ITK_BINARY_DIR} /ITKInternalEigen3-build" )
67- set (Eigen3_DIR_BUILD "${_eigen3_build_dir} " )
68- endif ()
69- if (${_Eigen3_SYSTEM_OR_INTERNAL} _VERSION VERSION_LESS ${_Eigen3_min_version} )
70- message (
71- FATAL_ERROR
72- "Eigen3 version ${_Eigen3_min_version} or later is required."
73- )
74- endif ()
7560
76- # Eigen3 is header only, but there are compile definitions that we want to provide
77- # to enforce use of MPL only code, and to disable warnings.
78- # We only need to add the location of the header itk_eigen.h used internally.
79- get_target_property (
80- Eigen_INCLUDE_DIRS
81- ${_eigen_itk_target}
82- INTERFACE_INCLUDE_DIRECTORIES
83- )
84- set (
85- ITKEigen3_INCLUDE_DIRS
86- ${Eigen_INCLUDE_DIRS}
87- ${ITKEigen3_BINARY_DIR} /src # For the generated itk_eigen.h
88- )
61+ set (ITKEigen3_NO_SRC 1)
8962
90- # When this module is loaded by an app, load Eigen too.
91- # Load ITKInternalEigen3 or Eigen3 depending on ITK_USE_SYSTEM_EIGEN
92- set (
93- ITKEigen3_EXPORT_CODE_INSTALL
94- "
95- set(ITK_USE_SYSTEM_EIGEN \" ${ITK_USE_SYSTEM_EIGEN} \" )
96- set(${_Eigen3_SYSTEM_OR_INTERNAL} _DIR \" ${Eigen3_DIR_INSTALL} \" )
97- find_package(${_Eigen3_SYSTEM_OR_INTERNAL} REQUIRED CONFIG)
98- if(${_Eigen3_SYSTEM_OR_INTERNAL} _VERSION VERSION_LESS ${_Eigen3_min_version} )
63+ if (${_Eigen3_SYSTEM_OR_INTERNAL} _VERSION VERSION_LESS ${_Eigen3_min_version} )
64+ message (
65+ FATAL_ERROR
66+ "Eigen3 version ${_Eigen3_min_version} or later is required."
67+ )
68+ endif ()
69+
70+ # When this module is loaded by an app, load Eigen too.
71+ # Load ITKInternalEigen3 or Eigen3 depending on ITK_USE_SYSTEM_EIGEN
72+ set (
73+ ITKEigen3_EXPORT_CODE_INSTALL
74+ "
75+ find_package(\" Eigen3\" REQUIRED CONFIG)
76+ if(Eigen3_VERSION VERSION_LESS ${_Eigen3_min_version} )
9977 message(FATAL_ERROR \" Eigen3 version ${_Eigen3_min_version} or later is required.\" )
10078endif()
10179"
102- )
103- set (
104- ITKEigen3_EXPORT_CODE_BUILD
105- "
106- set(ITK_USE_SYSTEM_EIGEN \" ${ITK_USE_SYSTEM_EIGEN} \" )
107- set( ${_Eigen3_SYSTEM_OR_INTERNAL} _DIR \" ${Eigen3_DIR_BUILD} \" )
108- find_package(${_Eigen3_SYSTEM_OR_INTERNAL} REQUIRED CONFIG)
109- if(${_Eigen3_SYSTEM_OR_INTERNAL} _VERSION VERSION_LESS ${_Eigen3_min_version} )
80+ )
81+ set (
82+ ITKEigen3_EXPORT_CODE_BUILD
83+ "
84+ if(NOT ITK_BINARY_DIR )
85+
86+ find_package(\" Eigen3 \" REQUIRED CONFIG)
87+ if(Eigen3_VERSION VERSION_LESS ${_Eigen3_min_version} )
11088 message(FATAL_ERROR \" Eigen3 version ${_Eigen3_min_version} or later is required.\" )
11189endif()
90+ endif()
11291"
113- )
92+ )
93+ else ()
94+ set (_Eigen3_SYSTEM_OR_INTERNAL "ITKInternalEigen3" )
95+
96+ set (ITKEigen3_INCLUDE_DIRS ${ITKEigen3_SOURCE_DIR} /src)
97+
98+ set (Eigen3_DIR_INSTALL "\$ {ITK_MODULES_DIR}" )
99+ set (_eigen3_build_dir "${ITK_BINARY_DIR} /ITKInternalEigen3-build" )
100+ set (Eigen3_DIR_BUILD "${_eigen3_build_dir} " )
101+ endif ()
102+
103+ # For the generated itk_eigen.h
104+ list (APPEND ITKEigen3_INCLUDE_DIRS ${ITKEigen3_BINARY_DIR} /src)
114105
115106# Eigen3 targets are not installed if ITK_USE_SYSTEM_EIGEN==True
116107itk_module_impl ()
0 commit comments