aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Alexander Grund <github@grundis.de>2020-12-14 09:57:44 +0000
committerGravatar David Tellenbach <david.tellenbach@me.com>2020-12-14 09:57:44 +0000
commitcf0b5b0344a3bfcf410e95bf22289015a2daf34b (patch)
tree105c02c34e77940e779954e70783769cf32e876d
parent751f18f2c00b8c38cef288d61d43f6ea39b9cad3 (diff)
Remove code checking for CMake < 3.5
As the CMake version is at least 3.5 the code checking for earlier versions can be removed.
-rw-r--r--CMakeLists.txt118
-rw-r--r--lapack/CMakeLists.txt7
-rw-r--r--unsupported/test/CMakeLists.txt9
3 files changed, 46 insertions, 88 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3226338ff..7ba7d3872 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -592,82 +592,48 @@ set ( EIGEN_DEFINITIONS "")
set ( EIGEN_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${INCLUDE_INSTALL_DIR}" )
set ( EIGEN_ROOT_DIR ${CMAKE_INSTALL_PREFIX} )
-# Interface libraries require at least CMake 3.0
-if (NOT CMAKE_VERSION VERSION_LESS 3.0)
- include (CMakePackageConfigHelpers)
-
- # Imported target support
- add_library (eigen INTERFACE)
- add_library (Eigen3::Eigen ALIAS eigen)
- target_compile_definitions (eigen INTERFACE ${EIGEN_DEFINITIONS})
- target_include_directories (eigen INTERFACE
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
- $<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}>
- )
-
- # Export as title case Eigen
- set_target_properties (eigen PROPERTIES EXPORT_NAME Eigen)
-
- install (TARGETS eigen EXPORT Eigen3Targets)
-
- configure_package_config_file (
- ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Eigen3Config.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/Eigen3Config.cmake
- PATH_VARS EIGEN_INCLUDE_DIR EIGEN_ROOT_DIR
- INSTALL_DESTINATION ${CMAKEPACKAGE_INSTALL_DIR}
- NO_CHECK_REQUIRED_COMPONENTS_MACRO # Eigen does not provide components
- )
- # Remove CMAKE_SIZEOF_VOID_P from Eigen3ConfigVersion.cmake since Eigen does
- # not depend on architecture specific settings or libraries. More
- # specifically, an Eigen3Config.cmake generated from a 64 bit target can be
- # used for 32 bit targets as well (and vice versa).
- set (_Eigen3_CMAKE_SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P})
- unset (CMAKE_SIZEOF_VOID_P)
- write_basic_package_version_file (Eigen3ConfigVersion.cmake
- VERSION ${EIGEN_VERSION_NUMBER}
- COMPATIBILITY SameMajorVersion)
- set (CMAKE_SIZEOF_VOID_P ${_Eigen3_CMAKE_SIZEOF_VOID_P})
-
- # The Eigen target will be located in the Eigen3 namespace. Other CMake
- # targets can refer to it using Eigen3::Eigen.
- export (TARGETS eigen NAMESPACE Eigen3:: FILE Eigen3Targets.cmake)
- # Export Eigen3 package to CMake registry such that it can be easily found by
- # CMake even if it has not been installed to a standard directory.
- export (PACKAGE Eigen3)
-
- install (EXPORT Eigen3Targets NAMESPACE Eigen3:: DESTINATION ${CMAKEPACKAGE_INSTALL_DIR})
-
-else ()
- # Fallback to legacy Eigen3Config.cmake without the imported target
-
- # If CMakePackageConfigHelpers module is available (CMake >= 2.8.8)
- # create a relocatable Config file, otherwise leave the hardcoded paths
- include(CMakePackageConfigHelpers OPTIONAL RESULT_VARIABLE CPCH_PATH)
-
- if(CPCH_PATH)
- configure_package_config_file (
- ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Eigen3ConfigLegacy.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/Eigen3Config.cmake
- PATH_VARS EIGEN_INCLUDE_DIR EIGEN_ROOT_DIR
- INSTALL_DESTINATION ${CMAKEPACKAGE_INSTALL_DIR}
- NO_CHECK_REQUIRED_COMPONENTS_MACRO # Eigen does not provide components
- )
- else()
- # The PACKAGE_* variables are defined by the configure_package_config_file
- # but without it we define them manually to the hardcoded paths
- set(PACKAGE_INIT "")
- set(PACKAGE_EIGEN_INCLUDE_DIR ${EIGEN_INCLUDE_DIR})
- set(PACKAGE_EIGEN_ROOT_DIR ${EIGEN_ROOT_DIR})
- configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Eigen3ConfigLegacy.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/Eigen3Config.cmake
- @ONLY ESCAPE_QUOTES )
- endif()
-
- write_basic_package_version_file( Eigen3ConfigVersion.cmake
- VERSION ${EIGEN_VERSION_NUMBER}
- COMPATIBILITY SameMajorVersion )
-
-endif ()
+include (CMakePackageConfigHelpers)
+
+# Imported target support
+add_library (eigen INTERFACE)
+add_library (Eigen3::Eigen ALIAS eigen)
+target_compile_definitions (eigen INTERFACE ${EIGEN_DEFINITIONS})
+target_include_directories (eigen INTERFACE
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+ $<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}>
+)
+
+# Export as title case Eigen
+set_target_properties (eigen PROPERTIES EXPORT_NAME Eigen)
+
+install (TARGETS eigen EXPORT Eigen3Targets)
+
+configure_package_config_file (
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Eigen3Config.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/Eigen3Config.cmake
+ PATH_VARS EIGEN_INCLUDE_DIR EIGEN_ROOT_DIR
+ INSTALL_DESTINATION ${CMAKEPACKAGE_INSTALL_DIR}
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO # Eigen does not provide components
+)
+# Remove CMAKE_SIZEOF_VOID_P from Eigen3ConfigVersion.cmake since Eigen does
+# not depend on architecture specific settings or libraries. More
+# specifically, an Eigen3Config.cmake generated from a 64 bit target can be
+# used for 32 bit targets as well (and vice versa).
+set (_Eigen3_CMAKE_SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P})
+unset (CMAKE_SIZEOF_VOID_P)
+write_basic_package_version_file (Eigen3ConfigVersion.cmake
+ VERSION ${EIGEN_VERSION_NUMBER}
+ COMPATIBILITY SameMajorVersion)
+set (CMAKE_SIZEOF_VOID_P ${_Eigen3_CMAKE_SIZEOF_VOID_P})
+
+# The Eigen target will be located in the Eigen3 namespace. Other CMake
+# targets can refer to it using Eigen3::Eigen.
+export (TARGETS eigen NAMESPACE Eigen3:: FILE Eigen3Targets.cmake)
+# Export Eigen3 package to CMake registry such that it can be easily found by
+# CMake even if it has not been installed to a standard directory.
+export (PACKAGE Eigen3)
+
+install (EXPORT Eigen3Targets NAMESPACE Eigen3:: DESTINATION ${CMAKEPACKAGE_INSTALL_DIR})
install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/UseEigen3.cmake
${CMAKE_CURRENT_BINARY_DIR}/Eigen3Config.cmake
diff --git a/lapack/CMakeLists.txt b/lapack/CMakeLists.txt
index 0c50d5cd8..a85115b03 100644
--- a/lapack/CMakeLists.txt
+++ b/lapack/CMakeLists.txt
@@ -137,16 +137,15 @@ if(EXISTS ${eigen_full_path_to_testing_lapack})
add_subdirectory(testing/MATGEN)
add_subdirectory(testing/LIN)
add_subdirectory(testing/EIG)
- cmake_policy(SET CMP0026 OLD)
macro(add_lapack_test output input target)
set(TEST_INPUT "${LAPACK_SOURCE_DIR}/testing/${input}")
set(TEST_OUTPUT "${LAPACK_BINARY_DIR}/TESTING/${output}")
- get_target_property(TEST_LOC ${target} LOCATION)
string(REPLACE "." "_" input_name ${input})
set(testName "${target}_${input_name}")
if(EXISTS "${TEST_INPUT}")
- add_test(LAPACK-${testName} "${CMAKE_COMMAND}"
- -DTEST=${TEST_LOC}
+ add_test(NAME LAPACK-${testName}
+ COMMAND "${CMAKE_COMMAND}"
+ -DTEST=$<TARGET_FILE:${target}>
-DINPUT=${TEST_INPUT}
-DOUTPUT=${TEST_OUTPUT}
-DINTDIR=${CMAKE_CFG_INTDIR}
diff --git a/unsupported/test/CMakeLists.txt b/unsupported/test/CMakeLists.txt
index cea4bbe69..6bbcf50d5 100644
--- a/unsupported/test/CMakeLists.txt
+++ b/unsupported/test/CMakeLists.txt
@@ -321,18 +321,11 @@ if(CUDA_FOUND AND EIGEN_TEST_CUDA)
set(EIGEN_CUDA_RELAXED_CONSTEXPR "--relaxed-constexpr")
endif()
- if(( (NOT EIGEN_TEST_CXX11) OR (CMAKE_VERSION VERSION_LESS 3.3)) AND EIGEN_TEST_CXX11)
- set(EIGEN_CUDA_CXX11_FLAG "-std=c++11")
- else()
- # otherwise the flag has already been added because of the above set(CMAKE_CXX_STANDARD 11)
- set(EIGEN_CUDA_CXX11_FLAG "")
- endif()
-
set(NVCC_ARCH_FLAGS)
foreach(ARCH IN LISTS EIGEN_CUDA_COMPUTE_ARCH)
string(APPEND NVCC_ARCH_FLAGS " -gencode arch=compute_${ARCH},code=sm_${ARCH}")
endforeach()
- set(CUDA_NVCC_FLAGS "${EIGEN_CUDA_CXX11_FLAG} ${EIGEN_CUDA_RELAXED_CONSTEXPR} -Xcudafe \"--display_error_number\" ${NVCC_ARCH_FLAGS} ${CUDA_NVCC_FLAGS}")
+ set(CUDA_NVCC_FLAGS "${EIGEN_CUDA_RELAXED_CONSTEXPR} -Xcudafe \"--display_error_number\" ${NVCC_ARCH_FLAGS} ${CUDA_NVCC_FLAGS}")
cuda_include_directories("${CMAKE_CURRENT_BINARY_DIR}" "${CUDA_TOOLKIT_ROOT_DIR}/include")
set(EIGEN_ADD_TEST_FILENAME_EXTENSION "cu")