| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- # Runner service - smartbotic-crm-runner binary with JavaScript templating engine
- # QuickJS for JavaScript execution (using quickjs-ng maintained fork)
- FetchContent_Declare(
- quickjs
- GIT_REPOSITORY https://github.com/quickjs-ng/quickjs.git
- GIT_TAG v0.11.0
- )
- message(STATUS "Fetching QuickJS...")
- FetchContent_MakeAvailable(quickjs)
- # Core runner library (config, JS engine, template parser)
- add_library(smartbotic_runner STATIC
- src/config.cpp
- src/js_engine.cpp
- src/js_api.cpp
- src/template_parser.cpp
- )
- target_include_directories(smartbotic_runner
- PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
- $<INSTALL_INTERFACE:include>
- )
- target_compile_options(smartbotic_runner PRIVATE ${SMARTBOTIC_CXX_WARNINGS})
- target_link_libraries(smartbotic_runner
- PUBLIC
- smartbotic::common
- smartbotic::proto
- spdlog::spdlog
- nlohmann_json::nlohmann_json
- qjs
- )
- add_library(smartbotic::runner ALIAS smartbotic_runner)
- # gRPC service library
- add_library(smartbotic_runner_grpc STATIC
- src/grpc/server.cpp
- src/grpc/template_service.cpp
- src/grpc/script_service.cpp
- src/grpc/health_service.cpp
- )
- target_include_directories(smartbotic_runner_grpc
- PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
- $<INSTALL_INTERFACE:include>
- )
- # Use relaxed warnings for gRPC targets
- set(SMARTBOTIC_RUNNER_GRPC_WARNINGS
- -Wall
- -Wextra
- -Werror
- -Wno-unused-parameter
- -Wno-dangling-reference
- -Wno-pedantic
- -Wno-overflow
- )
- target_compile_options(smartbotic_runner_grpc PRIVATE ${SMARTBOTIC_RUNNER_GRPC_WARNINGS})
- target_link_libraries(smartbotic_runner_grpc
- PUBLIC
- smartbotic::runner
- smartbotic::proto
- spdlog::spdlog
- )
- add_library(smartbotic::runner_grpc ALIAS smartbotic_runner_grpc)
- # Runner service executable
- add_executable(smartbotic-crm-runner
- src/main.cpp
- )
- target_include_directories(smartbotic-crm-runner
- PRIVATE
- ${CMAKE_CURRENT_SOURCE_DIR}/include
- )
- target_compile_options(smartbotic-crm-runner PRIVATE ${SMARTBOTIC_RUNNER_GRPC_WARNINGS})
- target_link_libraries(smartbotic-crm-runner
- PRIVATE
- smartbotic::runner_grpc
- )
|