| # Copyright 2022 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. |
| |
| import("//build/cpp/sdk_source_set.gni") |
| import("//build/zircon/migrated_targets.gni") |
| |
| config("include") { |
| include_dirs = [ "include" ] |
| } |
| |
| 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", |
| ] |
| |
| sdk_source_set("wire") { |
| category = "partner" |
| api = "fidl_cpp_wire.api" |
| sdk_name = "fidl_cpp_wire" |
| |
| # TODO(https://fxbug.dev/42172264): We should represent the library as a |
| # `sdk_static_library` when supported. |
| build_as_static = true |
| stable = true |
| |
| public = [ |
| "include/lib/fidl/cpp/wire/arena.h", |
| "include/lib/fidl/cpp/wire/array.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/internal/transport.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/string_view.h", |
| "include/lib/fidl/cpp/wire/traits.h", |
| "include/lib/fidl/cpp/wire/vector_view.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_types.h", |
| ] |
| if (is_fuchsia) { |
| public += [ |
| "include/lib/fidl/cpp/wire/async_binding.h", |
| "include/lib/fidl/cpp/wire/async_transaction.h", |
| "include/lib/fidl/cpp/wire/base_wire_result.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/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/framework_err.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/synchronization_checker.h", |
| "include/lib/fidl/cpp/wire/internal/thenable.h", |
| "include/lib/fidl/cpp/wire/message.h", |
| "include/lib/fidl/cpp/wire/server.h", |
| "include/lib/fidl/cpp/wire/service_handler.h", |
| "include/lib/fidl/cpp/wire/status.h", |
| "include/lib/fidl/cpp/wire/sync_call.h", |
| "include/lib/fidl/cpp/wire/transaction.h", |
| "include/lib/fidl/cpp/wire/unknown_interaction_handler.h", |
| "include/lib/fidl/cpp/wire/unknown_interactions.h", |
| "include/lib/fidl/cpp/wire/wire_coding_common.h", |
| "include/lib/fidl/cpp/wire/wire_messaging.h", |
| "include/lib/fidl/cpp/wire/wire_messaging_declarations.h", |
| ] |
| } |
| if (is_fuchsia) { |
| public += [ "include/lib/fidl/cpp/wire/internal/transport_channel.h" ] |
| } else { |
| public += [ "include/lib/fidl/cpp/wire/internal/transport_channel_host.h" ] |
| } |
| public += wavl_tree_headers |
| |
| sdk_headers_for_internal_use = |
| [ "include/lib/fidl/cpp/wire/internal/transport.h" ] |
| if (is_fuchsia) { |
| sdk_headers_for_internal_use += [ |
| "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", |
| ] |
| } |
| if (is_fuchsia) { |
| sdk_headers_for_internal_use += |
| [ "include/lib/fidl/cpp/wire/internal/transport_channel.h" ] |
| } else { |
| sdk_headers_for_internal_use += |
| [ "include/lib/fidl/cpp/wire/internal/transport_channel_host.h" ] |
| } |
| sdk_headers_for_internal_use += wavl_tree_headers |
| |
| sources = [ |
| "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", |
| ] |
| if (is_fuchsia) { |
| sources += [ |
| "async_binding.cc", |
| "async_transaction.cc", |
| "client_base.cc", |
| "client_details.cc", |
| "server.cc", |
| "thenable.cc", |
| "transaction.cc", |
| "unknown_interactions.cc", |
| ] |
| } |
| if (is_fuchsia) { |
| sources += [ "transport_channel.cc" ] |
| } else { |
| sources += [ "transport_channel_host.cc" ] |
| } |
| |
| deps = [ "//zircon/system/ulib/async:async-cpp" ] |
| |
| public_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", |
| |
| # 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", |
| ] |
| |
| if (is_fuchsia) { |
| public_deps += [ |
| # <lib/fidl/cpp/wire/async_binding.h> has #include <lib/async/dispatcher.h> |
| "//zircon/system/ulib/async", |
| |
| # <lib/fidl/cpp/wire/async_binding.h> has #include <lib/sync/completion.h> |
| "//zircon/system/ulib/sync", |
| |
| # <lib/fidl/cpp/wire/traits.h> has #include <lib/zx/object.h>. |
| "//zircon/system/ulib/zx", |
| |
| # <lib/fidl/cpp/wire/internal/transport_channel.h> has |
| # #include <lib/fidl/epitaph.h> |
| "//sdk/lib/fidl", |
| ] |
| } |
| |
| # TODO(https://fxbug.dev/42052612): GN check fails without this condition. |
| if (zircon_toolchain != false) { |
| public_deps += [ "//zircon/system/public" ] |
| } |
| |
| public_configs = [ ":include" ] |
| } |