blob: 9eb566f4ab992047858d9beb3f48e573e6085cab [file]
# 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"])