# 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 src/automation_api.cpp ) target_include_directories(smartbotic_runner PUBLIC $ $ ) 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 $ $ ) # 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 )