CMake: unbundle eigen3
authorCampbell Barton <ideasman42@gmail.com>
Thu, 19 Mar 2015 04:41:41 +0000 (15:41 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 19 Mar 2015 04:41:41 +0000 (15:41 +1100)
Optionally use systems eigen3 library.

T41989 by @hasufell with edits

CMakeLists.txt
build_files/cmake/Modules/FindEigen3.cmake [new file with mode: 0644]
extern/libmv/CMakeLists.txt
extern/libmv/bundle.sh
extern/libmv/third_party/ceres/CMakeLists.txt
extern/libmv/third_party/ceres/bundle.sh
intern/dualcon/CMakeLists.txt
intern/itasc/CMakeLists.txt
source/blender/ikplugin/CMakeLists.txt
source/gameengine/Converter/CMakeLists.txt

index 8e54ddc92745687bca6712d361d8daf2355da5c6..2e8552f2a1dc4018ae7d9a56b90805f9f36c2f99 100644 (file)
@@ -261,6 +261,10 @@ endif()
 # (unix defaults to System OpenJPEG On)
 option(WITH_SYSTEM_OPENJPEG "Use the operating systems OpenJPEG library" OFF)
 
+if(UNIX AND NOT APPLE)
+       option(WITH_SYSTEM_EIGEN3 "Use the systems Eigen3 library" OFF)
+endif()
+
 
 # Modifiers
 option(WITH_MOD_FLUID           "Enable Elbeem Modifier (Fluid Simulation)" ON)
@@ -811,6 +815,14 @@ if(UNIX AND NOT APPLE)
                endif()
        endif()
 
+       if(WITH_SYSTEM_EIGEN3)
+               find_package_wrapper(Eigen3)
+               if(NOT EIGEN3_FOUND)
+                       message(FATAL_ERROR "Failed finding system Eigen3 version!")
+               endif()
+       endif()
+       # else values are set below for all platforms
+
        if(WITH_PYTHON)
                # No way to set py34. remove for now.
                # find_package(PythonLibs)
@@ -2246,6 +2258,9 @@ if(WITH_IMAGE_REDCODE)
        set(REDCODE_INC ${REDCODE})
 endif()
 
+if(NOT WITH_SYSTEM_EIGEN3)
+       set(EIGEN3_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extern/Eigen3)
+endif()
 
 #-----------------------------------------------------------------------------
 # Configure OpenGL.
diff --git a/build_files/cmake/Modules/FindEigen3.cmake b/build_files/cmake/Modules/FindEigen3.cmake
new file mode 100644 (file)
index 0000000..400e8eb
--- /dev/null
@@ -0,0 +1,56 @@
+# - Find Eigen3 library
+# Find the native Eigen3 includes and library
+# This module defines
+#  EIGEN3_INCLUDE_DIRS, where to find spnav.h, Set when
+#                        EIGEN3_INCLUDE_DIR is found.
+#  EIGEN3_ROOT_DIR, The base directory to search for Eigen3.
+#                    This can also be an environment variable.
+#  EIGEN3_FOUND, If false, do not try to use Eigen3.
+#
+#=============================================================================
+# Copyright 2015 Blender Foundation.
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+
+# If EIGEN3_ROOT_DIR was defined in the environment, use it.
+IF(NOT EIGEN3_ROOT_DIR AND NOT $ENV{EIGEN3_ROOT_DIR} STREQUAL "")
+  SET(EIGEN3_ROOT_DIR $ENV{EIGEN3_ROOT_DIR})
+ENDIF()
+
+SET(_eigen3_SEARCH_DIRS
+  ${EIGEN3_ROOT_DIR}
+  /usr/local
+  /sw # Fink
+  /opt/local # DarwinPorts
+  /opt/csw # Blastwave
+)
+
+FIND_PATH(EIGEN3_INCLUDE_DIR
+  NAMES
+    # header has no '.h' suffix
+    Eigen/Eigen
+  HINTS
+    ${_eigen3_SEARCH_DIRS}
+  PATH_SUFFIXES
+    include/eigen3
+)
+
+# handle the QUIETLY and REQUIRED arguments and set EIGEN3_FOUND to TRUE if 
+# all listed variables are TRUE
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Eigen3 DEFAULT_MSG
+    EIGEN3_INCLUDE_DIR)
+
+IF(EIGEN3_FOUND)
+  SET(EIGEN3_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR})
+ENDIF(EIGEN3_FOUND)
+
+MARK_AS_ADVANCED(
+  EIGEN3_INCLUDE_DIR
+)
index 80e64046534dd11b40dee021d4de4c03a2ae25d3..089743567f0e5bf2ee05f04253fae96b35ee3a03 100644 (file)
@@ -48,7 +48,7 @@ if(WITH_LIBMV OR WITH_GTESTS OR (WITH_CYCLES AND WITH_CYCLES_LOGGING))
        )
 
        list(APPEND INC_SYS
-               ../Eigen3
+               ${EIGEN3_INCLUDE_DIRS}
                ${PNG_INCLUDE_DIRS}
                ${ZLIB_INCLUDE_DIRS}
        )
