cmake_minimum_required(VERSION 3.19) project(soft_bus_daemon LANGUAGES CXX VERSION 1.0.0 ) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g") # Output layout set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/plugins) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/plugins) # 启用AddressSanitizer(仅在非Windows平台上) if(NOT WIN32) set(SANITIZE_FLAGS "-fsanitize=address") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SANITIZE_FLAGS}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SANITIZE_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${SANITIZE_FLAGS}") else() message(STATUS "AddressSanitizer disabled on Windows because the runtime is unavailable in the MinGW kit.") endif() # 设置C++标准 set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOMOC ON) # 查找Qt6(守护进程只需要 Core/DBus/Network/SerialPort/Sql) find_package(Qt6 6.5 REQUIRED COMPONENTS Core SerialPort Network Sql DBus) # 检测编译平台 if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "4") set(PlatformDir "x86") else() set(PlatformDir "x64") endif() qt_standard_project_setup() # 添加软总线模板库 # 1. 日志库 qt_add_library(softbus_template src/utils/logs/logging.h src/utils/logs/LogStream.h ) qt_add_executable(softbus_daemon main.cpp src/core/CoreService.cpp ) target_link_libraries(softbus_daemon PRIVATE Qt::Core ) add_subdirectory(plugins) install(TARGETS softbus_daemon BUNDLE DESTINATION . RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )