cmake_minimum_required(VERSION 3.19) project(soft_bus LANGUAGES CXX) # 设置C++标准 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 查找Qt6 find_package(Qt6 6.5 REQUIRED COMPONENTS Core Widgets SerialPort Charts) # 设置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() # 添加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.cpp mainwindow.h mainwindow.ui ) # 添加对RocksDB构建的依赖 add_dependencies(soft_bus BUILD_ROCKSDB) # 链接库 target_link_libraries(soft_bus PRIVATE Qt6::Core Qt6::Widgets Qt6::SerialPort Qt6::Charts ${ROCKSDB_LIB} ) # 添加RocksDB头文件包含路径 target_include_directories(soft_bus PRIVATE ${ROCKSDB_DIR}/include ${PROJECT_SOURCE_DIR}/src) # 安装配置 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})