奥特QT DDS 插件库
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

87 líneas
2.1KB

  1. cmake_minimum_required(VERSION 3.16)
  2. project(AQTPackageMachinePlug LANGUAGES CXX)
  3. # 添加更多调试输出
  4. message(STATUS "Current source dir: ${CMAKE_CURRENT_SOURCE_DIR}")
  5. message(STATUS "FastDDS lib dir: ${fastdds_DIR}")
  6. message(STATUS "FastCDR lib dir: ${fastcdr_DIR}")
  7. set(CMAKE_CXX_STANDARD 17)
  8. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  9. set(CMAKE_AUTOMOC ON)
  10. set(CMAKE_POSITION_INDEPENDENT_CODE ON)
  11. find_package(Qt6 REQUIRED COMPONENTS Core Quick)
  12. # 添加 FastDDS 依赖
  13. if(NOT fastcdr_FOUND)
  14. find_package(fastcdr 2 REQUIRED)
  15. endif()
  16. if(NOT fastdds_FOUND)
  17. find_package(fastdds 3 REQUIRED)
  18. endif()
  19. # 创建插件库
  20. add_library(AQTPackageMachinePlug SHARED
  21. AQTPackageMachinePlug.cxx
  22. AQTPackageMachinePlug.hpp
  23. AQTPackageMachinePlug.json
  24. HelloWorldPubSubTypes.cxx
  25. HelloWorldPubSubTypes.hpp
  26. HelloWorldCdrAux.hpp
  27. HelloWorldCdrAux.ipp
  28. HelloWorld.hpp
  29. HelloWorldTypeObjectSupport.cxx
  30. HelloWorldTypeObjectSupport.hpp
  31. )
  32. # 定义导出宏
  33. target_compile_definitions(AQTPackageMachinePlug
  34. PRIVATE
  35. AQTPACKAGEMACHINEPLUG_LIBRARY
  36. QT_PLUGIN
  37. FASTRTPS_NO_LIB
  38. FASTRTPS_DYN_LINK
  39. )
  40. # 添加包含目录
  41. target_include_directories(AQTPackageMachinePlug
  42. PRIVATE
  43. ${CMAKE_SOURCE_DIR}
  44. ${Qt6Core_INCLUDE_DIRS}
  45. ${Qt6Quick_INCLUDE_DIRS}
  46. )
  47. target_include_directories(AQTPackageMachinePlug
  48. PUBLIC
  49. ${CMAKE_CURRENT_SOURCE_DIR}
  50. )
  51. target_link_libraries(AQTPackageMachinePlug
  52. PRIVATE
  53. Qt6::Core
  54. Qt6::Quick
  55. fastdds
  56. fastcdr
  57. )
  58. # 修改属性设置
  59. set_target_properties(AQTPackageMachinePlug PROPERTIES
  60. OUTPUT_NAME "AQTPackageMachinePlug"
  61. LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
  62. RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
  63. PREFIX ""
  64. SUFFIX ".so"
  65. POSITION_INDEPENDENT_CODE ON
  66. SKIP_BUILD_RPATH FALSE
  67. BUILD_WITH_INSTALL_RPATH FALSE
  68. INSTALL_RPATH "$ORIGIN:${CMAKE_INSTALL_PREFIX}/lib"
  69. INSTALL_RPATH_USE_LINK_PATH TRUE
  70. )
  71. # 安装配置
  72. install(TARGETS AQTPackageMachinePlug
  73. LIBRARY DESTINATION bin
  74. RUNTIME DESTINATION bin
  75. )