- cmake_minimum_required(VERSION 3.16)
-
- # 添加更详细的错误输出
- set(CMAKE_VERBOSE_MAKEFILE ON)
- message(STATUS "Qt6_DIR is: $ENV{Qt6_DIR}")
- message(STATUS "CMAKE_PREFIX_PATH is: $ENV{CMAKE_PREFIX_PATH}")
-
- # 在project声明之前设置构建类型
- if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
- set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build." FORCE)
- set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
- endif()
-
- project(AuseftDDSPlugTest VERSION 0.1 LANGUAGES CXX)
-
- # 如果没有指定构建类型,设置为 Debug
- if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE Debug)
- endif()
-
- # 基本设置
- set(CMAKE_CXX_STANDARD 17)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
- set(CMAKE_POSITION_INDEPENDENT_CODE ON)
-
- # 根据构建类型设置编译选项
- set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0 -Wall -Wextra")
- set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3")
-
- # 输出目录设置
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
-
- # 添加 OpenGL 查找
- find_package(OpenGL REQUIRED)
-
- # Qt相关设置
- list(APPEND CMAKE_PREFIX_PATH "/home/suzj/Qt/6.8.1/gcc_64")
- find_package(Qt6 6.8 REQUIRED COMPONENTS
- Quick
- OpenGL
- Gui
- )
-
- # 添加接口目录到包含路径
- include_directories(${CMAKE_SOURCE_DIR})
-
- # 在 project 声明之后添加
- set(CMAKE_AUTOMOC ON)
- set(CMAKE_AUTORCC ON)
- set(CMAKE_AUTOUIC ON)
-
- # 设置 Qt 策略
- qt_policy(SET QTP0001 NEW)
-
- # 在 project 声明后添加
- add_library(Interfaces INTERFACE)
- target_include_directories(Interfaces INTERFACE ${CMAKE_SOURCE_DIR})
-
- # 添加接口文件到 IDE 显示
- add_custom_target(InterfacesIDE SOURCES
- interfaces/plugin_interface.hpp
- # 添加其他接口文件...
- )
-
- # 修改 qt_add_executable 部分
- qt_add_executable(AuseftDDSPlugTest
- main.cpp
- PluginLoader.cpp
- PluginLoader.hpp
- MANUAL_FINALIZATION
- )
-
- # 修改 qt_add_qml_module 部分
- qt_add_qml_module(AuseftDDSPlugTest
- URI AuseftDDSPlugTest
- VERSION 1.0
- QML_FILES
- Main.qml
-
- )
-
- set_target_properties(AuseftDDSPlugTest PROPERTIES
- QT_QML_LINT_ENABLED TRUE
- MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
- MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
- MACOSX_BUNDLE TRUE
- WIN32_EXECUTABLE TRUE
- )
-
- # 链接接口库
- target_link_libraries(AuseftDDSPlugTest
- PRIVATE
- Interfaces
- Qt6::Quick
- Qt6::OpenGL
- OpenGL::GL
- fastdds
- fastcdr
- )
-
- include(GNUInstallDirs)
- install(TARGETS AuseftDDSPlugTest
- BUNDLE DESTINATION .
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- )
-
- add_subdirectory(plugins/AQTSampleMachinePlug BEFORE)
- add_subdirectory(plugins/AQTPackageMachinePlug)
-
- # Windows 系统下启用调试信息
- if(WIN32)
- set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
- set(CMAKE_ENABLE_EXPORTS ON)
- endif()
-
- if(CMAKE_BUILD_TYPE STREQUAL "Debug")
- target_compile_options(AuseftDDSPlugTest PRIVATE -g)
- endif()
-
- # 在cmake_minimum_required之后添加
- set(CMAKE_VERBOSE_MAKEFILE ON)
- message(STATUS "CMAKE_BUILD_TYPE is: ${CMAKE_BUILD_TYPE}")
- message(STATUS "Build directory is: ${CMAKE_BINARY_DIR}")
-
- # 在文件末尾添加
- qt_finalize_executable(AuseftDDSPlugTest)
-
- target_include_directories(AuseftDDSPlugTest
- PRIVATE
- ${CMAKE_SOURCE_DIR}
- ${CMAKE_SOURCE_DIR}/plugins
- )
-
|