cmake_minimum_required(VERSION 2.8) project(ORB_SLAM2) IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE Release) ENDIF() MESSAGE("Build type: " ${CMAKE_BUILD_TYPE}) # Check C++11 or C++0x support add_definitions(-DCOMPILEDWITHC11) if( CMAKE_BUILD_TYPE MATCHES "Debug" ) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -msse3 -std=c++11 -pthread -g -march=native -Wno-deprecated-declarations") else( CMAKE_BUILD_TYPE MATCHES "Release" ) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -msse3 -std=c++11 -pthread -O3 -march=native -Wno-deprecated-declarations") endif( CMAKE_BUILD_TYPE MATCHES "Debug" ) LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules) find_package(OpenCV 2.4.10 REQUIRED) find_package(Eigen3 REQUIRED) find_package(Pangolin REQUIRED) include_directories( ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/include ${EIGEN3_INCLUDE_DIR} ${Pangolin_INCLUDE_DIRS} ) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib) add_library(${PROJECT_NAME} SHARED src/System.cpp src/Tracking.cpp src/LocalMapping.cpp src/LoopClosing.cpp src/ORBextractor.cpp src/ORBmatcher.cpp src/FrameDrawer.cpp src/Converter.cpp src/MapPoint.cpp src/KeyFrame.cpp src/Map.cpp src/MapDrawer.cpp src/Optimizer.cpp src/PnPsolver.cpp src/Frame.cpp src/KeyFrameDatabase.cpp src/Sim3Solver.cpp src/Initializer.cpp src/Viewer.cpp ) target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS} ${EIGEN3_LIBS} ${Pangolin_LIBRARIES} ${PROJECT_SOURCE_DIR}/Thirdparty/DBoW2/lib/libDBoW2.so ${PROJECT_SOURCE_DIR}/Thirdparty/g2o/lib/libg2o.so ) add_executable(mono_kitti Examples/Monocular/mono_kitti.cc) target_link_libraries(mono_kitti ${PROJECT_NAME}) add_executable(stereo_kitti Examples/Stereo/stereo_kitti.cpp) target_link_libraries(stereo_kitti ${PROJECT_NAME}) add_executable(stereo_EuRoC Examples/Stereo/stereo_EuRoC.cpp) target_link_libraries(stereo_EuRoC ${PROJECT_NAME}) add_executable(rgbd_tum Examples/RGB-D/rgbd_tum.cc) target_link_libraries(rgbd_tum ${PROJECT_NAME}) # Build tools set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Vocabulary) add_executable(bin_vocabulary Vocabulary/bin_vocabulary.cpp) target_link_libraries(bin_vocabulary ${PROJECT_SOURCE_DIR}/Thirdparty/DBoW2/lib/libDBoW2.so ${OpenCV_LIBS})