chromium/components/fuchsia_component_support/BUILD.gn

# Copyright 2022 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

assert(is_fuchsia)

visibility = []

# Integration helpers for fuchsia.* FIDL APIs used by Fuchsia Components.
source_set("fuchsia_component_support") {
  # Only for use by Fuchsia Components.
  visibility += [
    ":unit_tests",
    "//chrome/browser",
    "//chromecast/internal/*",
    "//fuchsia_web/runners/*",
    "//fuchsia_web/webengine/*",
    "//fuchsia_web/webinstance_host/*",
  ]
  public = [
    "append_arguments_from_file.h",
    "config_reader.h",
    "feedback_registration.h",
    "inspect.h",
    "serialize_arguments.h",
  ]
  sources = [
    "append_arguments_from_file.cc",
    "config_reader.cc",
    "feedback_registration.cc",
    "inspect.cc",
    "serialize_arguments.cc",
  ]
  public_deps = [
    "//base",
    "//third_party/abseil-cpp:absl",
  ]
  deps = [
    "//build:branding_buildflags",
    "//components/version_info",
    "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.feedback:fuchsia.feedback_hlcpp",
    "//third_party/fuchsia-sdk/sdk/pkg/fidl_cpp_base",
    "//third_party/fuchsia-sdk/sdk/pkg/inspect_component_cpp",
    "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp",
  ]
}

source_set("annotations_manager") {
  visibility = [ "*" ]
  public = [ "annotations_manager.h" ]
  sources = [ "annotations_manager.cc" ]
  public_deps = [
    "//base",
    "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.element:fuchsia.element_hlcpp",
    "//third_party/fuchsia-sdk/sdk/pkg/fidl_cpp",
  ]
}

# Integration helper for components which host child components.
source_set("dynamic_component_host") {
  visibility = [ "*" ]

  sources = [
    "dynamic_component_host.cc",
    "dynamic_component_host.h",
  ]

  deps = [
    "//base",
    "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.io:fuchsia.io_hlcpp",
    "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp",
    "//third_party/fuchsia-sdk/sdk/pkg/vfs_cpp",
  ]

  public_deps = [ "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.component:fuchsia.component_hlcpp" ]
}

source_set("test_support") {
  testonly = true

  # Only for use by Fuchsia Components.
  visibility += [
    ":unit_tests",
    "//fuchsia_web/*",
  ]
  public = [ "mock_realm.h" ]
  sources = [ "mock_realm.cc" ]
  public_deps = [
    "//base",
    "//testing/gmock",
    "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.component",
  ]
  deps = [ "//testing/gtest" ]
}

source_set("unit_tests") {
  testonly = true
  visibility += [ "//components:components_unittests__exec" ]
  sources = [
    "annotations_manager_unittest.cc",
    "config_reader_unittest.cc",
    "dynamic_component_host_unittest.cc",
    "inspect_unittest.cc",
  ]
  deps = [
    ":annotations_manager",
    ":dynamic_component_host",
    ":fuchsia_component_support",
    ":test_support",
    "//base",
    "//base/test:test_support",
    "//components/version_info",
    "//testing/gtest",
    "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.component:fuchsia.component_hlcpp",
    "//third_party/fuchsia-sdk/sdk/pkg/fdio",
    "//third_party/fuchsia-sdk/sdk/pkg/inspect_component_cpp",
    "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp",
  ]
}