blob: 62248d2c86b3b8ef1e546854fbb2c218cba3bd12 [file] [log] [blame]
# 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" ]
}