| # 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/fidl/args.gni") |
| import("//build/zircon/migrated_targets.gni") |
| |
| config("include") { |
| include_dirs = [ "include" ] |
| } |
| |
| wavl_tree_headers = [ |
| "include/lib/fidl/llcpp/internal/intrusive_container/node_utils.h", |
| "include/lib/fidl/llcpp/internal/intrusive_container/container_utils.h", |
| "include/lib/fidl/llcpp/internal/intrusive_container/pointer_traits.h", |
| "include/lib/fidl/llcpp/internal/intrusive_container/wavl_tree.h", |
| "include/lib/fidl/llcpp/internal/intrusive_container/wavl_tree_internal.h", |
| "include/lib/fidl/llcpp/internal/intrusive_container/helper_macros.h", |
| ] |
| |
| sdk_source_set("llcpp") { |
| # TODO(fxbug.dev/80525): Change this back to "partner" post API stability. |
| category = "experimental" |
| api = "fidl_cpp_wire.api" |
| sdk_name = "fidl_cpp_wire" |
| |
| # TODO(fxbug.dev/90775): We should represent the library as a |
| # `sdk_static_library` when supported. |
| build_as_static = true |
| |
| public = [ |
| "include/lib/fidl/llcpp/arena.h", |
| "include/lib/fidl/llcpp/array.h", |
| "include/lib/fidl/llcpp/coding_errors.h", |
| "include/lib/fidl/llcpp/envelope.h", |
| "include/lib/fidl/llcpp/internal/display_error.h", |
| "include/lib/fidl/llcpp/internal/transport.h", |
| "include/lib/fidl/llcpp/message_storage.h", |
| "include/lib/fidl/llcpp/object_view.h", |
| "include/lib/fidl/llcpp/soft_migration.h", |
| "include/lib/fidl/llcpp/string_view.h", |
| "include/lib/fidl/llcpp/traits.h", |
| "include/lib/fidl/llcpp/vector_view.h", |
| "include/lib/fidl/llcpp/wire_coding_traits.h", |
| "include/lib/fidl/llcpp/wire_decoder.h", |
| "include/lib/fidl/llcpp/wire_encoder.h", |
| "include/lib/fidl/llcpp/wire_types.h", |
| ] |
| if (is_fuchsia) { |
| public += [ |
| "include/lib/fidl/llcpp/async_binding.h", |
| "include/lib/fidl/llcpp/async_transaction.h", |
| "include/lib/fidl/llcpp/channel.h", |
| "include/lib/fidl/llcpp/client.h", |
| "include/lib/fidl/llcpp/client_base.h", |
| "include/lib/fidl/llcpp/connect_service.h", |
| "include/lib/fidl/llcpp/extract_resource_on_destruction.h", |
| "include/lib/fidl/llcpp/internal/arrow.h", |
| "include/lib/fidl/llcpp/internal/client_continuation.h", |
| "include/lib/fidl/llcpp/internal/client_details.h", |
| "include/lib/fidl/llcpp/internal/debug_thread_checker.h", |
| "include/lib/fidl/llcpp/internal/endpoints.h", |
| "include/lib/fidl/llcpp/internal/make_response_context.h", |
| "include/lib/fidl/llcpp/internal/server_details.h", |
| "include/lib/fidl/llcpp/internal/thenable.h", |
| "include/lib/fidl/llcpp/internal/thread_checker.h", |
| "include/lib/fidl/llcpp/message.h", |
| "include/lib/fidl/llcpp/server.h", |
| "include/lib/fidl/llcpp/service_handler_interface.h", |
| "include/lib/fidl/llcpp/status.h", |
| "include/lib/fidl/llcpp/sync_call.h", |
| "include/lib/fidl/llcpp/transaction.h", |
| "include/lib/fidl/llcpp/wire_coding_common.h", |
| "include/lib/fidl/llcpp/wire_messaging.h", |
| "include/lib/fidl/llcpp/wire_messaging_declarations.h", |
| ] |
| } |
| if (is_fuchsia) { |
| public += [ "include/lib/fidl/llcpp/internal/transport_channel.h" ] |
| } else { |
| public += [ "include/lib/fidl/llcpp/internal/transport_channel_host.h" ] |
| } |
| public += wavl_tree_headers |
| |
| private_headers = [ "include/lib/fidl/llcpp/internal/transport.h" ] |
| if (is_fuchsia) { |
| private_headers += [ |
| "include/lib/fidl/llcpp/internal/arrow.h", |
| "include/lib/fidl/llcpp/internal/client_continuation.h", |
| "include/lib/fidl/llcpp/internal/client_details.h", |
| "include/lib/fidl/llcpp/internal/debug_thread_checker.h", |
| "include/lib/fidl/llcpp/internal/endpoints.h", |
| "include/lib/fidl/llcpp/internal/make_response_context.h", |
| "include/lib/fidl/llcpp/internal/server_details.h", |
| "include/lib/fidl/llcpp/internal/thenable.h", |
| "include/lib/fidl/llcpp/internal/thread_checker.h", |
| ] |
| } |
| if (is_fuchsia) { |
| private_headers += [ "include/lib/fidl/llcpp/internal/transport_channel.h" ] |
| } else { |
| private_headers += |
| [ "include/lib/fidl/llcpp/internal/transport_channel_host.h" ] |
| } |
| private_headers += wavl_tree_headers |
| |
| sources = [ |
| "arena.cc", |
| "coding_errors.cc", |
| "display_error.cc", |
| "message.cc", |
| "message_storage.cc", |
| "status.cc", |
| "transport.cc", |
| "wire_coding_traits.cc", |
| "wire_decoder.cc", |
| "wire_encoder.cc", |
| ] |
| if (is_fuchsia) { |
| sources += [ |
| "async_binding.cc", |
| "async_transaction.cc", |
| "client_base.cc", |
| "client_details.cc", |
| "server.cc", |
| "thenable.cc", |
| "transaction.cc", |
| ] |
| } |
| if (is_fuchsia) { |
| sources += [ "transport_channel.cc" ] |
| } else { |
| sources += [ "transport_channel_host.cc" ] |
| } |
| |
| public_deps = [ |
| # <lib/fidl/llcpp/wire_messaging.h> has #include <lib/fit/function.h>. |
| "//sdk/lib/fit", |
| |
| # Syscall headers. |
| "//src/zircon/lib/zircon", |
| |
| # Various result-returning API uses #include <lib/zx/status.h>. |
| "//zircon/system/ulib/zxc", |
| |
| # <lib/fidl/llcpp/message.h> has #include <lib/fidl/cpp/transaction_header.h> |
| "//zircon/system/ulib/fidl:fidl_base", |
| ] |
| |
| if (is_fuchsia) { |
| public_deps += [ |
| # <lib/fidl/llcpp/async_binding.h> has #include <lib/async/dispatcher.h> |
| "//zircon/system/ulib/async", |
| |
| # <lib/fidl/llcpp/async_binding.h> has #include <lib/sync/completion.h> |
| "//zircon/system/ulib/sync", |
| |
| # <lib/fidl/llcpp/traits.h> has #include <lib/zx/object.h>. |
| "//zircon/system/ulib/zx", |
| ] |
| } |
| |
| if (is_fuchsia) { |
| deps = [ "//zircon/system/ulib/fidl" ] |
| } |
| |
| # TODO(fxbug.dev/101752): GN check fails without this condition. |
| if (zircon_toolchain != false) { |
| public_deps += [ "//zircon/system/public" ] |
| } |
| |
| public_configs = [ ":include" ] |
| } |