# Copyright 2023 The Pigweed Authors # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy of # the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations under # the License. include($ENV{PW_ROOT}/pw_build/pigweed.cmake) include($ENV{PW_ROOT}/pw_protobuf_compiler/proto.cmake) pw_add_library(pw_rpc_transport.rpc_transport INTERFACE HEADERS public/pw_rpc_transport/rpc_transport.h PUBLIC_INCLUDES public PUBLIC_DEPS pw_bytes pw_function pw_status ) pw_add_library(pw_rpc_transport.service_registry INTERFACE HEADERS public/pw_rpc_transport/service_registry.h PUBLIC_INCLUDES public PUBLIC_DEPS pw_rpc_transport.rpc_transport pw_rpc.client_server pw_span pw_status ) pw_add_library(pw_rpc_transport.test_loopback_service_registry INTERFACE HEADERS public/pw_rpc_transport/test_loopback_service_registry.h PUBLIC_INCLUDES public PUBLIC_DEPS pw_rpc_transport.egress_ingress pw_rpc_transport.service_registry pw_work_queue pw_work_queue.test_thread ) pw_add_library(pw_rpc_transport.packet_buffer_queue INTERFACE HEADERS public/pw_rpc_transport/internal/packet_buffer_queue.h PUBLIC_INCLUDES public PUBLIC_DEPS pw_bytes pw_containers pw_result pw_status pw_sync.lock_annotations pw_sync.mutex ) pw_add_test(pw_rpc_transport.packet_buffer_queue_test SOURCES internal/packet_buffer_queue_test.cc PRIVATE_DEPS pw_rpc_transport.packet_buffer_queue pw_bytes pw_containers pw_result pw_status pw_sync.lock_annotations pw_sync.mutex GROUPS modules pw_rpc_transport ) pw_add_library(pw_rpc_transport.local_rpc_egress STATIC HEADERS public/pw_rpc_transport/local_rpc_egress.h SOURCES local_rpc_egress.cc PUBLIC_INCLUDES public PUBLIC_DEPS pw_rpc_transport.packet_buffer_queue pw_rpc_transport.rpc_transport pw_bytes pw_result pw_rpc.client pw_status pw_sync.thread_notification pw_thread.thread_core PRIVATE_DEPS pw_log ) pw_add_test(pw_rpc_transport.local_rpc_egress_test SOURCES local_rpc_egress_test.cc PRIVATE_DEPS pw_rpc_transport.local_rpc_egress pw_rpc_transport.rpc_transport pw_rpc_transport.service_registry pw_rpc_transport.test_protos.pwpb_rpc pw_bytes pw_chrono.system_clock pw_rpc.client_server pw_status pw_sync.counting_semaphore pw_sync.thread_notification pw_thread.sleep pw_thread.thread GROUPS modules pw_rpc_transport ) pw_add_library(pw_rpc_transport.hdlc_framing INTERFACE HEADERS public/pw_rpc_transport/hdlc_framing.h PUBLIC_INCLUDES public PUBLIC_DEPS pw_rpc_transport.rpc_transport pw_bytes pw_hdlc.decoder pw_hdlc.encoder pw_hdlc.default_addresses pw_result pw_status pw_stream ) pw_add_test(pw_rpc_transport.hdlc_framing_test SOURCES hdlc_framing_test.cc PRIVATE_DEPS pw_rpc_transport.hdlc_framing pw_bytes pw_status GROUPS modules pw_rpc_transport ) pw_add_library(pw_rpc_transport.simple_framing STATIC HEADERS public/pw_rpc_transport/simple_framing.h SOURCES simple_framing.cc PUBLIC_INCLUDES public PUBLIC_DEPS pw_rpc_transport.rpc_transport pw_assert pw_bytes pw_status PRIVATE_DEPS pw_log ) pw_add_test(pw_rpc_transport.simple_framing_test SOURCES simple_framing_test.cc PRIVATE_DEPS pw_rpc_transport.simple_framing pw_bytes pw_log pw_status GROUPS modules pw_rpc_transport ) pw_add_library(pw_rpc_transport.egress_ingress STATIC HEADERS public/pw_rpc_transport/egress_ingress.h SOURCES egress_ingress.cc PUBLIC_DEPS pw_rpc_transport.hdlc_framing pw_rpc_transport.simple_framing pw_bytes pw_metric pw_rpc.client pw_status pw_sync.mutex PRIVATE_DEPS pw_log ) pw_add_test(pw_rpc_transport.egress_ingress_test SOURCES egress_ingress_test.cc PRIVATE_DEPS pw_rpc_transport.egress_ingress pw_rpc_transport.service_registry pw_rpc_transport.test_protos.pwpb_rpc pw_bytes pw_metric pw_status pw_sync.thread_notification GROUPS modules pw_rpc_transport ) pw_proto_library(pw_rpc_transport.test_protos SOURCES internal/test.proto INPUTS internal/test.options PREFIX pw_rpc_transport )