CMakeLists.txt 2.6 KB

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