2026-03-10 17:56:36 +08:00
|
|
|
|
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
|
2026-03-11 14:35:51 +08:00
|
|
|
|
|
|
|
|
|
|
# api 接口
|
|
|
|
|
|
|
|
|
|
|
|
src/api/ipc_dbus/IpcDBus.h
|
|
|
|
|
|
src/api/ipc_dbus/IpcDBus.cpp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
target_include_directories(softbus_daemon
|
|
|
|
|
|
PRIVATE
|
|
|
|
|
|
${CMAKE_SOURCE_DIR}
|
2026-03-10 17:56:36 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
target_link_libraries(softbus_daemon
|
|
|
|
|
|
PRIVATE
|
|
|
|
|
|
Qt::Core
|
2026-03-11 14:35:51 +08:00
|
|
|
|
Qt6::DBus
|
|
|
|
|
|
Qt6::SerialPort
|
|
|
|
|
|
Qt6::Network
|
2026-03-10 17:56:36 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
add_subdirectory(plugins)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
install(TARGETS softbus_daemon
|
|
|
|
|
|
BUNDLE DESTINATION .
|
|
|
|
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
|
|
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
|
|
|
|
)
|