blob: a75a4efb9a22e63b3ef6394e2b80a84eb071c39a [file] [log] [blame]
# Copyright 2018 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/components.gni")
import("//build/cpp/sdk_source_set.gni")
import("//build/fidl/fidl.gni")
import("//build/test.gni")
import("//sdk/ctf/build/ctf.gni")
import("//tools/fidl/gidl/gidl.gni")
# Limit visibility for the HLCPP bindings libraries:
hlcpp_visibility = [
"//build/sdk:*",
"//examples/components/routing/fidl:*",
"//examples/components/services/fidl:*",
"//examples/diagnostics/inspect/codelab/fidl:*",
"//examples/fidl/fuchsia.examples:*",
"//examples/intl/wisdom/fidl:*",
"//sdk:*",
"//sdk/ctf/tests/examples/fidl/fuchsia.examples/testing/fidl:*",
"//sdk/ctf/tests/fidl/fuchsia.element/testing/fidl:*",
"//sdk/ctf/tests/fidl/fuchsia.settings/testing/fidl:*",
"//sdk/ctf/tests/pkg/fidl/cpp:*",
"//sdk/ctf/tests/pkg/fidl/cpp:*",
"//sdk/fidl/*",
"//sdk/lib/component/tests:*",
"//sdk/lib/driver/power/cpp/testing:*",
"//sdk/lib/fidl/cpp/tests/hlcpp_conversion/fidl:*",
"//sdk/lib/fidl/hlcpp:*",
"//sdk/lib/fuzzing/cpp:*",
"//sdk/testing/fidl:*",
"//sdk/testing/fidl:*",
"//sdk/testing/fidl/protocols_tests:*",
"//sdk/testing/fidl/types_tests:*",
"//src/camera/bin/camera-gym/fidl:*",
"//src/camera/bin/device_watcher:*",
"//src/camera/bin/factory:*",
"//src/camera/bin/virtual_camera:*",
"//src/connectivity/bluetooth/lib/fidl:*",
"//src/connectivity/ethernet/drivers/asix-88179:*",
"//src/connectivity/network/testing/netemul/network-context/fidl:*",
"//src/connectivity/network/testing/netemul/sync-manager/fidl:*",
"//src/developer/forensics/exceptions/fidl:*",
"//src/developer/forensics/public/fakes:*",
"//src/diagnostics/validator/inspect/fidl:*",
"//src/diagnostics/validator/logs/fidl:*",
"//src/lib/fake-clock/fidl:*",
"//src/lib/fake-clock/named-timer:*",
"//src/lib/fidl_codec:*",
"//src/lib/fidl/c/coding_tables_tests:*",
"//src/lib/fidl/c/walker_tests:*",
"//src/lib/fostr:*",
"//src/lib/fostr/test/fuchsia.example.fostr:*",
"//src/lib/fostr/test/fuchsia.example.fostr2:*",
"//src/lib/fsl/types:*",
"//src/lib/intl/examples:*",
"//src/lib/intl/intl_property_provider_impl:*",
"//src/lib/intl/lookup/rust:*",
"//src/lib/ui/input-synthesis:*",
"//src/power/fidl/testing:*",
"//src/sys/component_manager/tests/structured_config/fidl:*",
"//src/sys/fuzzing/fidl:*",
"//src/sys/fuzzing/libfuzzer/testing:*",
"//src/sys/test_manager/fidl/fuchsia.test.debug:*",
"//src/testing/fidl:*",
"//src/tests/benchmarks/fidl/benchmark_suite:*",
"//src/tests/fidl/compatibility/fidl:*",
"//src/tests/fidl/conformance_suite:*",
"//src/tests/fidl/dangerous_identifiers:*",
"//src/tests/fidl/dynsuite/client_suite/fidl:*",
"//src/tests/fidl/dynsuite/server_suite/fidl:*",
"//src/tests/microbenchmarks:*",
"//src/ui/a11y/lib/screen_reader/i18n:*",
"//src/ui/a11y/lib/semantics/util:*",
"//src/ui/a11y/testing/fidl:*",
"//tools/fidl/measure-tape/testdata:*",
"//tools/fidl/fidlc/testdata/*",
"//vendor/*",
]
# The complete high-level C++ bindings library supporting both asynchronous
# and synchronous APIs.
sdk_source_set("hlcpp") {
category = "partner"
sdk_name = "fidl_cpp"
sources = [
"include/lib/fidl/cpp/binding.h",
"include/lib/fidl/cpp/binding_set.h",
"include/lib/fidl/cpp/event_sender.h",
"include/lib/fidl/cpp/interface_ptr.h",
"include/lib/fidl/cpp/interface_ptr_set.h",
"include/lib/fidl/cpp/internal/header.h",
"include/lib/fidl/cpp/internal/implementation.h",
"include/lib/fidl/cpp/internal/message_handler.h",
"include/lib/fidl/cpp/internal/message_reader.h",
"include/lib/fidl/cpp/internal/pending_response.h",
"include/lib/fidl/cpp/internal/proxy.h",
"include/lib/fidl/cpp/internal/proxy_controller.h",
"include/lib/fidl/cpp/internal/stub.h",
"include/lib/fidl/cpp/internal/stub_controller.h",
"include/lib/fidl/cpp/internal/unknown_interactions_table.h",
"include/lib/fidl/cpp/internal/weak_stub_controller.h",
"include/lib/fidl/cpp/member_connector.h",
"include/lib/fidl/cpp/service_connector.h",
"include/lib/fidl/cpp/service_handler_base.h",
"include/lib/fidl/cpp/type_converter.h",
"include/lib/fidl/cpp/unknown_interactions_hlcpp.h",
"internal/message_handler.cc",
"internal/message_reader.cc",
"internal/pending_response.cc",
"internal/proxy.cc",
"internal/proxy_controller.cc",
"internal/stub.cc",
"internal/stub_controller.cc",
"internal/unknown_interactions_table.c",
"internal/weak_stub_controller.cc",
"unknown_interactions_hlcpp.cc",
]
include_base = "//sdk/lib/fidl/hlcpp/include"
stable = true
public_deps = [
":hlcpp_sync",
"//sdk/lib/async",
"//sdk/lib/async-default",
"//sdk/lib/fidl",
"//sdk/lib/fit",
"//sdk/lib/fit-promise",
"//zircon/system/ulib/zx",
]
public_configs = [ "//sdk/config" ]
visibility = hlcpp_visibility
}
# The synchronous high-level C++ bindings library.
sdk_source_set("hlcpp_sync") {
category = "partner"
sdk_name = "fidl_cpp_sync"
stable = true
sources = [
"include/lib/fidl/cpp/internal/logging.h",
"include/lib/fidl/cpp/internal/message_sender.h",
"include/lib/fidl/cpp/internal/synchronous_proxy.h",
"include/lib/fidl/cpp/synchronous_interface_ptr.h",
"internal/logging.cc",
"internal/message_sender.cc",
"internal/synchronous_proxy.cc",
]
include_base = "//sdk/lib/fidl/hlcpp/include"
public_configs = [ "//sdk/config" ]
public_deps = [
":hlcpp_base",
"//sdk/lib/fidl",
"//sdk/lib/fit",
"//zircon/system/ulib/zx",
]
visibility = [
":*",
"//build/sdk:*",
"//src/tests/fidl/dynsuite/client_suite/*",
]
}
# The base library used to implement the natural domain-object types.
# It should not contain message dispatching functionality.
sdk_source_set("hlcpp_base") {
category = "partner"
sdk_name = "fidl_cpp_base"
stable = true
sources = [
"clone.cc",
"decoder.cc",
"encoder.cc",
"include/lib/fidl/cpp/clone.h",
"include/lib/fidl/cpp/coding_traits.h",
"include/lib/fidl/cpp/comparison.h",
"include/lib/fidl/cpp/decoder.h",
"include/lib/fidl/cpp/encoder.h",
"include/lib/fidl/cpp/enum.h",
"include/lib/fidl/cpp/internal/bitset.h",
"include/lib/fidl/cpp/internal/natural_types_header.h",
"include/lib/fidl/cpp/internal/natural_types_implementation.h",
"include/lib/fidl/cpp/message.h",
"include/lib/fidl/cpp/message_buffer.h",
"include/lib/fidl/cpp/message_part.h",
"include/lib/fidl/cpp/string.h",
"include/lib/fidl/cpp/traits.h",
"include/lib/fidl/cpp/types.h",
"include/lib/fidl/cpp/vector.h",
"message.cc",
"message_buffer.cc",
]
include_base = "//sdk/lib/fidl/hlcpp/include"
public_configs = [
"//sdk/config",
":config",
]
public_deps = [
"//sdk/lib/fidl_base",
"//sdk/lib/fit",
"//sdk/lib/fit-promise",
]
if (is_fuchsia) {
sources += [
"include/lib/fidl/cpp/interface_handle.h",
"include/lib/fidl/cpp/interface_request.h",
]
public_deps += [
"//sdk/lib/fidl",
"//zircon/system/ulib/zx",
]
}
visibility = [ ":*" ] + hlcpp_visibility
}
config("config") {
include_dirs = [ "include" ]
}