Warning, /office/calligra/cmake/modules/FindEigen3.cmake is written in an unsupported language. File is not indexed.
0001 # - Try to find Eigen3 lib 0002 # 0003 # This module supports requiring a minimum version, e.g. you can do 0004 # find_package(Eigen3 3.1.2) 0005 # to require version 3.1.2 or newer of Eigen3. 0006 # 0007 # Once done this will define 0008 # 0009 # EIGEN3_FOUND - system has eigen lib with correct version 0010 # EIGEN3_INCLUDE_DIR - the eigen include directory 0011 # EIGEN3_VERSION - eigen version 0012 0013 # Copyright (c) 2006, 2007 Montel Laurent, <montel@kde.org> 0014 # Copyright (c) 2008, 2009 Gael Guennebaud, <g.gael@free.fr> 0015 # Copyright (c) 2009 Benoit Jacob <jacob.benoit.1@gmail.com> 0016 # Redistribution and use is allowed according to the terms of the 2-clause BSD license. 0017 0018 if(NOT Eigen3_FIND_VERSION) 0019 if(NOT Eigen3_FIND_VERSION_MAJOR) 0020 set(Eigen3_FIND_VERSION_MAJOR 2) 0021 endif() 0022 if(NOT Eigen3_FIND_VERSION_MINOR) 0023 set(Eigen3_FIND_VERSION_MINOR 91) 0024 endif() 0025 if(NOT Eigen3_FIND_VERSION_PATCH) 0026 set(Eigen3_FIND_VERSION_PATCH 0) 0027 endif() 0028 0029 set(Eigen3_FIND_VERSION "${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}") 0030 endif() 0031 0032 macro(_eigen3_check_version) 0033 file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header) 0034 0035 string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}") 0036 set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}") 0037 string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}") 0038 set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}") 0039 string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}") 0040 set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}") 0041 0042 set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION}) 0043 if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) 0044 set(EIGEN3_VERSION_OK FALSE) 0045 else() 0046 set(EIGEN3_VERSION_OK TRUE) 0047 endif() 0048 0049 if(NOT EIGEN3_VERSION_OK) 0050 0051 message(STATUS "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, " 0052 "but at least version ${Eigen3_FIND_VERSION} is required") 0053 endif() 0054 endmacro(_eigen3_check_version) 0055 0056 if (EIGEN3_INCLUDE_DIR) 0057 0058 # in cache already 0059 _eigen3_check_version() 0060 set(EIGEN3_FOUND ${EIGEN3_VERSION_OK}) 0061 0062 else () 0063 0064 find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library 0065 PATHS 0066 ${CMAKE_INSTALL_PREFIX}/include 0067 ${KDE4_INCLUDE_DIR} 0068 PATH_SUFFIXES eigen3 eigen 0069 ) 0070 0071 if(EIGEN3_INCLUDE_DIR) 0072 _eigen3_check_version() 0073 endif() 0074 0075 include(FindPackageHandleStandardArgs) 0076 find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK) 0077 0078 mark_as_advanced(EIGEN3_INCLUDE_DIR) 0079 0080 endif() 0081