奥特QT DDS 插件库
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

153 рядки
4.2KB

  1. cmake_minimum_required(VERSION 3.16)
  2. # 添加更详细的错误输出
  3. set(CMAKE_VERBOSE_MAKEFILE ON)
  4. message(STATUS "Qt6_DIR is: $ENV{Qt6_DIR}")
  5. message(STATUS "CMAKE_PREFIX_PATH is: $ENV{CMAKE_PREFIX_PATH}")
  6. # 在project声明之前设置构建类型
  7. if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
  8. set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build." FORCE)
  9. set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
  10. endif()
  11. project(AuseftDDSPlugTest VERSION 0.1 LANGUAGES CXX)
  12. # 如果没有指定构建类型,设置为 Debug
  13. if(NOT CMAKE_BUILD_TYPE)
  14. set(CMAKE_BUILD_TYPE Debug)
  15. endif()
  16. # 基本设置
  17. set(CMAKE_CXX_STANDARD 17)
  18. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  19. set(CMAKE_POSITION_INDEPENDENT_CODE ON)
  20. # 根据构建类型设置编译选项
  21. if(MSVC)
  22. # MSVC 编译器选项
  23. set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /W4 /Zi /Od")
  24. set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /O2")
  25. else()
  26. # GCC/Clang 编译器选项
  27. set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0 -Wall -Wextra")
  28. set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3")
  29. endif()
  30. # 输出目录设置
  31. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
  32. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
  33. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
  34. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
  35. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
  36. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
  37. # 添加 OpenGL 查找
  38. find_package(OpenGL REQUIRED)
  39. # Qt相关设置
  40. list(APPEND CMAKE_PREFIX_PATH "/home/suzj/Qt/6.8.1/gcc_64")
  41. find_package(Qt6 6.8 REQUIRED COMPONENTS
  42. Quick
  43. OpenGL
  44. Gui
  45. )
  46. # 添加接口目录到包含路径
  47. include_directories(${CMAKE_SOURCE_DIR})
  48. # 在 project 声明之后添加
  49. set(CMAKE_AUTOMOC ON)
  50. set(CMAKE_AUTORCC ON)
  51. set(CMAKE_AUTOUIC ON)
  52. # 设置 Qt 策略
  53. qt_policy(SET QTP0001 NEW)
  54. # 在 project 声明后添加
  55. add_library(Interfaces INTERFACE)
  56. target_include_directories(Interfaces INTERFACE ${CMAKE_SOURCE_DIR})
  57. # 添加接口文件到 IDE 显示
  58. add_custom_target(InterfacesIDE SOURCES
  59. interfaces/plugin_interface.hpp
  60. # 添加其他接口文件...
  61. )
  62. # 修改 qt_add_executable 部分
  63. qt_add_executable(AuseftDDSPlugTest
  64. main.cpp
  65. PluginLoader.cxx
  66. PluginLoader.hpp
  67. MANUAL_FINALIZATION
  68. )
  69. # 修改 qt_add_qml_module 部分
  70. qt_add_qml_module(AuseftDDSPlugTest
  71. URI AuseftDDSPlugTest
  72. VERSION 1.0
  73. QML_FILES
  74. Main.qml
  75. )
  76. set_target_properties(AuseftDDSPlugTest PROPERTIES
  77. QT_QML_LINT_ENABLED TRUE
  78. MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
  79. MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
  80. MACOSX_BUNDLE TRUE
  81. WIN32_EXECUTABLE TRUE
  82. )
  83. # 链接接口库
  84. target_link_libraries(AuseftDDSPlugTest
  85. PRIVATE
  86. Interfaces
  87. Qt6::Quick
  88. Qt6::OpenGL
  89. OpenGL::GL
  90. )
  91. include(GNUInstallDirs)
  92. install(TARGETS AuseftDDSPlugTest
  93. BUNDLE DESTINATION .
  94. LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  95. RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  96. )
  97. add_subdirectory(plugins/AQTSampleMachinePlug BEFORE)
  98. #add_subdirectory(plugins/AQTPackageMachinePlug)
  99. # 根据编译器类型设置警告标志
  100. if(MSVC)
  101. # MSVC 编译器警告设置
  102. add_compile_options(/W4)
  103. else()
  104. # GCC/Clang 编译器警告设置
  105. add_compile_options(-Wall -Wextra)
  106. endif()
  107. # 修改原有的平台相关配置
  108. if(WIN32)
  109. set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
  110. endif()
  111. if(CMAKE_BUILD_TYPE STREQUAL "Debug")
  112. target_compile_options(AuseftDDSPlugTest PRIVATE -g)
  113. endif()
  114. # 在cmake_minimum_required之后添加
  115. set(CMAKE_VERBOSE_MAKEFILE ON)
  116. message(STATUS "CMAKE_BUILD_TYPE is: ${CMAKE_BUILD_TYPE}")
  117. message(STATUS "Build directory is: ${CMAKE_BINARY_DIR}")
  118. # 在文件末尾添加
  119. qt_finalize_executable(AuseftDDSPlugTest)
  120. target_include_directories(AuseftDDSPlugTest
  121. PRIVATE
  122. ${CMAKE_SOURCE_DIR}
  123. ${CMAKE_SOURCE_DIR}/plugins
  124. )