From dddfcaa4c93b5af007635b1d46c19e035376d403 Mon Sep 17 00:00:00 2001 From: ralfulrich <ralf.ulrich@kit.edu> Date: Fri, 14 Jun 2019 18:06:24 +0200 Subject: [PATCH] use WITH_EIGEN3 as Lukas suggested --- CMakeLists.txt | 29 +++++++++++++++++------------ Framework/Geometry/CMakeLists.txt | 2 +- ThirdParty/CMakeLists.txt | 21 +++++++++++++-------- 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b1760cd2..2ab53f79a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -121,14 +121,6 @@ if (WITH_PYTHIA) find_package (Pythia8) # optional endif (WITH_PYTHIA) -# check if system level eigen3 is present -find_package (Eigen3 QUIET) -if (NOT Eigen3_FOUND) - # ...no -> use our own header only version - set (THIRDPARTY_Eigen3 "yes") - message ("use ThirdParty/eigen3") -endif (NOT Eigen3_FOUND) - # order of subdirectories add_subdirectory (ThirdParty) add_subdirectory (Framework) @@ -143,11 +135,24 @@ if (WITH_COAST) add_subdirectory (COAST) endif () -# now check if Eigen3 was previsouly found, or need to be checked again -if (THIRDPARTY_Eigen3) - list (APPEND CMAKE_MODULE_PATH "${EIGEN3_INCLUDE_DIR}/cmake") +# check for Eigen3: either use ThirdParty/eigen3 or system-level installation +if (WITH_EIGEN3) + string (TOLOWER ${WITH_EIGEN3} WITH_EIGEN3_LOWER) + if (WITH_EIGEN3_LOWER EQUAL "system") + find_package (Eigen3 REQUIRED) + else () + list (APPEND CMAKE_MODULE_PATH "${WITH_EIGEN3}/cmake") + set (EIGEN3_INCLUDE_DIR "${WITH_EIGEN3}" CACHE PATH "eigen3 directory") + find_package (Eigen3 REQUIRED) + endif () +else (WITH_EIGEN3) + list (APPEND CMAKE_MODULE_PATH "${LOCAL_Eigen3_VERSION}/cmake") + set (EIGEN3_INCLUDE_DIR "${LOCAL_Eigen3_VERSION}" CACHE PATH "eigen3 directory") find_package (Eigen3 REQUIRED) -endif (THIRDPARTY_Eigen3) +endif (WITH_EIGEN3) # some final info output message ("Use eigen3 version: ${EIGEN3_VERSION} from ${EIGEN3_INCLUDE_DIR}") + +include (FeatureSummary) +feature_summary (WHAT ALL) diff --git a/Framework/Geometry/CMakeLists.txt b/Framework/Geometry/CMakeLists.txt index f2b260a71..39d4fb984 100644 --- a/Framework/Geometry/CMakeLists.txt +++ b/Framework/Geometry/CMakeLists.txt @@ -46,7 +46,7 @@ target_link_libraries ( target_include_directories ( CORSIKAgeometry SYSTEM - PUBLIC ${EIGEN3_INCLUDE_DIR} + PUBLIC ${EIGEN3_INCLUDE_DIR} ) target_include_directories ( diff --git a/ThirdParty/CMakeLists.txt b/ThirdParty/CMakeLists.txt index afff12f35..f33a2f516 100644 --- a/ThirdParty/CMakeLists.txt +++ b/ThirdParty/CMakeLists.txt @@ -11,11 +11,16 @@ install (DIRECTORY phys DESTINATION include/ThirdParty/) install (DIRECTORY catch2 DESTINATION include/ThirdParty/) install (DIRECTORY boost DESTINATION include/ThirdParty/boost/) -if (THIRDPARTY_Eigen3) - set (LOCAL_Eigen3_VERSION "eigen-eigen-b3f3d4950030") - execute_process ( - COMMAND ${CMAKE_COMMAND} -E tar xjf ${LOCAL_Eigen3_VERSION}.tar.bz2 - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - ) - set (EIGEN3_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${LOCAL_Eigen3_VERSION}" PARENT_SCOPE) -endif (THIRDPARTY_Eigen3) +if (NOT WITH_EIGEN3) + set (_LOCAL_Eigen3_VERSION "eigen-eigen-b3f3d4950030") + if ("${CMAKE_CURRENT_SOURCE_DIR}/${_LOCAL_Eigen3_VERSION}.tar.bz2" + IS_NEWER_THAN + "${CMAKE_CURRENT_SOURCE_DIR}/${_LOCAL_Eigen3_VERSION}") + message ("Unpacking ThirdParty/eigen3") + execute_process ( + COMMAND ${CMAKE_COMMAND} -E tar xjf ${_LOCAL_Eigen3_VERSION}.tar.bz2 + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + ) + endif () + set (LOCAL_Eigen3_VERSION ${CMAKE_CURRENT_SOURCE_DIR}/eigen-eigen-b3f3d4950030 PARENT_SCOPE) +endif (NOT WITH_EIGEN3) -- GitLab