CMakeLists.txt 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. cmake_minimum_required(VERSION 2.8.3)
  2. project(yesense_imu)
  3. execute_process(COMMAND chmod +x "${CMAKE_CURRENT_SOURCE_DIR}/cfg/Yesense.cfg"
  4. COMMAND dos2unix "${CMAKE_CURRENT_SOURCE_DIR}/cfg/Yesense.cfg")
  5. ## Find catkin macros and libraries
  6. ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
  7. ## is used, also find other catkin packages
  8. find_package(catkin REQUIRED COMPONENTS
  9. roscpp
  10. rospy
  11. dynamic_reconfigure
  12. geometry_msgs
  13. sensor_msgs
  14. serial
  15. std_msgs
  16. std_srvs
  17. tf
  18. nav_msgs
  19. message_generation
  20. )
  21. ## Generate messages in the 'msg' folder
  22. add_message_files(
  23. FILES
  24. YesenseImuEulerAngle.msg
  25. YesenseImuLocation.msg
  26. YesenseImuQuaternion.msg
  27. YesenseImuStatus.msg
  28. YesenseImuUtcTime.msg
  29. YesenseImuVelocity.msg
  30. YesenseImuMasterGnssData.msg
  31. YesenseImuSlaveGnssData.msg
  32. YesenseImuGnssData.msg
  33. YesenseImuGpsData.msg
  34. YesenseImuNavData.msg
  35. YesenseImuInertialData.msg
  36. YesenseImuSensorData.msg
  37. YesenseImuAllData.msg
  38. YesenseImuCmdResp.msg
  39. )
  40. # dynamic reconfigure
  41. generate_dynamic_reconfigure_options(
  42. cfg/Yesense.cfg
  43. )
  44. ## Generate added messages and services with any dependencies listed here
  45. generate_messages(
  46. DEPENDENCIES
  47. std_msgs
  48. geometry_msgs
  49. )
  50. ###################################
  51. ## catkin specific configuration ##
  52. ###################################
  53. ## The catkin_package macro generates cmake config files for your package
  54. ## Declare things to be passed to dependent projects
  55. ## INCLUDE_DIRS: uncomment this if you package contains header files
  56. ## LIBRARIES: libraries you create in this project that dependent projects also need
  57. ## CATKIN_DEPENDS: catkin_packages dependent projects also need
  58. ## DEPENDS: system dependencies of this project that dependent projects also need
  59. catkin_package(
  60. # INCLUDE_DIRS include
  61. # LIBRARIES mpu6050_serial_to_imu
  62. CATKIN_DEPENDS message_runtime roscpp geometry_msgs sensor_msgs serial std_msgs std_srvs tf using_markers visualization_msgs
  63. # DEPENDS system_lib
  64. )
  65. ###########
  66. ## Build ##
  67. ###########
  68. ## Specify additional locations of header files
  69. ## Your package locations should be listed before other locations
  70. # include_directories(include)
  71. include_directories(
  72. include
  73. ${catkin_INCLUDE_DIRS}
  74. ./src
  75. )
  76. add_executable(imu_2_odom # 这部分代码放的位置也有讲究,不能乱放...
  77. src/imu_2_odom.cpp
  78. )
  79. # add_dependencies(imu_2_odom ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
  80. target_link_libraries(imu_2_odom
  81. ${catkin_LIBRARIES}
  82. )
  83. ## Declare a C++ executable
  84. add_executable(yesense_imu_node
  85. src/yesense_driver.cpp
  86. src/yesense_node.cpp
  87. src/analysis_data.cpp
  88. )
  89. add_dependencies(yesense_imu_node ${${PROJECT_NAME}_EXPORTTED_TARGETS}
  90. ${catkin_EXPORTED_TARGETS}
  91. ${PROJECT_NAME}_generate_messages_cpp
  92. ${PROJECT_NAME}_gencpp
  93. )
  94. target_link_libraries(yesense_imu_node
  95. ${catkin_LIBRARIES}
  96. )
  97. add_executable(imu_tf src/imu_tf.cpp)
  98. target_link_libraries( imu_tf ${catkin_LIBRARIES})# ${SERIAL_LIB}
  99. # add debug info
  100. # set(CMAKE_BUILD_TYPE "Debug")
  101. # set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
  102. # set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O0 -Wall")
  103. set(CMAKE_BUILD_TYPE "Release")
  104. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -std=c++11")
  105. set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -g")
  106. #############
  107. ## Install ##
  108. #############
  109. ## Mark executables and/or libraries for installation
  110. # install(TARGETS yesense_imu_node
  111. # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  112. # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  113. # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
  114. # )
  115. # install (DIRECTORY launch
  116. # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
  117. # )
  118. # install (DIRECTORY rviz
  119. # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
  120. # )