Commit d91f8d08 by Maarten L. Hekkelman

Use fetchcontent for eigen, again

parent 43d4644f
...@@ -216,18 +216,18 @@ find_package(ZLIB REQUIRED) ...@@ -216,18 +216,18 @@ find_package(ZLIB REQUIRED)
find_package(Eigen3 QUIET) find_package(Eigen3 QUIET)
if(Eigen3_FOUND) if(NOT Eigen3_FOUND)
get_target_property(EIGEN_INCLUDE_DIR Eigen3::Eigen INTERFACE_INCLUDE_DIRECTORIES) FetchContent_Declare(
else() Eigen3
ExternalProject_Add(
local_Eigen3
GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git
GIT_TAG 3.4.0 GIT_TAG 3.4.0
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/external
) )
set(EIGEN3_D local_Eigen3) FetchContent_GetProperties(Eigen3)
set(EIGEN_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/external/include/eigen3) if(NOT Eigen3_POPULATED)
FetchContent_Populate(Eigen3)
add_subdirectory(${Eigen3_SOURCE_DIR} ${Eigen3_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()
endif() endif()
include(FindFilesystem) include(FindFilesystem)
...@@ -338,15 +338,12 @@ target_include_directories(cifpp ...@@ -338,15 +338,12 @@ target_include_directories(cifpp
"$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>" "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>" "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
PRIVATE PRIVATE
"${EIGEN_INCLUDE_DIR}"
"${BOOST_REGEX_INCLUDE_DIR}" "${BOOST_REGEX_INCLUDE_DIR}"
) )
target_link_libraries(cifpp PUBLIC Threads::Threads ZLIB::ZLIB ${CIFPP_REQUIRED_LIBRARIES}) target_link_libraries(cifpp
PUBLIC Threads::Threads ZLIB::ZLIB ${CIFPP_REQUIRED_LIBRARIES}
if(${EIGEN3_D}) PRIVATE Eigen3::Eigen)
add_dependencies(cifpp ${EIGEN3_D})
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
target_link_options(cifpp PRIVATE -undefined dynamic_lookup) target_link_options(cifpp PRIVATE -undefined dynamic_lookup)
...@@ -542,8 +539,7 @@ if(BUILD_TESTING) ...@@ -542,8 +539,7 @@ if(BUILD_TESTING)
add_executable(${CIFPP_TEST} ${CIFPP_TEST_SOURCE} "${CMAKE_CURRENT_SOURCE_DIR}/test/test-main.cpp") add_executable(${CIFPP_TEST} ${CIFPP_TEST_SOURCE} "${CMAKE_CURRENT_SOURCE_DIR}/test/test-main.cpp")
target_link_libraries(${CIFPP_TEST} PRIVATE Threads::Threads cifpp::cifpp Catch2::Catch2) target_link_libraries(${CIFPP_TEST} PRIVATE Threads::Threads cifpp::cifpp Catch2::Catch2 Eigen3::Eigen)
target_include_directories(${CIFPP_TEST} PRIVATE ${EIGEN_INCLUDE_DIR})
if(MSVC) if(MSVC)
# Specify unwind semantics so that MSVC knowns how to handle exceptions # Specify unwind semantics so that MSVC knowns how to handle exceptions
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment