| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- # Database service - smartbotic-crm-database binary and storage library
- # Storage engine library
- add_library(smartbotic_database STATIC
- src/document.cpp
- src/collection.cpp
- src/collection_meta.cpp
- src/snapshot.cpp
- src/database.cpp
- src/config.cpp
- )
- target_include_directories(smartbotic_database
- PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
- $<INSTALL_INTERFACE:include>
- )
- target_compile_options(smartbotic_database PRIVATE ${SMARTBOTIC_CXX_WARNINGS})
- target_link_libraries(smartbotic_database
- PUBLIC
- smartbotic::common
- spdlog::spdlog
- nlohmann_json::nlohmann_json
- )
- add_library(smartbotic::database ALIAS smartbotic_database)
- # gRPC service library
- add_library(smartbotic_database_grpc STATIC
- src/grpc/proto_convert.cpp
- src/grpc/document_service.cpp
- src/grpc/collection_service.cpp
- src/grpc/query_service.cpp
- src/grpc/admin_service.cpp
- src/grpc/subscription_service.cpp
- src/grpc/server.cpp
- )
- target_include_directories(smartbotic_database_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_database_grpc PRIVATE ${SMARTBOTIC_GRPC_WARNINGS})
- target_link_libraries(smartbotic_database_grpc
- PUBLIC
- smartbotic::database
- smartbotic::proto
- spdlog::spdlog
- )
- add_library(smartbotic::database_grpc ALIAS smartbotic_database_grpc)
- # Database service executable
- add_executable(smartbotic-crm-database
- src/main.cpp
- )
- target_include_directories(smartbotic-crm-database
- PRIVATE
- ${CMAKE_CURRENT_SOURCE_DIR}/include
- )
- target_compile_options(smartbotic-crm-database PRIVATE ${SMARTBOTIC_GRPC_WARNINGS})
- target_link_libraries(smartbotic-crm-database
- PRIVATE
- smartbotic::database_grpc
- sodium
- )
|