CMakeLists.txt 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. cmake_minimum_required(VERSION 2.8.3)
  2. project(space_slam)
  3. set (CMAKE_BUILD_TYPE Release)
  4. ## Compile as C++11, supported in ROS Kinetic and newer
  5. add_compile_options(-std=c++11)
  6. set(CMAKE_CXX_FLAGS "-std=c++0x -Wno-deprecated")
  7. find_package(Boost REQUIRED COMPONENTS system thread)
  8. find_package(catkin REQUIRED COMPONENTS
  9. roscpp
  10. rospy
  11. base_msgs
  12. tf
  13. )
  14. include(CheckCXXCompilerFlag)
  15. CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
  16. CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
  17. if(COMPILER_SUPPORTS_CXX11)
  18. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
  19. elseif(COMPILER_SUPPORTS_CXX0X)
  20. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
  21. else()
  22. message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
  23. endif()
  24. # LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)
  25. find_package(Eigen3 REQUIRED)
  26. #generate_messages(DEPENDENCIES std_msgs geometry_msgs nav_msgs)
  27. find_package(Ceres REQUIRED COMPONENTS SuiteSparse)
  28. INCLUDE_DIRECTORIES(${CERES_INCLUDE_DIRS})
  29. find_package(OpenCV REQUIRED)
  30. INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
  31. catkin_package(
  32. # CATKIN_DEPENDS message_runtime
  33. )
  34. include_directories(
  35. ${catkin_INCLUDE_DIRS}
  36. ${EIGEN_INCLUDE_DIRS}
  37. )
  38. link_directories(
  39. /usr/lib/
  40. /usr/local/lib/
  41. /usr/local/libstatic/
  42. )
  43. INCLUDE_DIRECTORIES(
  44. ${PROJECT_SOURCE_DIR}
  45. )
  46. add_executable(slam_node
  47. ros_node.cpp
  48. map/map.cpp
  49. odom/odom.cpp
  50. slam/slam.cpp
  51. filter/filter.cpp
  52. pose_graph/pose_cost_function.cpp
  53. pose_graph/occupied_space_cost_function.cc
  54. pose_graph/pose_graph.cpp
  55. real_match_2d/real_match_2d.cpp
  56. ceres_matcher/ceres_scan_matcher_2d.cc
  57. ceres_matcher/occupied_space_cost_function_2d.cc
  58. )
  59. target_link_libraries(slam_node
  60. ${catkin_LIBRARIES}
  61. ${Boost_LIBRARIES}
  62. ${CERES_LIBRARIES}
  63. ${OpenCV_LIBRARIES}
  64. libspace_lib.so
  65. glog
  66. # libspace_key.a
  67. )
  68. install(TARGETS slam_node
  69. slam_node
  70. ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  71. LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  72. RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
  73. )
  74. install(DIRECTORY
  75. DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
  76. USE_SOURCE_PERMISSIONS
  77. )