- Implemented the OpenAI-compatible AI provider plugin, including configuration, chat, and chat_stream functionalities. - Added support for SSE streaming and tool calls. - Integrated Boost.JSON for JSON handling. - Created CMake configuration for the plugin. - Added error handling and logging throughout the plugin.
52 lines
1.2 KiB
CMake
52 lines
1.2 KiB
CMake
# ============================================================
|
|
# dstalk_core — 核心 DLL (插件宿主)
|
|
# 包含: 插件管理 / 服务注册 / 事件总线 / 配置存储
|
|
# ============================================================
|
|
|
|
find_package(Boost REQUIRED CONFIG)
|
|
find_package(OpenSSL REQUIRED CONFIG)
|
|
|
|
# 统一的 Boost 编译宏 (header-only 模式)
|
|
add_library(dstalk_boost_config INTERFACE)
|
|
target_compile_definitions(dstalk_boost_config INTERFACE
|
|
BOOST_ALL_NO_LIB
|
|
BOOST_ERROR_CODE_HEADER_ONLY
|
|
BOOST_JSON_HEADER_ONLY
|
|
)
|
|
|
|
add_library(dstalk SHARED
|
|
src/host.cpp
|
|
src/config_store.cpp
|
|
src/event_bus.cpp
|
|
src/service_registry.cpp
|
|
src/plugin_loader.cpp
|
|
src/boost_json.cpp
|
|
)
|
|
|
|
target_include_directories(dstalk
|
|
PUBLIC include
|
|
PRIVATE src
|
|
)
|
|
|
|
target_compile_features(dstalk PUBLIC cxx_std_20)
|
|
|
|
target_link_libraries(dstalk
|
|
PRIVATE
|
|
dstalk_boost_config
|
|
boost::boost
|
|
openssl::openssl
|
|
)
|
|
|
|
# dlopen / dlclose / dlsym on Linux and macOS
|
|
if(NOT WIN32)
|
|
target_link_libraries(dstalk PRIVATE ${CMAKE_DL_LIBS})
|
|
endif()
|
|
|
|
# 导出 DLL 符号宏
|
|
target_compile_definitions(dstalk
|
|
PRIVATE
|
|
DSTALK_BUILD_DLL
|
|
INTERFACE
|
|
DSTALK_USE_DLL
|
|
)
|