index 66023fa693c26ae98aa4b20261c580a44e087574..ac4190041bd3140a5054c731e942de9a1e50e42e 100755 (executable)
@@ -141,7 +141,7 @@ if(WITH_LIBMV OR WITH_GTESTS OR (WITH_CYCLES AND WITH_CYCLES_LOGGING))
        )
 
        list(APPEND INC_SYS
-               ../Eigen3
+               \${EIGEN3_INCLUDE_DIRS}
                \${PNG_INCLUDE_DIRS}
                \${ZLIB_INCLUDE_DIRS}
        )
index 0ca888f6393aed350e98afc3eebf35a1b2c4f4fc..694982ec606ae4904135f8b64aa299bdbb738fb0 100644 (file)
@@ -36,7 +36,7 @@ set(INC
 )
 
 set(INC_SYS
-       ../../../Eigen3
+       ${EIGEN3_INCLUDE_DIRS}
 )
 
 set(SRC
index 659f29e98eace2275e4aafec3c0daab0d432f361..0becc87dd4faed2d9e478d1f6f8d188056b7e0ce 100755 (executable)
@@ -129,7 +129,7 @@ set(INC
 )
 
 set(INC_SYS
-       ../../../Eigen3
+       ${EIGEN3_INCLUDE_DIRS}
 )
 
 set(SRC
index da5e10fe6a7e4a1afadc769e15669dbcc98ca8c8..40c8ef8ff9c57bccf5e5566860e1a31d5d719b8c 100644 (file)
@@ -22,7 +22,7 @@ set(INC
 )
 
 set(INC_SYS
-       ../../extern/Eigen3
+       ${EIGEN3_INCLUDE_DIRS}
 )
 
 set(SRC
index bc3ea0cf24cd438f91ea0e5f11cffc6fa8125f2a..bdf0f88e516e7b91233c8d0c0bd811f82ff45139 100644 (file)
@@ -28,9 +28,244 @@ set(INC
 )
 
 set(INC_SYS
-       ../../extern/Eigen3
+       ${EIGEN3_INCLUDE_DIRS}
 )
 
+if(NOT WITH_SYSTEM_EIGEN3)
+       set(EIGEN3_HEADERS
+               # until we have another user...
+               ../../extern/Eigen3/Eigen/src/Cholesky/LDLT.h
+               ../../extern/Eigen3/Eigen/src/Cholesky/LLT.h
+               ../../extern/Eigen3/Eigen/src/Cholesky/LLT_MKL.h
+               ../../extern/Eigen3/Eigen/src/CholmodSupport/CholmodSupport.h
+               ../../extern/Eigen3/Eigen/src/Core/Array.h
+               ../../extern/Eigen3/Eigen/src/Core/ArrayBase.h
+               ../../extern/Eigen3/Eigen/src/Core/ArrayWrapper.h
+               ../../extern/Eigen3/Eigen/src/Core/Assign.h
+               ../../extern/Eigen3/Eigen/src/Core/Assign_MKL.h
+               ../../extern/Eigen3/Eigen/src/Core/BandMatrix.h
+               ../../extern/Eigen3/Eigen/src/Core/Block.h
+               ../../extern/Eigen3/Eigen/src/Core/BooleanRedux.h
+               ../../extern/Eigen3/Eigen/src/Core/CommaInitializer.h
+               ../../extern/Eigen3/Eigen/src/Core/CwiseBinaryOp.h
+               ../../extern/Eigen3/Eigen/src/Core/CwiseNullaryOp.h
+               ../../extern/Eigen3/Eigen/src/Core/CwiseUnaryOp.h
+               ../../extern/Eigen3/Eigen/src/Core/CwiseUnaryView.h
+               ../../extern/Eigen3/Eigen/src/Core/DenseBase.h
+               ../../extern/Eigen3/Eigen/src/Core/DenseCoeffsBase.h
+               ../../extern/Eigen3/Eigen/src/Core/DenseStorage.h
+               ../../extern/Eigen3/Eigen/src/Core/Diagonal.h
+               ../../extern/Eigen3/Eigen/src/Core/DiagonalMatrix.h
+               ../../extern/Eigen3/Eigen/src/Core/DiagonalProduct.h
+               ../../extern/Eigen3/Eigen/src/Core/Dot.h
+               ../../extern/Eigen3/Eigen/src/Core/EigenBase.h
+               ../../extern/Eigen3/Eigen/src/Core/Flagged.h
+               ../../extern/Eigen3/Eigen/src/Core/ForceAlignedAccess.h
+               ../../extern/Eigen3/Eigen/src/Core/Functors.h
+               ../../extern/Eigen3/Eigen/src/Core/Fuzzy.h
+               ../../extern/Eigen3/Eigen/src/Core/GeneralProduct.h
+               ../../extern/Eigen3/Eigen/src/Core/GenericPacketMath.h
+               ../../extern/Eigen3/Eigen/src/Core/GlobalFunctions.h
+               ../../extern/Eigen3/Eigen/src/Core/IO.h
+               ../../extern/Eigen3/Eigen/src/Core/Map.h
+               ../../extern/Eigen3/Eigen/src/Core/MapBase.h
+               ../../extern/Eigen3/Eigen/src/Core/MathFunctions.h
+               ../../extern/Eigen3/Eigen/src/Core/Matrix.h
+               ../../extern/Eigen3/Eigen/src/Core/MatrixBase.h
+               ../../extern/Eigen3/Eigen/src/Core/NestByValue.h
+               ../../extern/Eigen3/Eigen/src/Core/NoAlias.h
+               ../../extern/Eigen3/Eigen/src/Core/NumTraits.h
+               ../../extern/Eigen3/Eigen/src/Core/PermutationMatrix.h
+               ../../extern/Eigen3/Eigen/src/Core/PlainObjectBase.h
+               ../../extern/Eigen3/Eigen/src/Core/Product.h
+               ../../extern/Eigen3/Eigen/src/Core/ProductBase.h
+               ../../extern/Eigen3/Eigen/src/Core/Random.h
+               ../../extern/Eigen3/Eigen/src/Core/Redux.h
+               ../../extern/Eigen3/Eigen/src/Core/Replicate.h
+               ../../extern/Eigen3/Eigen/src/Core/ReturnByValue.h
+               ../../extern/Eigen3/Eigen/src/Core/Reverse.h
+               ../../extern/Eigen3/Eigen/src/Core/Select.h
+               ../../extern/Eigen3/Eigen/src/Core/SelfAdjointView.h
+               ../../extern/Eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h
+               ../../extern/Eigen3/Eigen/src/Core/SolveTriangular.h
+               ../../extern/Eigen3/Eigen/src/Core/StableNorm.h
+               ../../extern/Eigen3/Eigen/src/Core/Stride.h
+               ../../extern/Eigen3/Eigen/src/Core/Swap.h
+               ../../extern/Eigen3/Eigen/src/Core/Transpose.h
+               ../../extern/Eigen3/Eigen/src/Core/Transpositions.h
+               ../../extern/Eigen3/Eigen/src/Core/TriangularMatrix.h
+               ../../extern/Eigen3/Eigen/src/Core/VectorBlock.h
+               ../../extern/Eigen3/Eigen/src/Core/VectorwiseOp.h
+               ../../extern/Eigen3/Eigen/src/Core/Visitor.h
+               ../../extern/Eigen3/Eigen/src/Core/arch/AltiVec/Complex.h
+               ../../extern/Eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h
+               ../../extern/Eigen3/Eigen/src/Core/arch/Default/Settings.h
+               ../../extern/Eigen3/Eigen/src/Core/arch/NEON/Complex.h
+               ../../extern/Eigen3/Eigen/src/Core/arch/NEON/PacketMath.h
+               ../../extern/Eigen3/Eigen/src/Core/arch/SSE/Complex.h
+               ../../extern/Eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
+               ../../extern/Eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
+               ../../extern/Eigen3/Eigen/src/Core/products/CoeffBasedProduct.h
+               ../../extern/Eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
+               ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
+               ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
+               ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h
+               ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h
+               ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
+               ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixVector_MKL.h
+               ../../extern/Eigen3/Eigen/src/Core/products/Parallelizer.h
+               ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
+               ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h
+               ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h
+               ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h
+               ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointProduct.h
+               ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h
+               ../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h
+               ../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h
+               ../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixVector.h
+               ../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixVector_MKL.h
+               ../../extern/Eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h
+               ../../extern/Eigen3/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h
+               ../../extern/Eigen3/Eigen/src/Core/products/TriangularSolverVector.h
+               ../../extern/Eigen3/Eigen/src/Core/util/BlasUtil.h
+               ../../extern/Eigen3/Eigen/src/Core/util/Constants.h
+               ../../extern/Eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
+               ../../extern/Eigen3/Eigen/src/Core/util/ForwardDeclarations.h
+               ../../extern/Eigen3/Eigen/src/Core/util/Macros.h
+               ../../extern/Eigen3/Eigen/src/Core/util/Memory.h
+               ../../extern/Eigen3/Eigen/src/Core/util/Meta.h
+               ../../extern/Eigen3/Eigen/src/Core/util/MKL_support.h
+               ../../extern/Eigen3/Eigen/src/Core/util/NonMPL2.h
+               ../../extern/Eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
+               ../../extern/Eigen3/Eigen/src/Core/util/StaticAssert.h
+               ../../extern/Eigen3/Eigen/src/Core/util/XprHelper.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Block.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Cwise.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/CwiseOperators.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Lazy.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/LeastSquares.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/LU.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Macros.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/MathFunctions.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Memory.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Meta.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Minor.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/QR.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/SVD.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/TriangularSolver.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/VectorBlock.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/AlignedBox.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/All.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/AngleAxis.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Hyperplane.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Quaternion.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Rotation2D.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/RotationBase.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Scaling.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Transform.h
+               ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Translation.h
+               ../../extern/Eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h
+               ../../extern/Eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
+               ../../extern/Eigen3/Eigen/src/Eigenvalues/ComplexSchur_MKL.h
+               ../../extern/Eigen3/Eigen/src/Eigenvalues/EigenSolver.h
+               ../../extern/Eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
+               ../../extern/Eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
+               ../../extern/Eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
+               ../../extern/Eigen3/Eigen/src/Eigenvalues/RealSchur.h
+               ../../extern/Eigen3/Eigen/src/Eigenvalues/RealSchur_MKL.h
+               ../../extern/Eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
+               ../../extern/Eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h
+               ../../extern/Eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
+               ../../extern/Eigen3/Eigen/src/Geometry/AlignedBox.h
+               ../../extern/Eigen3/Eigen/src/Geometry/AngleAxis.h
+               ../../extern/Eigen3/Eigen/src/Geometry/EulerAngles.h
+               ../../extern/Eigen3/Eigen/src/Geometry/Homogeneous.h
+               ../../extern/Eigen3/Eigen/src/Geometry/Hyperplane.h
+               ../../extern/Eigen3/Eigen/src/Geometry/OrthoMethods.h
+               ../../extern/Eigen3/Eigen/src/Geometry/ParametrizedLine.h
+               ../../extern/Eigen3/Eigen/src/Geometry/Quaternion.h
+               ../../extern/Eigen3/Eigen/src/Geometry/Rotation2D.h
+               ../../extern/Eigen3/Eigen/src/Geometry/RotationBase.h
+               ../../extern/Eigen3/Eigen/src/Geometry/Scaling.h
+               ../../extern/Eigen3/Eigen/src/Geometry/Transform.h
+               ../../extern/Eigen3/Eigen/src/Geometry/Translation.h
+               ../../extern/Eigen3/Eigen/src/Geometry/Umeyama.h
+               ../../extern/Eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h
+               ../../extern/Eigen3/Eigen/src/Householder/BlockHouseholder.h
+               ../../extern/Eigen3/Eigen/src/Householder/Householder.h
+               ../../extern/Eigen3/Eigen/src/Householder/HouseholderSequence.h
+               ../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
+               ../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
+               ../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
+               ../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
+               ../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
+               ../../extern/Eigen3/Eigen/src/Jacobi/Jacobi.h
+               ../../extern/Eigen3/Eigen/src/LU/Determinant.h
+               ../../extern/Eigen3/Eigen/src/LU/FullPivLU.h
+               ../../extern/Eigen3/Eigen/src/LU/Inverse.h
+               ../../extern/Eigen3/Eigen/src/LU/PartialPivLU.h
+               ../../extern/Eigen3/Eigen/src/LU/PartialPivLU_MKL.h
+               ../../extern/Eigen3/Eigen/src/LU/arch/Inverse_SSE.h
+               ../../extern/Eigen3/Eigen/src/misc/blas.h
+               ../../extern/Eigen3/Eigen/src/misc/Image.h
+               ../../extern/Eigen3/Eigen/src/misc/Kernel.h
+               ../../extern/Eigen3/Eigen/src/misc/Solve.h
+               ../../extern/Eigen3/Eigen/src/misc/SparseSolve.h
+               ../../extern/Eigen3/Eigen/src/OrderingMethods/Amd.h
+               ../../extern/Eigen3/Eigen/src/PardisoSupport/PardisoSupport.h
+               ../../extern/Eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h
+               ../../extern/Eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h
+               ../../extern/Eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h
+               ../../extern/Eigen3/Eigen/src/plugins/BlockMethods.h
+               ../../extern/Eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
+               ../../extern/Eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
+               ../../extern/Eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
+               ../../extern/Eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
+               ../../extern/Eigen3/Eigen/src/QR/ColPivHouseholderQR.h
+               ../../extern/Eigen3/Eigen/src/QR/ColPivHouseholderQR_MKL.h
+               ../../extern/Eigen3/Eigen/src/QR/FullPivHouseholderQR.h
+               ../../extern/Eigen3/Eigen/src/QR/HouseholderQR.h
+               ../../extern/Eigen3/Eigen/src/QR/HouseholderQR_MKL.h
+               ../../extern/Eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/AmbiVector.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/CompressedStorage.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/CoreIterators.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseAssign.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseBlock.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseDenseProduct.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseDot.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseFuzzy.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseMatrix.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseMatrixBase.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparsePermutation.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseProduct.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseRedux.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseTranspose.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseTriangularView.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseUtil.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseVector.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/SparseView.h
+               ../../extern/Eigen3/Eigen/src/SparseCore/TriangularSolver.h
+               ../../extern/Eigen3/Eigen/src/StlSupport/details.h
+               ../../extern/Eigen3/Eigen/src/StlSupport/StdDeque.h
+               ../../extern/Eigen3/Eigen/src/StlSupport/StdList.h
+               ../../extern/Eigen3/Eigen/src/StlSupport/StdVector.h
+               ../../extern/Eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h
+               ../../extern/Eigen3/Eigen/src/SVD/JacobiSVD.h
+               ../../extern/Eigen3/Eigen/src/SVD/JacobiSVD_MKL.h
+               ../../extern/Eigen3/Eigen/src/SVD/UpperBidiagonalization.h
+               ../../extern/Eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h
+       )
+endif()
+
 set(SRC
        Armature.cpp
        Cache.cpp
@@ -120,237 +355,9 @@ set(SRC
        kdl/frames.inl
        kdl/framevel.inl
 
-       # until we have another user...
-       ../../extern/Eigen3/Eigen/src/Cholesky/LDLT.h
-       ../../extern/Eigen3/Eigen/src/Cholesky/LLT.h
-       ../../extern/Eigen3/Eigen/src/Cholesky/LLT_MKL.h
-       ../../extern/Eigen3/Eigen/src/CholmodSupport/CholmodSupport.h
-       ../../extern/Eigen3/Eigen/src/Core/Array.h
-       ../../extern/Eigen3/Eigen/src/Core/ArrayBase.h
-       ../../extern/Eigen3/Eigen/src/Core/ArrayWrapper.h
-       ../../extern/Eigen3/Eigen/src/Core/Assign.h
-       ../../extern/Eigen3/Eigen/src/Core/Assign_MKL.h
-       ../../extern/Eigen3/Eigen/src/Core/BandMatrix.h
-       ../../extern/Eigen3/Eigen/src/Core/Block.h
-       ../../extern/Eigen3/Eigen/src/Core/BooleanRedux.h
-       ../../extern/Eigen3/Eigen/src/Core/CommaInitializer.h
-       ../../extern/Eigen3/Eigen/src/Core/CwiseBinaryOp.h
-       ../../extern/Eigen3/Eigen/src/Core/CwiseNullaryOp.h
-       ../../extern/Eigen3/Eigen/src/Core/CwiseUnaryOp.h
-       ../../extern/Eigen3/Eigen/src/Core/CwiseUnaryView.h
-       ../../extern/Eigen3/Eigen/src/Core/DenseBase.h
-       ../../extern/Eigen3/Eigen/src/Core/DenseCoeffsBase.h
-       ../../extern/Eigen3/Eigen/src/Core/DenseStorage.h
-       ../../extern/Eigen3/Eigen/src/Core/Diagonal.h
-       ../../extern/Eigen3/Eigen/src/Core/DiagonalMatrix.h
-       ../../extern/Eigen3/Eigen/src/Core/DiagonalProduct.h
-       ../../extern/Eigen3/Eigen/src/Core/Dot.h
-       ../../extern/Eigen3/Eigen/src/Core/EigenBase.h
-       ../../extern/Eigen3/Eigen/src/Core/Flagged.h
-       ../../extern/Eigen3/Eigen/src/Core/ForceAlignedAccess.h
-       ../../extern/Eigen3/Eigen/src/Core/Functors.h
-       ../../extern/Eigen3/Eigen/src/Core/Fuzzy.h
-       ../../extern/Eigen3/Eigen/src/Core/GeneralProduct.h
-       ../../extern/Eigen3/Eigen/src/Core/GenericPacketMath.h
-       ../../extern/Eigen3/Eigen/src/Core/GlobalFunctions.h
-       ../../extern/Eigen3/Eigen/src/Core/IO.h
-       ../../extern/Eigen3/Eigen/src/Core/Map.h
-       ../../extern/Eigen3/Eigen/src/Core/MapBase.h
-       ../../extern/Eigen3/Eigen/src/Core/MathFunctions.h
-       ../../extern/Eigen3/Eigen/src/Core/Matrix.h
-       ../../extern/Eigen3/Eigen/src/Core/MatrixBase.h
-       ../../extern/Eigen3/Eigen/src/Core/NestByValue.h
-       ../../extern/Eigen3/Eigen/src/Core/NoAlias.h
-       ../../extern/Eigen3/Eigen/src/Core/NumTraits.h
-       ../../extern/Eigen3/Eigen/src/Core/PermutationMatrix.h
-       ../../extern/Eigen3/Eigen/src/Core/PlainObjectBase.h
-       ../../extern/Eigen3/Eigen/src/Core/Product.h
-       ../../extern/Eigen3/Eigen/src/Core/ProductBase.h
-       ../../extern/Eigen3/Eigen/src/Core/Random.h
-       ../../extern/Eigen3/Eigen/src/Core/Redux.h
-       ../../extern/Eigen3/Eigen/src/Core/Replicate.h
-       ../../extern/Eigen3/Eigen/src/Core/ReturnByValue.h
-       ../../extern/Eigen3/Eigen/src/Core/Reverse.h
-       ../../extern/Eigen3/Eigen/src/Core/Select.h
-       ../../extern/Eigen3/Eigen/src/Core/SelfAdjointView.h
-       ../../extern/Eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h
-       ../../extern/Eigen3/Eigen/src/Core/SolveTriangular.h
-       ../../extern/Eigen3/Eigen/src/Core/StableNorm.h
-       ../../extern/Eigen3/Eigen/src/Core/Stride.h
-       ../../extern/Eigen3/Eigen/src/Core/Swap.h
-       ../../extern/Eigen3/Eigen/src/Core/Transpose.h
-       ../../extern/Eigen3/Eigen/src/Core/Transpositions.h
-       ../../extern/Eigen3/Eigen/src/Core/TriangularMatrix.h
-       ../../extern/Eigen3/Eigen/src/Core/VectorBlock.h
-       ../../extern/Eigen3/Eigen/src/Core/VectorwiseOp.h
-       ../../extern/Eigen3/Eigen/src/Core/Visitor.h
-       ../../extern/Eigen3/Eigen/src/Core/arch/AltiVec/Complex.h
-       ../../extern/Eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h
-       ../../extern/Eigen3/Eigen/src/Core/arch/Default/Settings.h
-       ../../extern/Eigen3/Eigen/src/Core/arch/NEON/Complex.h
-       ../../extern/Eigen3/Eigen/src/Core/arch/NEON/PacketMath.h
-       ../../extern/Eigen3/Eigen/src/Core/arch/SSE/Complex.h
-       ../../extern/Eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
-       ../../extern/Eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
-       ../../extern/Eigen3/Eigen/src/Core/products/CoeffBasedProduct.h
-       ../../extern/Eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
-       ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
-       ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
-       ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h
-       ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h
-       ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
-       ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixVector_MKL.h
-       ../../extern/Eigen3/Eigen/src/Core/products/Parallelizer.h
-       ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
-       ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h
-       ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h
-       ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h
-       ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointProduct.h
-       ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h
-       ../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h
-       ../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h
-       ../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixVector.h
-       ../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixVector_MKL.h
-       ../../extern/Eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h
-       ../../extern/Eigen3/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h
-       ../../extern/Eigen3/Eigen/src/Core/products/TriangularSolverVector.h
-       ../../extern/Eigen3/Eigen/src/Core/util/BlasUtil.h
-       ../../extern/Eigen3/Eigen/src/Core/util/Constants.h
-       ../../extern/Eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
-       ../../extern/Eigen3/Eigen/src/Core/util/ForwardDeclarations.h
-       ../../extern/Eigen3/Eigen/src/Core/util/Macros.h
-       ../../extern/Eigen3/Eigen/src/Core/util/Memory.h
-       ../../extern/Eigen3/Eigen/src/Core/util/Meta.h
-       ../../extern/Eigen3/Eigen/src/Core/util/MKL_support.h
-       ../../extern/Eigen3/Eigen/src/Core/util/NonMPL2.h
-       ../../extern/Eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
-       ../../extern/Eigen3/Eigen/src/Core/util/StaticAssert.h
-       ../../extern/Eigen3/Eigen/src/Core/util/XprHelper.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Block.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Cwise.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/CwiseOperators.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Lazy.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/LeastSquares.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/LU.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Macros.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/MathFunctions.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Memory.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Meta.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Minor.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/QR.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/SVD.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/TriangularSolver.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/VectorBlock.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/AlignedBox.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/All.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/AngleAxis.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Hyperplane.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Quaternion.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Rotation2D.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/RotationBase.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Scaling.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Transform.h
-       ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Translation.h
-       ../../extern/Eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h
-       ../../extern/Eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
-       ../../extern/Eigen3/Eigen/src/Eigenvalues/ComplexSchur_MKL.h
-       ../../extern/Eigen3/Eigen/src/Eigenvalues/EigenSolver.h
-       ../../extern/Eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
-       ../../extern/Eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
-       ../../extern/Eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
-       ../../extern/Eigen3/Eigen/src/Eigenvalues/RealSchur.h
-       ../../extern/Eigen3/Eigen/src/Eigenvalues/RealSchur_MKL.h
-       ../../extern/Eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
-       ../../extern/Eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h
-       ../../extern/Eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
-       ../../extern/Eigen3/Eigen/src/Geometry/AlignedBox.h
-       ../../extern/Eigen3/Eigen/src/Geometry/AngleAxis.h
-       ../../extern/Eigen3/Eigen/src/Geometry/EulerAngles.h
-       ../../extern/Eigen3/Eigen/src/Geometry/Homogeneous.h
-       ../../extern/Eigen3/Eigen/src/Geometry/Hyperplane.h
-       ../../extern/Eigen3/Eigen/src/Geometry/OrthoMethods.h
-       ../../extern/Eigen3/Eigen/src/Geometry/ParametrizedLine.h
-       ../../extern/Eigen3/Eigen/src/Geometry/Quaternion.h
-       ../../extern/Eigen3/Eigen/src/Geometry/Rotation2D.h
-       ../../extern/Eigen3/Eigen/src/Geometry/RotationBase.h
-       ../../extern/Eigen3/Eigen/src/Geometry/Scaling.h
-       ../../extern/Eigen3/Eigen/src/Geometry/Transform.h
-       ../../extern/Eigen3/Eigen/src/Geometry/Translation.h
-       ../../extern/Eigen3/Eigen/src/Geometry/Umeyama.h
-       ../../extern/Eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h
-       ../../extern/Eigen3/Eigen/src/Householder/BlockHouseholder.h
-       ../../extern/Eigen3/Eigen/src/Householder/Householder.h
-       ../../extern/Eigen3/Eigen/src/Householder/HouseholderSequence.h
-       ../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
-       ../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
-       ../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
-       ../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
-       ../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
-       ../../extern/Eigen3/Eigen/src/Jacobi/Jacobi.h
-       ../../extern/Eigen3/Eigen/src/LU/Determinant.h
-       ../../extern/Eigen3/Eigen/src/LU/FullPivLU.h
-       ../../extern/Eigen3/Eigen/src/LU/Inverse.h
-       ../../extern/Eigen3/Eigen/src/LU/PartialPivLU.h
-       ../../extern/Eigen3/Eigen/src/LU/PartialPivLU_MKL.h
-       ../../extern/Eigen3/Eigen/src/LU/arch/Inverse_SSE.h
-       ../../extern/Eigen3/Eigen/src/misc/blas.h
-       ../../extern/Eigen3/Eigen/src/misc/Image.h
-       ../../extern/Eigen3/Eigen/src/misc/Kernel.h
-       ../../extern/Eigen3/Eigen/src/misc/Solve.h
-       ../../extern/Eigen3/Eigen/src/misc/SparseSolve.h
-       ../../extern/Eigen3/Eigen/src/OrderingMethods/Amd.h
-       ../../extern/Eigen3/Eigen/src/PardisoSupport/PardisoSupport.h
-       ../../extern/Eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h
-       ../../extern/Eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h
-       ../../extern/Eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h
-       ../../extern/Eigen3/Eigen/src/plugins/BlockMethods.h
-       ../../extern/Eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
-       ../../extern/Eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
-       ../../extern/Eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
-       ../../extern/Eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
-       ../../extern/Eigen3/Eigen/src/QR/ColPivHouseholderQR.h
-       ../../extern/Eigen3/Eigen/src/QR/ColPivHouseholderQR_MKL.h
-       ../../extern/Eigen3/Eigen/src/QR/FullPivHouseholderQR.h
-       ../../extern/Eigen3/Eigen/src/QR/HouseholderQR.h
-       ../../extern/Eigen3/Eigen/src/QR/HouseholderQR_MKL.h
-       ../../extern/Eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/AmbiVector.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/CompressedStorage.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/CoreIterators.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseAssign.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseBlock.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseDenseProduct.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseDot.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseFuzzy.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseMatrix.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseMatrixBase.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparsePermutation.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseProduct.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseRedux.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseTranspose.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseTriangularView.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseUtil.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseVector.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/SparseView.h
-       ../../extern/Eigen3/Eigen/src/SparseCore/TriangularSolver.h
-       ../../extern/Eigen3/Eigen/src/StlSupport/details.h
-       ../../extern/Eigen3/Eigen/src/StlSupport/StdDeque.h
-       ../../extern/Eigen3/Eigen/src/StlSupport/StdList.h
-       ../../extern/Eigen3/Eigen/src/StlSupport/StdVector.h
-       ../../extern/Eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h
-       ../../extern/Eigen3/Eigen/src/SVD/JacobiSVD.h
-       ../../extern/Eigen3/Eigen/src/SVD/JacobiSVD_MKL.h
-       ../../extern/Eigen3/Eigen/src/SVD/UpperBidiagonalization.h
-       ../../extern/Eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h
+       ${EIGEN3_HEADERS}
 )
 
+unset(EIGEN3_HEADERS)
 
 blender_add_lib(bf_intern_itasc "${SRC}" "${INC}" "${INC_SYS}")
index 0a0e0e664b4b4cbc67c5d51d0334917537ef279e..139dbd32349a38a30c4d8c0527eb80f24302ef8b 100644 (file)
@@ -59,7 +59,7 @@ if(WITH_IK_ITASC)
                ../../../intern/itasc
        )
        list(APPEND INC_SYS
-               ../../../extern/Eigen3
+               ${EIGEN3_INCLUDE_DIRS}
        )
        list(APPEND SRC
                intern/itasc_plugin.cpp
index 9c0d25e56ff3e9092e44fef061c9af6fdf8d9c35..9721149314f6b0f2ac4db81f7fb3fe3905da3a20 100644 (file)
@@ -56,7 +56,7 @@ set(INC
 set(INC_SYS
        ../../../intern/moto/include
        ../../../extern/recastnavigation/Detour/Include
-       ../../../extern/Eigen3
+       ${EIGEN3_INCLUDE_DIRS}
        ${PTHREADS_INCLUDE_DIRS}
        ${BOOST_INCLUDE_DIR}
 )