project(function_proxy)
message(STATUS "Begin to configure function_proxy")
set_property(GLOBAL PROPERTY SRC_FUNCTION_PROXY_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}")
include_directories(${CMAKE_CURRENT_LIST_DIR})
include_directories(${CMAKE_CURRENT_LIST_DIR}/busproxy)
include_directories(${CMAKE_CURRENT_LIST_DIR}/local_scheduler)
add_subdirectory(busproxy)
add_subdirectory(local_scheduler)
add_subdirectory(common)
target_precompile_headers(local_scheduler_lib PRIVATE
<actor/actor.hpp>
<async/future.hpp>
<async/async.hpp>
<async/asyncafter.hpp>
<async/collect.hpp>
<async/defer.hpp>
<async/option.hpp>
<nlohmann/json.hpp>
<memory>
<string>
<unordered_map>
<unordered_set>
<functional>
<vector>
<chrono>
)
add_executable(function_proxy main.cpp)
target_compile_options(function_proxy PRIVATE -fPIE)
target_compile_options(function_proxy PRIVATE "-fvisibility=hidden")
get_property(PLUGIN_LIB GLOBAL PROPERTY "PLUGIN_LIB")
target_link_libraries(function_proxy PRIVATE
${crypto_LIB} ${ssl_LIB}
${protobuf_LIB} ${grpcpp_LIB} ${gpr_LIB}
${litebus_ALL_LIB}
busproxy_lib local_scheduler_lib
function_proxy_common_lib utils
resource_lock
${PLUGIN_LIB}
function_agent_lib
runtime_manager_lib
trace_adapter)
add_dependencies(function_proxy function_agent_lib runtime_manager_lib trace_adapter)
INSTALL_TARGET(function_proxy)