CMakeLists.txt 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. cmake_minimum_required(VERSION 2.4.6)
  2. include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
  3. rosbuild_init()
  4. IF(NOT ROS_BUILD_TYPE)
  5. SET(ROS_BUILD_TYPE Release)
  6. ENDIF()
  7. MESSAGE("Build type: " ${ROS_BUILD_TYPE})
  8. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O3 -march=native ")
  9. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O3 -march=native")
  10. # Check C++11 or C++0x support
  11. include(CheckCXXCompilerFlag)
  12. CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
  13. CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
  14. if(COMPILER_SUPPORTS_CXX11)
  15. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
  16. add_definitions(-DCOMPILEDWITHC11)
  17. message(STATUS "Using flag -std=c++11.")
  18. elseif(COMPILER_SUPPORTS_CXX0X)
  19. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
  20. add_definitions(-DCOMPILEDWITHC0X)
  21. message(STATUS "Using flag -std=c++0x.")
  22. else()
  23. message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
  24. endif()
  25. LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../../cmake_modules)
  26. find_package(OpenCV 3.0 QUIET)
  27. if(NOT OpenCV_FOUND)
  28. find_package(OpenCV 2.4.3 QUIET)
  29. if(NOT OpenCV_FOUND)
  30. message(FATAL_ERROR "OpenCV > 2.4.3 not found.")
  31. endif()
  32. endif()
  33. find_package(Eigen3 3.1.0 REQUIRED)
  34. find_package(Pangolin REQUIRED)
  35. include_directories(
  36. ${PROJECT_SOURCE_DIR}
  37. ${PROJECT_SOURCE_DIR}/../../../
  38. ${PROJECT_SOURCE_DIR}/../../../include
  39. ${Pangolin_INCLUDE_DIRS}
  40. )
  41. set(LIBS
  42. ${OpenCV_LIBS}
  43. ${EIGEN3_LIBS}
  44. ${Pangolin_LIBRARIES}
  45. ${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so
  46. ${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so
  47. ${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM3.so
  48. )
  49. # Node for monocular camera
  50. rosbuild_add_executable(Mono
  51. src/ros_mono.cc
  52. )
  53. target_link_libraries(Mono
  54. ${LIBS}
  55. )
  56. # Node for monocular camera (Augmented Reality Demo)
  57. rosbuild_add_executable(MonoAR
  58. src/AR/ros_mono_ar.cc
  59. src/AR/ViewerAR.h
  60. src/AR/ViewerAR.cc
  61. )
  62. target_link_libraries(MonoAR
  63. ${LIBS}
  64. )
  65. # Node for stereo camera
  66. rosbuild_add_executable(Stereo
  67. src/ros_stereo.cc
  68. )
  69. target_link_libraries(Stereo
  70. ${LIBS}
  71. )
  72. # Node for RGB-D camera
  73. rosbuild_add_executable(RGBD
  74. src/ros_rgbd.cc
  75. )
  76. target_link_libraries(RGBD
  77. ${LIBS}
  78. )