# Copyright 2016 The Chromium 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("//extensions/common/api/schema.gni")
import("//tools/json_schema_compiler/json_schema_api.gni")

source_set("api") {
  sources = [
    "api_resource.cc",
    "api_resource.h",
    "api_resource_manager.h",
    "async_api_function.cc",
    "async_api_function.h",
    "device_permissions_manager.cc",
    "device_permissions_manager.h",
    "device_permissions_prompt.cc",
    "device_permissions_prompt.h",
    "execute_code_function.cc",
    "execute_code_function.h",
    "extensions_api_client.cc",
    "extensions_api_client.h",
    "web_contents_capture_client.cc",
    "web_contents_capture_client.h",
  ]

  public_deps = [
    "//extensions/browser/api/activity_log",
    "//extensions/browser/api/alarms",
    "//extensions/browser/api/app_current_window_internal",
    "//extensions/browser/api/app_runtime",
    "//extensions/browser/api/app_window",
    "//extensions/browser/api/audio",
    "//extensions/browser/api/bluetooth",
    "//extensions/browser/api/bluetooth_low_energy",
    "//extensions/browser/api/bluetooth_socket",
    "//extensions/browser/api/cast_channel",
    "//extensions/browser/api/clipboard",
    "//extensions/browser/api/declarative",
    "//extensions/browser/api/declarative_content",
    "//extensions/browser/api/declarative_webrequest",
    "//extensions/browser/api/display_source",
    "//extensions/browser/api/dns",
    "//extensions/browser/api/document_scan",
    "//extensions/browser/api/guest_view",
    "//extensions/browser/api/guest_view/app_view",
    "//extensions/browser/api/guest_view/extension_view",
    "//extensions/browser/api/guest_view/web_view",
    "//extensions/browser/api/hid",
    "//extensions/browser/api/idle",
    "//extensions/browser/api/management",
    "//extensions/browser/api/messaging",
    "//extensions/browser/api/metrics_private",
    "//extensions/browser/api/mime_handler_private",
    "//extensions/browser/api/networking_private",
    "//extensions/browser/api/power",
    "//extensions/browser/api/printer_provider",
    "//extensions/browser/api/printer_provider_internal",
    "//extensions/browser/api/runtime",
    "//extensions/browser/api/serial",
    "//extensions/browser/api/socket",
    "//extensions/browser/api/sockets_tcp",
    "//extensions/browser/api/sockets_tcp_server",
    "//extensions/browser/api/sockets_udp",
    "//extensions/browser/api/storage",
    "//extensions/browser/api/system_cpu",
    "//extensions/browser/api/system_display",
    "//extensions/browser/api/system_info",
    "//extensions/browser/api/system_memory",
    "//extensions/browser/api/system_network",
    "//extensions/browser/api/system_storage",
    "//extensions/browser/api/test",
    "//extensions/browser/api/usb",
    "//extensions/browser/api/virtual_keyboard_private",
    "//extensions/browser/api/web_request",
  ]

  deps = [
    "//base:i18n",
    "//content/public/browser",
    "//extensions/strings",
  ]

  if (is_chromeos) {
    public_deps += [
      "//extensions/browser/api/diagnostics",
      "//extensions/browser/api/networking_config",
      "//extensions/browser/api/vpn_provider",
      "//extensions/browser/api/webcam_private",
    ]
  }
}

json_schema_api("api_registration") {
  sources = extensions_api_schema_files
  impl_dir = "//extensions/browser/api"
  bundle_registration = true
  bundle_name = ""
  root_namespace = extensions_api_root_namespace
  uncompiled_sources = extensions_api_uncompiled_sources

  deps = [
    ":api",
    "//device/serial",
    "//extensions/common/api",
    "//extensions/common/api/cast_channel:cast_channel_proto",
    "//skia",
  ]
}
