| # Copyright 2025 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| load("//build/bazel/rules/idk:idk_cc_source_library.bzl", "idk_cc_source_library") |
| |
| wavl_tree_headers = [ |
| "include/lib/fidl/cpp/wire/internal/intrusive_container/node_utils.h", |
| "include/lib/fidl/cpp/wire/internal/intrusive_container/container_utils.h", |
| "include/lib/fidl/cpp/wire/internal/intrusive_container/pointer_traits.h", |
| "include/lib/fidl/cpp/wire/internal/intrusive_container/wavl_tree.h", |
| "include/lib/fidl/cpp/wire/internal/intrusive_container/wavl_tree_internal.h", |
| "include/lib/fidl/cpp/wire/internal/intrusive_container/helper_macros.h", |
| ] |
| |
| # buildifier: leave-alone - Do not sort `fuchsia_*` and `non_fuchsia_*`. |
| idk_cc_source_library( |
| name = "wire", |
| srcs = [ |
| "arena.cc", |
| "coding_errors.cc", |
| "display_error.cc", |
| "incoming_message.cc", |
| "message.cc", |
| "message_storage.cc", |
| "outgoing_message.cc", |
| "status.cc", |
| "transport.cc", |
| "wire_coding_traits.cc", |
| "wire_decoder.cc", |
| "wire_encoder.cc", |
| "wire_messaging.cc", |
| "wire_types.cc", |
| ] + select({ |
| "@platforms//os:fuchsia": [ |
| "async_binding.cc", |
| "async_transaction.cc", |
| "client_base.cc", |
| "client_details.cc", |
| "server.cc", |
| "thenable.cc", |
| "transaction.cc", |
| "unknown_interactions.cc", |
| "transport_channel.cc", |
| ], |
| "//conditions:default": [ |
| "transport_channel_host.cc", |
| ], |
| }), |
| hdrs = [ |
| "include/lib/fidl/cpp/wire/arena.h", |
| "include/lib/fidl/cpp/wire/array.h", |
| "include/lib/fidl/cpp/wire/base_wire_result.h", |
| "include/lib/fidl/cpp/wire/coding_errors.h", |
| "include/lib/fidl/cpp/wire/decoded_value.h", |
| "include/lib/fidl/cpp/wire/envelope.h", |
| "include/lib/fidl/cpp/wire/incoming_message.h", |
| "include/lib/fidl/cpp/wire/internal/coding_config.h", |
| "include/lib/fidl/cpp/wire/internal/display_error.h", |
| "include/lib/fidl/cpp/wire/message.h", |
| "include/lib/fidl/cpp/wire/message_storage.h", |
| "include/lib/fidl/cpp/wire/object_view.h", |
| "include/lib/fidl/cpp/wire/optional.h", |
| "include/lib/fidl/cpp/wire/outgoing_message.h", |
| "include/lib/fidl/cpp/wire/service_handler.h", |
| "include/lib/fidl/cpp/wire/status.h", |
| "include/lib/fidl/cpp/wire/string_view.h", |
| "include/lib/fidl/cpp/wire/traits.h", |
| "include/lib/fidl/cpp/wire/transaction.h", |
| "include/lib/fidl/cpp/wire/unknown_interactions.h", |
| "include/lib/fidl/cpp/wire/vector_view.h", |
| "include/lib/fidl/cpp/wire/wire_coding_common.h", |
| "include/lib/fidl/cpp/wire/wire_coding_traits.h", |
| "include/lib/fidl/cpp/wire/wire_decoder.h", |
| "include/lib/fidl/cpp/wire/wire_encoder.h", |
| "include/lib/fidl/cpp/wire/wire_messaging.h", |
| "include/lib/fidl/cpp/wire/wire_messaging_declarations.h", |
| "include/lib/fidl/cpp/wire/wire_types.h", |
| ] + select({ |
| "@platforms//os:fuchsia": [ |
| "include/lib/fidl/cpp/wire/async_binding.h", |
| "include/lib/fidl/cpp/wire/async_transaction.h", |
| "include/lib/fidl/cpp/wire/channel.h", |
| "include/lib/fidl/cpp/wire/client.h", |
| "include/lib/fidl/cpp/wire/client_base.h", |
| "include/lib/fidl/cpp/wire/connect_service.h", |
| "include/lib/fidl/cpp/wire/extract_resource_on_destruction.h", |
| "include/lib/fidl/cpp/wire/server.h", |
| "include/lib/fidl/cpp/wire/sync_call.h", |
| "include/lib/fidl/cpp/wire/unknown_interaction_handler.h", |
| ], |
| "//conditions:default": [], |
| }), |
| hdrs_for_internal_use = [ |
| "include/lib/fidl/cpp/wire/internal/transport.h", |
| "include/lib/fidl/cpp/wire/internal/framework_err.h", |
| ] + wavl_tree_headers + select({ |
| "@platforms//os:fuchsia": [ |
| "include/lib/fidl/cpp/wire/internal/arrow.h", |
| "include/lib/fidl/cpp/wire/internal/client_continuation.h", |
| "include/lib/fidl/cpp/wire/internal/client_details.h", |
| "include/lib/fidl/cpp/wire/internal/endpoints.h", |
| "include/lib/fidl/cpp/wire/internal/make_response_context.h", |
| "include/lib/fidl/cpp/wire/internal/server_details.h", |
| "include/lib/fidl/cpp/wire/internal/thenable.h", |
| "include/lib/fidl/cpp/wire/internal/synchronization_checker.h", |
| "include/lib/fidl/cpp/wire/internal/transport_channel.h", |
| ], |
| "//conditions:default": [ |
| "include/lib/fidl/cpp/wire/internal/transport_channel_host.h", |
| ], |
| }), |
| api_area = "FIDL", |
| build_as_static = True, |
| category = "partner", |
| deps = [ |
| # <lib/fidl/cpp/wire/wire_messaging.h> has #include <lib/fit/function.h>. |
| "//sdk/lib/fit", |
| |
| # Validating UTF-8 strings. |
| "//sdk/lib/utf-utils", |
| |
| # Various headers include <zircon/assert.h>. |
| "//sdk/lib/zircon-assert", |
| |
| # Syscall headers. |
| "//src/zircon/lib/zircon", |
| |
| # Various result-returning API uses #include <lib/zx/result.h>. |
| "//zircon/system/ulib/zx", |
| |
| # <lib/fidl/cpp/wire/message.h> has #include <lib/fidl/cpp/transaction_header.h> |
| "//sdk/lib/fidl_base", |
| ], |
| fuchsia_deps = [ |
| # synchronization_checker.h has #include <lib/async/cpp/sequence_checker.h> |
| "//sdk/lib/async:async-cpp", |
| |
| # <lib/fidl/cpp/wire/async_binding.h> has #include <lib/async/dispatcher.h> |
| "//sdk/lib/async", |
| |
| # <lib/fidl/cpp/wire/async_binding.h> has #include <lib/sync/completion.h> |
| "//zircon/system/ulib/sync", |
| |
| # <lib/fidl/cpp/wire/internal/transport_channel.h> has |
| # #include <lib/fidl/epitaph.h> |
| "//sdk/lib/fidl", |
| ], |
| non_fuchsia_deps = ["//zircon/system/public"], |
| idk_name = "fidl_cpp_wire", |
| stable = True, |
| # In Bazel, the library must be visible to the package containing the symbolic macro. |
| # In GN, the library must be visible to any path that defines a `fidl()` target. |
| visibility = [ |
| "//build/bazel/rules/fidl:__subpackages__", |
| "//sdk/lib/fidl/cpp:__subpackages__", |
| ], # @bazel2gn:raw_overwrite:[ "//*" ] |
| public_configs = [":include"], # For bazel2gn. |
| ) |
| |
| package(default_applicable_licenses = ["//:license"]) |