CMakeLists.txt 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. cmake_minimum_required(VERSION 2.8.3)
  2. project(rosbag_controller)
  3. find_package(catkin REQUIRED COMPONENTS
  4. rosbag_storage
  5. rosconsole
  6. roscpp
  7. rviz
  8. topic_tools
  9. xmlrpcpp
  10. )
  11. if(rviz_QT_VERSION VERSION_LESS "5")
  12. message(STATUS "Using Qt4 based on the rviz_QT_VERSION: ${rviz_QT_VERSION}")
  13. find_package(Qt4 ${rviz_QT_VERSION} EXACT REQUIRED QtCore QtGui)
  14. ## pull in all required include dirs, define QT_LIBRARIES, etc.
  15. include(${QT_USE_FILE})
  16. else()
  17. message(STATUS "Using Qt5 based on the rviz_QT_VERSION: ${rviz_QT_VERSION}")
  18. find_package(Qt5 ${rviz_QT_VERSION} EXACT REQUIRED Core Widgets)
  19. ## make target_link_libraries(${QT_LIBRARIES}) pull in all required dependencies
  20. set(QT_LIBRARIES Qt5::Widgets)
  21. endif()
  22. find_package(Boost REQUIRED COMPONENTS
  23. date_time
  24. filesystem
  25. program_options
  26. regex
  27. thread
  28. )
  29. find_package(BZip2 REQUIRED)
  30. find_package(yaml-cpp REQUIRED)
  31. include_directories(${catkin_INCLUDE_DIRS})
  32. link_directories(${catkin_LIBRARY_DIRS})
  33. ##include(${QT_USE_FILE})
  34. include_directories(${CMAKE_CURRENT_BINARY_DIR})
  35. add_definitions(-D_FILE_OFFSET_BITS=64)
  36. add_definitions(-DQT_NO_KEYWORDS)
  37. add_definitions(${QT_DEFINITIONS})
  38. set(CMAKE_CXX_FLAGS "-Wall -g -O0")
  39. set(SOURCE_FILES
  40. src/core/recorder.cpp
  41. )
  42. set(UI_FILES
  43. src/autoware_rosbag_plugin.cpp
  44. )
  45. set(FORM_FILES
  46. src/autoware_rosbag_plugin.ui
  47. )
  48. QT5_WRAP_CPP(QT_MOC_SRC_HPP
  49. src/autoware_rosbag_plugin.h
  50. )
  51. QT5_WRAP_UI(QT_FORMS_HPP
  52. ${FORM_FILES}
  53. )
  54. QT5_ADD_RESOURCES(QT_RESOURCES_CPP
  55. ${RESOURCE_FILES}
  56. )
  57. catkin_package(
  58. INCLUDE_DIRS
  59. LIBRARIES ${PROJECT_NAME}
  60. CATKIN_DEPENDS xmlrpcpp
  61. DEPENDS Boost
  62. )
  63. include_directories(SYSTEM
  64. ${BOOST_INCLUDE_DIRS}
  65. ${catkin_INCLUDE_DIRS}
  66. include
  67. )
  68. add_library(${PROJECT_NAME}
  69. ${QT_MOC_SRC_HPP}
  70. ${QT_FORMS_HPP}
  71. ${SOURCE_FILES}
  72. ${UI_FILES}
  73. ${QT_RESOURCES_CPP}
  74. )
  75. target_link_libraries(${PROJECT_NAME}
  76. ${QT_LIBRARIES}
  77. ${catkin_LIBRARIES}
  78. ${Boost_LIBRARIES}
  79. yaml-cpp
  80. rosbag
  81. )
  82. find_package(class_loader)
  83. class_loader_hide_library_symbols(${PROJECT_NAME})
  84. install(TARGETS ${PROJECT_NAME}
  85. ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  86. LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  87. RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
  88. )
  89. install(DIRECTORY include/${PROJECT_NAME}/
  90. DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
  91. FILES_MATCHING PATTERN "*.h"
  92. )
  93. install(FILES plugin_description.xml
  94. DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
  95. )