mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
45 lines
1.5 KiB
CMake
45 lines
1.5 KiB
CMake
# Find OpenVINS
|
|
#
|
|
# We search for a vins installation in ROS/ROS2 first, then fallback on
|
|
# ros-free library in common install paths
|
|
|
|
FIND_PACKAGE(ov_msckf QUIET)
|
|
IF(ov_msckf_FOUND)
|
|
# On ROS2, the indirect includes and libraries
|
|
# are not forwarded by ov_msckf target, append them manually
|
|
FIND_PACKAGE(ov_core)
|
|
FIND_PACKAGE(ov_init)
|
|
IF(ov_msckf_FOUND AND ov_core_FOUND AND ov_init_FOUND)
|
|
SET(OpenVINS_FOUND TRUE)
|
|
SET(OpenVINS_INCLUDE_DIRS
|
|
${ov_msckf_INCLUDE_DIRS}
|
|
${ov_core_INCLUDE_DIRS}
|
|
${ov_init_INCLUDE_DIRS})
|
|
SET(OpenVINS_LIBRARIES
|
|
${ov_msckf_LIBRARIES}
|
|
${ov_core_LIBRARIES}
|
|
${ov_init_LIBRARIES})
|
|
ENDIF()
|
|
ELSE()
|
|
find_path(OpenVINS_INCLUDE_DIR NAMES core/VioManager.h PATH_SUFFIXES open_vins)
|
|
find_library(OpenVINS_LIBRARY NAMES ov_msckf_lib)
|
|
IF (OpenVINS_INCLUDE_DIR AND OpenVINS_LIBRARY)
|
|
SET(OpenVINS_FOUND TRUE)
|
|
SET(OpenVINS_INCLUDE_DIRS ${OpenVINS_INCLUDE_DIR})
|
|
SET(OpenVINS_LIBRARIES ${OpenVINS_LIBRARY})
|
|
ENDIF()
|
|
ENDIF()
|
|
|
|
IF (OpenVINS_FOUND)
|
|
# show which OpenVINS was found only if not quiet
|
|
IF (NOT OpenVINS_FIND_QUIETLY)
|
|
MESSAGE(STATUS "Found OpenVINS: ${OpenVINS_LIBRARIES} ${OpenVINS_INCLUDE_DIRS}")
|
|
ENDIF (NOT OpenVINS_FIND_QUIETLY)
|
|
ELSE (OpenVINS_FOUND)
|
|
# fatal error if OpenVINS is required but not found
|
|
IF (OpenVINS_FIND_REQUIRED)
|
|
MESSAGE(FATAL_ERROR "Could not find OpenVINS")
|
|
ENDIF (OpenVINS_FIND_REQUIRED)
|
|
ENDIF (OpenVINS_FOUND)
|
|
|