load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
load("@yuanrong_functionsystem//bazel:yr.bzl", "COPTS")
# function_proxy_inc: include-provider for -Ifunctionsystem/src/function_proxy/
# and -Ifunctionsystem/src/
cc_library(
name = "function_proxy_inc",
includes = [
".",
"busproxy",
"common",
"common/flags",
"common/posix_client",
"common/posix_service",
"common/posix_auth_interceptor",
"common/exec_session",
"common/communication",
"common/data_view",
"common/observer",
"common/state_handler",
"common/state_machine",
"common/iam",
"common/distribute_cache_client",
"common/data_obj_client",
"common/rate_limiter",
"common/common_driver",
],
deps = ["//functionsystem/src:src_root_inc"],
visibility = ["//visibility:public"],
)
# function_proxy_base_lib — combined busproxy + function_proxy/common
# These two CMake libraries have deep mutual header includes (circular deps in Bazel terms),
# so they are merged into a single cc_library here.
cc_library(
name = "function_proxy_base_lib",
srcs = glob([
"busproxy/instance_proxy/**/*.cpp",
"busproxy/instance_view/**/*.cpp",
"busproxy/invocation_handler/**/*.cpp",
"busproxy/registry/**/*.cpp",
"busproxy/startup/**/*.cpp",
"busproxy/memory_monitor/**/*.cpp",
"common/flags/**/*.cpp",
"common/posix_client/**/*.cpp",
"common/posix_service/**/*.cpp",
"common/posix_auth_interceptor/**/*.cpp",
"common/exec_session/**/*.cpp",
"common/communication/**/*.cpp",
"common/data_view/**/*.cpp",
"common/observer/**/*.cpp",
"common/state_handler/**/*.cpp",
"common/state_machine/**/*.cpp",
"common/iam/**/*.cpp",
"common/distribute_cache_client/**/*.cpp",
"common/data_obj_client/**/*.cpp",
"common/rate_limiter/**/*.cpp",
"common/common_driver/**/*.cpp",
]),
hdrs = glob([
"busproxy/**/*.h",
"common/**/*.h",
"common/**/*.hpp",
]),
copts = COPTS + ["-fPIE"],
deps = [
":function_proxy_inc",
"@litebus//:litebus",
"@datasystem_sdk//:datasystem_sdk",
"//functionsystem/src/meta_store/client/cpp:meta_store_client",
"//functionsystem/src/common:meta_store_adapter",
"//functionsystem/src/common:utils",
"//functionsystem/src/common:metadata",
"//functionsystem/src/common:aksk",
"//functionsystem/src/common:service_json",
"//functionsystem/src/common:rpc",
"//functionsystem/src/common:common_flags",
"//functionsystem/src/common:resource_lock",
],
visibility = ["//visibility:public"],
)
# function_proxy binary — mirrors CMake's function_proxy executable
cc_binary(
name = "function_proxy",
srcs = ["main.cpp"],
copts = COPTS + ["-fPIE", "-fvisibility=hidden"],
linkopts = ["-pie"],
deps = [
":function_proxy_inc",
":function_proxy_base_lib",
"//functionsystem/src/function_proxy/local_scheduler:local_scheduler_lib",
"//functionsystem/src/common:utils",
"//functionsystem/src/common:resource_lock",
"//functionsystem/src/function_agent:function_agent_lib",
"//functionsystem/src/runtime_manager:runtime_manager_lib",
"//functionsystem/src/common:trace_adapter",
"//functionsystem/src/common:all_schedule_plugins",
"@litebus//:litebus",
"@logs_sdk//:logs_sdk",
"@securec//:securec",
"@com_google_protobuf//:protobuf",
"@com_github_grpc_grpc//:grpc++",
"@com_github_grpc_grpc//:gpr",
],
visibility = ["//visibility:public"],
)