mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 17:40:23 +08:00
287 lines
5.6 KiB
CMake
287 lines
5.6 KiB
CMake
|
|
SET(SRC_FILES
|
|
Rtabmap.cpp
|
|
RtabmapThread.cpp
|
|
|
|
Statistics.cpp
|
|
|
|
Memory.cpp
|
|
|
|
DBDriver.cpp
|
|
DBDriverSqlite3.cpp
|
|
DBReader.cpp
|
|
|
|
Camera.cpp
|
|
CameraThread.cpp
|
|
CameraRGB.cpp
|
|
CameraRGBD.cpp
|
|
CameraStereo.cpp
|
|
CameraModel.cpp
|
|
|
|
EpipolarGeometry.cpp
|
|
VisualWord.cpp
|
|
VWDictionary.cpp
|
|
BayesFilter.cpp
|
|
Parameters.cpp
|
|
Signature.cpp
|
|
Features2d.cpp
|
|
Transform.cpp
|
|
GeodeticCoords.cpp
|
|
|
|
util2d.cpp
|
|
|
|
util3d.cpp
|
|
util3d_filtering.cpp
|
|
util3d_mapping.cpp
|
|
util3d_transforms.cpp
|
|
util3d_registration.cpp
|
|
util3d_surface.cpp
|
|
util3d_features.cpp
|
|
util3d_correspondences.cpp
|
|
util3d_motion_estimation.cpp
|
|
|
|
SensorData.cpp
|
|
Graph.cpp
|
|
Compression.cpp
|
|
Link.cpp
|
|
|
|
Optimizer.cpp
|
|
OptimizerTORO.cpp
|
|
OptimizerG2O.cpp
|
|
OptimizerGTSAM.cpp
|
|
OptimizerCVSBA.cpp
|
|
|
|
Registration.cpp
|
|
RegistrationIcp.cpp
|
|
RegistrationVis.cpp
|
|
|
|
Odometry.cpp
|
|
OdometryThread.cpp
|
|
OdometryF2M.cpp
|
|
OdometryMono.cpp
|
|
OdometryF2F.cpp
|
|
|
|
Stereo.cpp
|
|
StereoDense.cpp
|
|
StereoCameraModel.cpp
|
|
|
|
rtflann/ext/lz4.c
|
|
rtflann/ext/lz4hc.c
|
|
|
|
sqlite3/sqlite3.c
|
|
)
|
|
|
|
IF(OpenCV_VERSION_MAJOR EQUAL 2)
|
|
SET(SRC_FILES
|
|
${SRC_FILES}
|
|
opencv/Orb.cpp
|
|
opencv/solvepnp.cpp
|
|
)
|
|
ENDIF(OpenCV_VERSION_MAJOR EQUAL 2)
|
|
|
|
SET(INCLUDE_DIRS
|
|
${PROJECT_SOURCE_DIR}/utilite/include
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../include
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
${OpenCV_INCLUDE_DIRS}
|
|
${PCL_INCLUDE_DIRS}
|
|
${ZLIB_INCLUDE_DIRS}
|
|
)
|
|
|
|
SET(LIBRARIES
|
|
${OpenCV_LIBS}
|
|
${PCL_LIBRARIES}
|
|
${ZLIB_LIBRARIES}
|
|
)
|
|
|
|
IF(Freenect_FOUND)
|
|
IF(Freenect_DASH_INCLUDES)
|
|
ADD_DEFINITIONS("-DFREENECT_DASH_INCLUDES")
|
|
ENDIF(Freenect_DASH_INCLUDES)
|
|
SET(INCLUDE_DIRS
|
|
${INCLUDE_DIRS}
|
|
${Freenect_INCLUDE_DIRS}
|
|
)
|
|
SET(LIBRARIES
|
|
${LIBRARIES}
|
|
${Freenect_LIBRARIES}
|
|
)
|
|
ENDIF(Freenect_FOUND)
|
|
|
|
IF(OpenNI2_FOUND)
|
|
SET(INCLUDE_DIRS
|
|
${INCLUDE_DIRS}
|
|
${OpenNI2_INCLUDE_DIRS}
|
|
)
|
|
SET(LIBRARIES
|
|
${LIBRARIES}
|
|
${OpenNI2_LIBRARIES}
|
|
)
|
|
ENDIF(OpenNI2_FOUND)
|
|
|
|
IF(freenect2_FOUND)
|
|
SET(INCLUDE_DIRS
|
|
${INCLUDE_DIRS}
|
|
${freenect2_INCLUDE_DIRS}
|
|
)
|
|
SET(LIBRARIES
|
|
${LIBRARIES}
|
|
${freenect2_LIBRARIES}
|
|
)
|
|
ENDIF(freenect2_FOUND)
|
|
|
|
IF(DC1394_FOUND)
|
|
SET(INCLUDE_DIRS
|
|
${INCLUDE_DIRS}
|
|
${DC1394_INCLUDE_DIRS}
|
|
)
|
|
SET(LIBRARIES
|
|
${LIBRARIES}
|
|
${DC1394_LIBRARIES}
|
|
)
|
|
ENDIF(DC1394_FOUND)
|
|
|
|
IF(FlyCapture2_FOUND)
|
|
SET(INCLUDE_DIRS
|
|
${INCLUDE_DIRS}
|
|
${FlyCapture2_INCLUDE_DIRS}
|
|
)
|
|
SET(LIBRARIES
|
|
${LIBRARIES}
|
|
${FlyCapture2_LIBRARIES}
|
|
)
|
|
ENDIF(FlyCapture2_FOUND)
|
|
|
|
IF(WITH_TORO)
|
|
SET(SRC_FILES
|
|
${SRC_FILES}
|
|
toro3d/posegraph3.cpp
|
|
toro3d/treeoptimizer3_iteration.cpp
|
|
toro3d/treeoptimizer3.cpp
|
|
|
|
toro3d/posegraph2.cpp
|
|
toro3d/treeoptimizer2.cpp
|
|
)
|
|
ENDIF(WITH_TORO)
|
|
|
|
IF(G2O_FOUND)
|
|
SET(INCLUDE_DIRS
|
|
${INCLUDE_DIRS}
|
|
${G2O_INCLUDE_DIRS}
|
|
)
|
|
SET(LIBRARIES
|
|
${LIBRARIES}
|
|
${G2O_LIBRARIES}
|
|
)
|
|
|
|
IF(WITH_VERTIGO)
|
|
SET(SRC_FILES
|
|
${SRC_FILES}
|
|
vertigo/g2o/edge_se2Switchable.cpp
|
|
vertigo/g2o/edge_se3Switchable.cpp
|
|
vertigo/g2o/edge_switchPrior.cpp
|
|
vertigo/g2o/types_g2o_robust.cpp
|
|
vertigo/g2o/vertex_switchLinear.cpp
|
|
)
|
|
ENDIF(WITH_VERTIGO)
|
|
ENDIF(G2O_FOUND)
|
|
|
|
IF(GTSAM_FOUND)
|
|
SET(INCLUDE_DIRS
|
|
${INCLUDE_DIRS}
|
|
${GTSAM_INCLUDE_DIRS}
|
|
)
|
|
SET(LIBRARIES
|
|
${LIBRARIES}
|
|
gtsam
|
|
)
|
|
ENDIF(GTSAM_FOUND)
|
|
|
|
IF(cvsba_FOUND)
|
|
SET(INCLUDE_DIRS
|
|
${INCLUDE_DIRS}
|
|
${cvsba_INCLUDE_DIRS}
|
|
)
|
|
SET(LIBRARIES
|
|
${LIBRARIES}
|
|
${cvsba_LIBS}
|
|
)
|
|
ENDIF(cvsba_FOUND)
|
|
|
|
####################################
|
|
# Generate resources files
|
|
####################################
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/resources/DatabaseSchema.sql.in ${CMAKE_CURRENT_SOURCE_DIR}/resources/DatabaseSchema.sql)
|
|
|
|
SET(R
|
|
${CMAKE_CURRENT_SOURCE_DIR}/resources/DatabaseSchema.sql
|
|
)
|
|
|
|
#replace semicolons by spaces
|
|
foreach(arg ${R})
|
|
set(RESOURCES "${RESOURCES}" "${arg}")
|
|
endforeach(arg ${R})
|
|
|
|
SET(RESOURCES_HEADERS
|
|
${CMAKE_CURRENT_BINARY_DIR}/DatabaseSchema_sql.h
|
|
)
|
|
|
|
IF(ANDROID)
|
|
|
|
IF(NOT RTABMAP_RES_TOOL)
|
|
find_host_program(RTABMAP_RES_TOOL rtabmap-res_tool)
|
|
IF(NOT RTABMAP_RES_TOOL)
|
|
MESSAGE( FATAL_ERROR "RTABMAP_RES_TOOL is not defined (it is the path to \"rtabmap-res_tool\" application created by a non-Android build)." )
|
|
ENDIF(NOT RTABMAP_RES_TOOL)
|
|
ENDIF(NOT RTABMAP_RES_TOOL)
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
OUTPUT ${RESOURCES_HEADERS}
|
|
COMMAND ${RTABMAP_RES_TOOL} -n rtabmap -p ${CMAKE_CURRENT_BINARY_DIR} ${RESOURCES}
|
|
COMMENT "[Creating resources]"
|
|
DEPENDS ${R}
|
|
)
|
|
ELSE()
|
|
ADD_CUSTOM_COMMAND(
|
|
OUTPUT ${RESOURCES_HEADERS}
|
|
COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/rtabmap-res_tool -n rtabmap -p ${CMAKE_CURRENT_BINARY_DIR} ${RESOURCES}
|
|
COMMENT "[Creating resources]"
|
|
DEPENDS ${R} res_tool
|
|
)
|
|
ENDIF()
|
|
|
|
####################################
|
|
# Generate resources files END
|
|
####################################
|
|
|
|
add_definitions(${PCL_DEFINITIONS})
|
|
|
|
|
|
# Make sure the compiler can find include files from our library.
|
|
INCLUDE_DIRECTORIES(${INCLUDE_DIRS})
|
|
|
|
# Add binary that is built from the source file "main.cpp".
|
|
# The extension is automatically found.
|
|
ADD_LIBRARY(rtabmap_core ${SRC_FILES} ${RESOURCES_HEADERS})
|
|
TARGET_LINK_LIBRARIES(rtabmap_core rtabmap_utilite ${LIBRARIES})
|
|
|
|
SET_TARGET_PROPERTIES(
|
|
rtabmap_core
|
|
PROPERTIES
|
|
VERSION ${RTABMAP_VERSION}
|
|
SOVERSION ${RTABMAP_MAJOR_VERSION}.${RTABMAP_MINOR_VERSION}
|
|
)
|
|
|
|
INSTALL(TARGETS rtabmap_core
|
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT runtime
|
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT devel
|
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT devel)
|
|
|
|
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../include/
|
|
DESTINATION "${INSTALL_INCLUDE_DIR}"
|
|
COMPONENT devel
|
|
FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
|
|
PATTERN ".svn" EXCLUDE)
|
|
|