diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b1760cd29019f798f3a2deeeec27b9e64c2f494..2ab53f79a493bf21105d41615ac99286c20baa9e 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 f2b260a71238b2a53dac84c960bda8a79c8504aa..39d4fb9844230b0aec94dcc207caadc285dc5b20 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 afff12f356fbb249cb9012d22e433d74dfa0a872..f33a2f516deba04e8dee556b0e18c28cabe69f2c 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)