Use cannonical library name for eigen
parent
903d7c6a2e
commit
ec3d6b36da
|
@ -101,8 +101,6 @@ if(GTSAM_BUILD_PYTHON OR GTSAM_INSTALL_MATLAB_TOOLBOX)
|
||||||
# Copy matlab.h to the correct folder.
|
# Copy matlab.h to the correct folder.
|
||||||
configure_file(${PROJECT_SOURCE_DIR}/wrap/matlab.h
|
configure_file(${PROJECT_SOURCE_DIR}/wrap/matlab.h
|
||||||
${PROJECT_BINARY_DIR}/wrap/matlab.h COPYONLY)
|
${PROJECT_BINARY_DIR}/wrap/matlab.h COPYONLY)
|
||||||
# Add the include directories so that matlab.h can be found
|
|
||||||
include_directories("${PROJECT_BINARY_DIR}" "${GTSAM_EIGEN_INCLUDE_FOR_BUILD}")
|
|
||||||
|
|
||||||
add_subdirectory(wrap)
|
add_subdirectory(wrap)
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/wrap/cmake")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/wrap/cmake")
|
||||||
|
|
|
@ -16,8 +16,14 @@ endif()
|
||||||
if(GTSAM_USE_SYSTEM_EIGEN)
|
if(GTSAM_USE_SYSTEM_EIGEN)
|
||||||
find_package(Eigen3 REQUIRED) # need to find again as REQUIRED
|
find_package(Eigen3 REQUIRED) # need to find again as REQUIRED
|
||||||
|
|
||||||
# Use generic Eigen include paths e.g. <Eigen/Core>
|
add_library(Eigen3::Eigen INTERFACE IMPORTED)
|
||||||
set(GTSAM_EIGEN_INCLUDE_FOR_INSTALL "${EIGEN3_INCLUDE_DIR}")
|
|
||||||
|
set_target_properties(Eigen3::Eigen PROPERTIES
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES ${EIGEN3_INCLUDE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
# The actual include directory (for BUILD cmake target interface):
|
||||||
|
set(GTSAM_EIGEN_INCLUDE_FOR_BUILD "${EIGEN3_INCLUDE_DIR}/")
|
||||||
|
|
||||||
# check if MKL is also enabled - can have one or the other, but not both!
|
# check if MKL is also enabled - can have one or the other, but not both!
|
||||||
# Note: Eigen >= v3.2.5 includes our patches
|
# Note: Eigen >= v3.2.5 includes our patches
|
||||||
|
@ -30,9 +36,6 @@ if(GTSAM_USE_SYSTEM_EIGEN)
|
||||||
if(EIGEN_USE_MKL_ALL AND (EIGEN3_VERSION VERSION_EQUAL 3.3.4))
|
if(EIGEN_USE_MKL_ALL AND (EIGEN3_VERSION VERSION_EQUAL 3.3.4))
|
||||||
message(FATAL_ERROR "MKL does not work with Eigen 3.3.4 because of a bug in Eigen. See http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1527. Disable GTSAM_USE_SYSTEM_EIGEN to use GTSAM's copy of Eigen, disable GTSAM_WITH_EIGEN_MKL, or upgrade/patch your installation of Eigen.")
|
message(FATAL_ERROR "MKL does not work with Eigen 3.3.4 because of a bug in Eigen. See http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1527. Disable GTSAM_USE_SYSTEM_EIGEN to use GTSAM's copy of Eigen, disable GTSAM_WITH_EIGEN_MKL, or upgrade/patch your installation of Eigen.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# The actual include directory (for BUILD cmake target interface):
|
|
||||||
set(GTSAM_EIGEN_INCLUDE_FOR_BUILD "${EIGEN3_INCLUDE_DIR}")
|
|
||||||
else()
|
else()
|
||||||
# Use bundled Eigen include path.
|
# Use bundled Eigen include path.
|
||||||
# Clear any variables set by FindEigen3
|
# Clear any variables set by FindEigen3
|
||||||
|
@ -46,6 +49,19 @@ else()
|
||||||
|
|
||||||
# The actual include directory (for BUILD cmake target interface):
|
# The actual include directory (for BUILD cmake target interface):
|
||||||
set(GTSAM_EIGEN_INCLUDE_FOR_BUILD "${GTSAM_SOURCE_DIR}/gtsam/3rdparty/Eigen/")
|
set(GTSAM_EIGEN_INCLUDE_FOR_BUILD "${GTSAM_SOURCE_DIR}/gtsam/3rdparty/Eigen/")
|
||||||
|
|
||||||
|
add_library(gtsam_eigen3 INTERFACE)
|
||||||
|
|
||||||
|
target_include_directories(gtsam_eigen3 INTERFACE
|
||||||
|
$<BUILD_INTERFACE:${GTSAM_EIGEN_INCLUDE_FOR_BUILD}>
|
||||||
|
$<INSTALL_INTERFACE:${GTSAM_EIGEN_INCLUDE_FOR_INSTALL}>
|
||||||
|
)
|
||||||
|
add_library(Eigen3::Eigen ALIAS gtsam_eigen3)
|
||||||
|
|
||||||
|
install(TARGETS gtsam_eigen3 EXPORT GTSAM-exports PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||||
|
|
||||||
|
list(APPEND GTSAM_EXPORTED_TARGETS gtsam_eigen3)
|
||||||
|
set(GTSAM_EXPORTED_TARGETS "${GTSAM_EXPORTED_TARGETS}" PARENT_SCOPE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Detect Eigen version:
|
# Detect Eigen version:
|
||||||
|
|
|
@ -117,12 +117,9 @@ set_target_properties(gtsam PROPERTIES
|
||||||
VERSION ${gtsam_version}
|
VERSION ${gtsam_version}
|
||||||
SOVERSION ${gtsam_soversion})
|
SOVERSION ${gtsam_soversion})
|
||||||
|
|
||||||
# Append Eigen include path, set in top-level CMakeLists.txt to either
|
|
||||||
# system-eigen, or GTSAM eigen path
|
# system-eigen, or GTSAM eigen path
|
||||||
target_include_directories(gtsam PUBLIC
|
target_link_libraries(gtsam PUBLIC Eigen3::Eigen)
|
||||||
$<BUILD_INTERFACE:${GTSAM_EIGEN_INCLUDE_FOR_BUILD}>
|
|
||||||
$<INSTALL_INTERFACE:${GTSAM_EIGEN_INCLUDE_FOR_INSTALL}>
|
|
||||||
)
|
|
||||||
# MKL include dir:
|
# MKL include dir:
|
||||||
if (GTSAM_USE_EIGEN_MKL)
|
if (GTSAM_USE_EIGEN_MKL)
|
||||||
target_include_directories(gtsam PUBLIC ${MKL_INCLUDE_DIR})
|
target_include_directories(gtsam PUBLIC ${MKL_INCLUDE_DIR})
|
||||||
|
|
Loading…
Reference in New Issue