Mentions légales du service

Skip to content
Snippets Groups Projects
Commit b68577ec authored by hhakim's avatar hhakim
Browse files

Update findEigenLib for Windows: find eigen3 locally instead of using an embedded archive.

parent 3365331e
Branches
Tags
No related merge requests found
...@@ -48,45 +48,14 @@ if(UNIX) ...@@ -48,45 +48,14 @@ if(UNIX)
endif() endif()
elseif(WIN32) elseif(WIN32)
### find and/or install eigen lib (cf. http://eigen.tuxfamily.org/index.php?title=Main_Page) ### find and/or install eigen lib (cf. http://eigen.tuxfamily.org/index.php?title=Main_Page)
set(INCLUDE_PATH_LIST ${INCLUDE_PATH_LIST_TMP_DEFAULT}) # CACHE PATH "List of include paths used as PATH parameter in find_path") # TODO: set a cmake/env variable to vary the windows install path
set(INCLUDE_PATH_LIST ${INCLUDE_PATH_LIST_TMP_DEFAULT} "C:/Program Files (x86)/Eigen3/include/eigen3") # CACHE PATH "List of include paths used as PATH parameter in find_path")
check_external_includes("Eigen/Dense" EIGEN_INC_DIR 0) # on test avec INCLUDE_PATH_LIST_TMP_DEFAULT check_external_includes("Eigen/Dense" EIGEN_INC_DIR 0) # on test avec INCLUDE_PATH_LIST_TMP_DEFAULT
if (EIGEN_INC_DIR) if (EIGEN_INC_DIR)
message(STATUS "Eigen library is available here: ${EIGEN_INC_DIR}") message(STATUS "Eigen library is available here: ${EIGEN_INC_DIR}")
else (EIGEN_INC_DIR) else (EIGEN_INC_DIR)
message(STATUS "------------------------------------------------") message(FATAL_ERROR "Didn't find eigen installed on your system, it should be in C:\Program Files (x86)\Eigen3")
message(STATUS "------------------------------------------------")
message(STATUS "------------- EIGEN LIB INSTALLATION -----------")
message(STATUS "------------------------------------------------")
message(STATUS "------------------------------------------------")
set(EIGEN_LINK https://gitlab.com/libeigen/eigen/-/archive/3.2.8/eigen-3.2.8.zip)
string(REGEX REPLACE "https://.*/(.*).zip" "\\1" EIGEN_LIB_NAME ${EIGEN_LINK})
if(NOT EXISTS ${CMAKE_SOURCE_DIR}/externals/win/zipLibs/${EIGEN_LIB_NAME}.zip)
file(DOWNLOAD ${EIGEN_LINK} ${CMAKE_SOURCE_DIR}/externals/win/zipLibs/${EIGEN_LIB_NAME}.zip SHOW_PROGRESS)
endif()
if(NOT EXISTS ${CMAKE_SOURCE_DIR}/externals/win/${EIGEN_LIB_NAME})
file(ARCHIVE_EXTRACT INPUT ${CMAKE_SOURCE_DIR}/externals/win/zipLibs/${EIGEN_LIB_NAME}.zip DESTINATION ${CMAKE_SOURCE_DIR}/externals/win)
endif()
add_include_path(INCLUDE_PATH_LIST_TMP_EIGEN "${PROJECT_SOURCE_DIR}/externals/win/${EIGEN_LIB_NAME}")
#add_include_path(INCLUDE_PATH_LIST_TMP2 "${PROJECT_SOURCE_DIR}/externals/eigen")
#set(INCLUDE_PATH_LIST2 ${INCLUDE_PATH_LIST_TMP2} CACHE PATH "List of include paths used as PATH parameter in find_path")
set(INCLUDE_PATH_LIST ${INCLUDE_PATH_LIST_TMP_EIGEN})# CACHE PATH "List of include paths used as PATH parameter in find_path")
#message(STATUS "INCLUDE_PATH_LIST=${INCLUDE_PATH_LIST}")
check_external_includes("Eigen/Dense" EIGEN_INC_DIR 0)
if ( EIGEN_INC_DIR )
message(STATUS "Eigen library is available here: ${EIGEN_INC_DIR}")
else(EIGEN_INC_DIR)
message(STATUS "Eigen library is not available here: ${EIGEN_INC_DIR}")
message(FATAL_ERROR "Eigen library is not installed on your system. Please check Eigen install.")
endif(EIGEN_INC_DIR)
message(STATUS "------------------------------------------------")
message(STATUS "------------------------------------------------")
endif (EIGEN_INC_DIR) endif (EIGEN_INC_DIR)
#############################################################
else() else()
message(WARNING "Unknown type of plateform for library Eigen") message(WARNING "Unknown type of plateform for library Eigen")
endif() endif()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment