| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- cmake_minimum_required(VERSION 3.19)
- project(soft_bus LANGUAGES CXX)
- # 设置C++标准
- set(CMAKE_CXX_STANDARD 17)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
- set(CMAKE_AUTORCC ON)
- set(CMAKE_AUTOMOC ON)
- # 查找Qt6
- find_package(Qt6 6.5 REQUIRED COMPONENTS Core Widgets SerialPort Charts)
- find_package(Qt6 REQUIRED COMPONENTS Widgets)
- # 检测编译平台
- if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "4")
- set(PlatformDir "x86")
- else()
- set(PlatformDir "x64")
- endif()
- # 设置RocksDB路径
- SET(ROCKSDB_DIR "${PROJECT_SOURCE_DIR}/rocksdb")
- # 添加RocksDB构建目标
- add_custom_target(BUILD_ROCKSDB
- COMMAND make -j2 shared_lib -C ${ROCKSDB_DIR}
- COMMENT "Building RocksDB"
- WORKING_DIRECTORY ${ROCKSDB_DIR}
- )
- # 设置RocksDB包含目录
- include_directories(${ROCKSDB_DIR}/include)
- # 设置RocksDB库路径
- set(ROCKSDB_LIB_DIR "${ROCKSDB_DIR}")
- if(WIN32)
- set(ROCKSDB_LIB "${ROCKSDB_LIB_DIR}/rocksdb.lib")
- else()
- set(ROCKSDB_LIB "${ROCKSDB_LIB_DIR}/librocksdb.so")
- endif()
- # 设置ADS路径
- SET(ADS_DIR "${PROJECT_SOURCE_DIR}/advanced_dock_system")
- # 关键修改:添加ADS子目录
- add_subdirectory(${ADS_DIR}/src)
- # 添加Qt项目设置
- qt_standard_project_setup()
- # 添加可执行文件
- qt_add_executable(soft_bus
- WIN32 MACOSX_BUNDLE
- main.cpp
- src/soft_bus_core/soft_bus_core.cpp
- src/soft_bus_core/soft_bus_core.h
- src/serial_manager/serial_manager.h
- src/serial_manager/serial_manager.cpp
- mainwindow.h
- mainwindow.cpp
- src/bus_tree/bus_tree.h src/bus_tree/bus_tree.cpp src/bus_tree/bus_tree.ui
- src/toolbar/toolbar.h src/toolbar/toolbar.cpp
- resource.qrc
- src/view_core/viewcore.h src/view_core/viewcore.cpp src/view_core/viewcore.ui
- src/view_serial/viewserial.h src/view_serial/viewserial.cpp src/view_serial/viewserial.ui
- src/view_serial/serialtree.ui
- src/my_dock_manager/mdockmanager.cpp src/my_dock_manager/mdockmanager.h
- )
- # 添加对RocksDB构建的依赖
- add_dependencies(soft_bus BUILD_ROCKSDB)
- # 关键修改:链接ADS库(使用目标名称)
- if(Qt6_VERSION_MAJOR EQUAL 6)
- target_link_libraries(soft_bus PRIVATE ads::qtadvanceddocking-qt6)
- else()
- target_link_libraries(soft_bus PRIVATE ads::qtadvanceddocking-qt5)
- endif()
- # 链接其他库
- target_link_libraries(soft_bus
- PRIVATE
- Qt6::Core
- Qt6::Widgets
- Qt6::SerialPort
- Qt6::Charts
- ${ROCKSDB_LIB}
- )
- target_link_libraries(soft_bus PRIVATE Qt6::Widgets)
- # 添加包含路径
- target_include_directories(soft_bus PRIVATE
- ${ROCKSDB_DIR}/include
- ${PROJECT_SOURCE_DIR}/src
- ${ADS_DIR}/src # ADS头文件路径
- )
- # 安装配置
- include(GNUInstallDirs)
- install(TARGETS soft_bus
- BUNDLE DESTINATION .
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- )
- qt_generate_deploy_app_script(
- TARGET soft_bus
- OUTPUT_SCRIPT deploy_script
- NO_UNSUPPORTED_PLATFORM_ERROR
- )
- install(SCRIPT ${deploy_script})
-
|