| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- # LLM service - smartbotic-crm-llm binary and core libraries
- # Core LLM library (config, providers, sessions, tools)
- add_library(smartbotic_llm STATIC
- src/config.cpp
- src/provider/provider_factory.cpp
- src/provider/openai_provider.cpp
- src/provider/anthropic_provider.cpp
- src/session/session.cpp
- src/session/database_session_store.cpp
- src/tool/tool_registry.cpp
- )
- target_include_directories(smartbotic_llm
- PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
- $<INSTALL_INTERFACE:include>
- )
- target_compile_options(smartbotic_llm PRIVATE ${SMARTBOTIC_CXX_WARNINGS})
- target_link_libraries(smartbotic_llm
- PUBLIC
- smartbotic::common
- smartbotic::proto
- spdlog::spdlog
- nlohmann_json::nlohmann_json
- httplib::httplib
- OpenSSL::SSL
- OpenSSL::Crypto
- )
- add_library(smartbotic::llm ALIAS smartbotic_llm)
- # gRPC service library
- add_library(smartbotic_llm_grpc STATIC
- src/grpc/proto_convert.cpp
- src/grpc/llm_service.cpp
- src/grpc/session_service.cpp
- src/grpc/model_service.cpp
- src/grpc/config_service.cpp
- src/grpc/server.cpp
- )
- target_include_directories(smartbotic_llm_grpc
- PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
- $<INSTALL_INTERFACE:include>
- )
- # Use relaxed warnings for gRPC targets (abseil uses __int128 which triggers -Wpedantic)
- set(SMARTBOTIC_GRPC_WARNINGS
- -Wall
- -Wextra
- -Werror
- -Wno-unused-parameter
- -Wno-dangling-reference
- -Wno-pedantic # Required for abseil __int128 support
- -Wno-overflow # Required for abseil hash_set.h
- )
- target_compile_options(smartbotic_llm_grpc PRIVATE ${SMARTBOTIC_GRPC_WARNINGS})
- target_link_libraries(smartbotic_llm_grpc
- PUBLIC
- smartbotic::llm
- smartbotic::proto
- spdlog::spdlog
- )
- add_library(smartbotic::llm_grpc ALIAS smartbotic_llm_grpc)
- # LLM service executable
- add_executable(smartbotic-crm-llm
- src/main.cpp
- )
- target_include_directories(smartbotic-crm-llm
- PRIVATE
- ${CMAKE_CURRENT_SOURCE_DIR}/include
- )
- target_compile_options(smartbotic-crm-llm PRIVATE ${SMARTBOTIC_GRPC_WARNINGS})
- target_link_libraries(smartbotic-crm-llm
- PRIVATE
- smartbotic::llm_grpc
- )
|