cmake_minimum_required(VERSION 3.5) project(WeighUI VERSION 0.1 LANGUAGES CXX) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Multimedia) else() find_package(Qt5 REQUIRED COMPONENTS Multimedia) endif() # fastdds 路径(与称重系统主项目保持一致) set(fastcdr_DIR "/opt/fastdds/v3.2.2/lib/cmake/fastcdr") set(fastdds_DIR "/opt/fastdds/v3.2.2/share/fastdds/cmake") set(foonathan_memory_DIR "/opt/foonathan_memory/lib/foonathan_memory/cmake") find_package(fastcdr REQUIRED) find_package(fastdds 3 REQUIRED) set(PROJECT_SOURCES main.cpp weighui.cpp weighui.h weighui.ui dds/Subscriber.hpp dds/Subscriber.cxx dds/msg.hpp lib/WeighingDDSTypePubSubTypes.cxx lib/WeighingDDSTypeTypeObjectSupport.cxx ) if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) qt_add_executable(WeighUI MANUAL_FINALIZATION ${PROJECT_SOURCES} ) else() if(ANDROID) add_library(WeighUI SHARED ${PROJECT_SOURCES} ) else() add_executable(WeighUI ${PROJECT_SOURCES} ) endif() endif() target_include_directories(WeighUI PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/lib ${CMAKE_CURRENT_SOURCE_DIR}/dds ) target_link_libraries(WeighUI PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Multimedia fastcdr fastdds ) if(QT_VERSION_MAJOR EQUAL 6) qt_finalize_executable(WeighUI) endif()