CMakeLists.txt 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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(-DCOMPILEDWITHC14)
  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. ${PROJECT_SOURCE_DIR}/../../../include/CameraModels
  40. ${PROJECT_SOURCE_DIR}/../../../Thirdparty/Sophus
  41. ${Pangolin_INCLUDE_DIRS}
  42. )
  43. set(CMAKE_PREFIX_PATH "/usr/local/include/opencv4")
  44. set(LIBS
  45. ${OpenCV_LIBS}
  46. ${EIGEN3_LIBS}
  47. ${Pangolin_LIBRARIES}
  48. ${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so
  49. ${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so
  50. ${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM3.so
  51. -lboost_system
  52. )
  53. # Node for monocular camera
  54. rosbuild_add_executable(Mono
  55. src/ros_mono.cc
  56. )
  57. target_link_libraries(Mono
  58. ${LIBS}
  59. )
  60. # Node for monocular camera (Augmented Reality Demo)
  61. rosbuild_add_executable(MonoAR
  62. src/AR/ros_mono_ar.cc
  63. src/AR/ViewerAR.h
  64. src/AR/ViewerAR.cc
  65. )
  66. target_link_libraries(MonoAR
  67. ${LIBS}
  68. )
  69. # Node for stereo camera
  70. rosbuild_add_executable(Stereo
  71. src/ros_stereo.cc
  72. )
  73. target_link_libraries(Stereo
  74. ${LIBS}
  75. )
  76. # Node for RGB-D camera
  77. rosbuild_add_executable(RGBD
  78. src/ros_rgbd.cc
  79. )
  80. target_link_libraries(RGBD
  81. ${LIBS}
  82. )
  83. # Node for monocular-inertial camera
  84. rosbuild_add_executable(Mono_Inertial
  85. src/ros_mono_inertial.cc
  86. )
  87. target_link_libraries(Mono_Inertial
  88. ${LIBS}
  89. )
  90. # Node for stereo-inertial camera
  91. rosbuild_add_executable(Stereo_Inertial
  92. src/ros_stereo_inertial.cc
  93. )
  94. target_link_libraries(Stereo_Inertial
  95. ${LIBS}
  96. )