# Copyright 2018 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("//electron/buildflags/buildflags.gni")
import("//extensions/buildflags/buildflags.gni")
import("//tools/json_schema_compiler/json_schema_api.gni")

assert(enable_extensions,
       "Cannot depend on extensions because enable_extensions=false.")

function_registration("api_registration") {
  sources = [
    "//electron/shell/common/extensions/api/action.json",
    "//electron/shell/common/extensions/api/extension.json",
    "//electron/shell/common/extensions/api/resources_private.idl",
    "//electron/shell/common/extensions/api/scripting.idl",
    "//electron/shell/common/extensions/api/tabs.json",
  ]

  if (enable_pdf_viewer) {
    sources +=
        [ "//electron/shell/common/extensions/api/pdf_viewer_private.idl" ]
  }

  impl_dir = "//electron/shell/browser/extensions/api"
  configs = [ "//build/config:precompiled_headers" ]
  bundle_name = "Electron"
  root_namespace = "extensions::api::%(namespace)s"
  schema_include_rules = "extensions/common/api:extensions::api::%(namespace)s"

  deps = [
    # Different APIs include headers from these targets.
    "//components/zoom",
    "//content/public/browser",
    "//extensions/browser",

    # Different APIs include some headers from chrome/common that in turn
    # include generated headers from these targets.
    # TODO(brettw) this should be made unnecessary if possible.
    "//electron/shell/common/extensions/api",
  ]
  deps += [ "//extensions/common/api" ]
}
