Add Eigen to ExternalProject and automatically download if RDK_BUILD_DESCRIPTORS3D (#3075)

This commit is contained in:
Eisuke Kawashima
2021-09-30 23:45:01 +09:00
committed by GitHub
parent 823bc93d04
commit 3720537c7e
3 changed files with 27 additions and 11 deletions

1
.gitignore vendored
View File

@@ -60,6 +60,7 @@ __pycache__/
/External/catch/catch/
/External/CoordGen/coordgen/
/External/CoordGen/maeparser/
/External/Eigen/eigen/
/External/FreeSASA/freesasa-2.0.1/
/External/INCHI-API/INCHI-1-SRC/
/External/INCHI-API/src/

View File

@@ -380,20 +380,18 @@ endif(RDK_BUILD_PYTHON_WRAPPERS)
string(REGEX MATCH "clang" CMAKE_COMPILER_IS_CLANG "${CMAKE_C_COMPILER}")
find_package(Eigen3)
if(EIGEN3_FOUND)
if(RDK_BUILD_DESCRIPTORS3D)
if(NOT EIGEN3_FOUND)
add_subdirectory(External/Eigen)
endif()
target_compile_definitions(rdkit_base INTERFACE "-DRDK_BUILD_DESCRIPTORS3D")
endif()
if(TARGET Eigen3::Eigen)
target_compile_definitions(rdkit_base INTERFACE "-DRDK_HAS_EIGEN3")
target_link_libraries(rdkit_base INTERFACE Eigen3::Eigen)
set(RDK_HAS_EIGEN ON)
endif(EIGEN3_FOUND)
if(RDK_BUILD_DESCRIPTORS3D)
if(EIGEN3_FOUND)
target_compile_definitions(rdkit_base INTERFACE "-DRDK_BUILD_DESCRIPTORS3D")
else(EIGEN3_FOUND)
message("Eigen3 not found, some Mol descriptors will not be built.")
set(RDK_BUILD_DESCRIPTORS3D OFF)
endif(EIGEN3_FOUND)
endif(RDK_BUILD_DESCRIPTORS3D)
endif()
if(RDK_BUILD_THREADSAFE_SSS)
find_package (Threads)

17
External/Eigen/CMakeLists.txt vendored Normal file
View File

@@ -0,0 +1,17 @@
include(ExternalProject)
set(EIGEN3_VERSION "3.3.9")
set(EIGEN3_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/eigen)
ExternalProject_Add(Eigen
GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git
GIT_TAG ${EIGEN3_VERSION}
GIT_SHALLOW ON
SOURCE_DIR ${EIGEN3_INCLUDE_DIR}
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
add_library(Eigen3::Eigen INTERFACE IMPORTED GLOBAL)
set_target_properties(Eigen3::Eigen PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES ${EIGEN3_INCLUDE_DIR})
add_dependencies(Eigen3::Eigen Eigen)