blob: 4c05cca56d6942421cacf6577848585ba4cbfffe [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/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" ]
}