Refine OpmFind according to Roland Kaufmann's suggestions.

This enables us to restore FindEigen3.cmake to its original
state (as copied from Eigen sources).
This commit is contained in:
Atgeirr Flø Rasmussen 2013-05-16 14:18:59 +02:00
parent f6b46bda8f
commit 6a2b21e04b
2 changed files with 17 additions and 11 deletions

View File

@ -7,7 +7,7 @@
# Once done this will define # Once done this will define
# #
# EIGEN3_FOUND - system has eigen lib with correct version # EIGEN3_FOUND - system has eigen lib with correct version
# EIGEN3_INCLUDE_DIRS - the eigen include directory # EIGEN3_INCLUDE_DIR - the eigen include directory
# EIGEN3_VERSION - eigen version # EIGEN3_VERSION - eigen version
# Copyright (c) 2006, 2007 Montel Laurent, <montel@kde.org> # Copyright (c) 2006, 2007 Montel Laurent, <montel@kde.org>
@ -30,7 +30,7 @@ if(NOT Eigen3_FIND_VERSION)
endif(NOT Eigen3_FIND_VERSION) endif(NOT Eigen3_FIND_VERSION)
macro(_eigen3_check_version) macro(_eigen3_check_version)
file(READ "${EIGEN3_INCLUDE_DIRS}/Eigen/src/Core/util/Macros.h" _eigen3_version_header) file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header)
string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}") string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}")
set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}") set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}")
@ -48,34 +48,34 @@ macro(_eigen3_check_version)
if(NOT EIGEN3_VERSION_OK) if(NOT EIGEN3_VERSION_OK)
message(STATUS "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIRS}, " message(STATUS "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, "
"but at least version ${Eigen3_FIND_VERSION} is required") "but at least version ${Eigen3_FIND_VERSION} is required")
endif(NOT EIGEN3_VERSION_OK) endif(NOT EIGEN3_VERSION_OK)
endmacro(_eigen3_check_version) endmacro(_eigen3_check_version)
if (EIGEN3_INCLUDE_DIRS) if (EIGEN3_INCLUDE_DIR)
# in cache already # in cache already
_eigen3_check_version() _eigen3_check_version()
set(EIGEN3_FOUND ${EIGEN3_VERSION_OK}) set(EIGEN3_FOUND ${EIGEN3_VERSION_OK})
else (EIGEN3_INCLUDE_DIRS) else (EIGEN3_INCLUDE_DIR)
find_path(EIGEN3_INCLUDE_DIRS NAMES signature_of_eigen3_matrix_library find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library
PATHS PATHS
${CMAKE_INSTALL_PREFIX}/include ${CMAKE_INSTALL_PREFIX}/include
${KDE4_INCLUDE_DIR} ${KDE4_INCLUDE_DIR}
PATH_SUFFIXES eigen3 eigen PATH_SUFFIXES eigen3 eigen
) )
if(EIGEN3_INCLUDE_DIRS) if(EIGEN3_INCLUDE_DIR)
_eigen3_check_version() _eigen3_check_version()
endif(EIGEN3_INCLUDE_DIRS) endif(EIGEN3_INCLUDE_DIR)
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIRS EIGEN3_VERSION_OK) find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK)
mark_as_advanced(EIGEN3_INCLUDE_DIRS) mark_as_advanced(EIGEN3_INCLUDE_DIR)
endif(EIGEN3_INCLUDE_DIRS) endif(EIGEN3_INCLUDE_DIR)

View File

@ -158,6 +158,12 @@ macro (find_and_append_package_to prefix name)
elseif (DEFINED ${NAME}_INCLUDE_PATH) elseif (DEFINED ${NAME}_INCLUDE_PATH)
list (APPEND ${prefix}_INCLUDE_DIRS ${${NAME}_INCLUDE_PATH}) list (APPEND ${prefix}_INCLUDE_DIRS ${${NAME}_INCLUDE_PATH})
endif (DEFINED ${name}_INCLUDE_PATH) endif (DEFINED ${name}_INCLUDE_PATH)
# some packages define only _DIR and not _DIRS (Hi, Eigen3!)
if (DEFINED ${name}_INCLUDE_DIR)
list (APPEND ${prefix}_INCLUDE_DIRS ${${name}_INCLUDE_DIR})
elseif (DEFINED ${NAME}_INCLUDE_DIR)
list (APPEND ${prefix}_INCLUDE_DIRS ${${NAME}_INCLUDE_DIR})
endif (DEFINED ${name}_INCLUDE_DIR)
endif ("${var}" STREQUAL "INCLUDE_DIRS") endif ("${var}" STREQUAL "INCLUDE_DIRS")
# cleanup lists # cleanup lists
if ("${var}" STREQUAL "LIBRARIES") if ("${var}" STREQUAL "LIBRARIES")