| # 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("//extensions/buildflags/buildflags.gni") |
| import("//tools/json_schema_compiler/json_features.gni") |
| import("//tools/json_schema_compiler/json_schema_api.gni") |
| |
| assert(enable_extensions, |
| "Cannot depend on extensions because enable_extensions=false.") |
| |
| extensions_api_schema_include_rules = |
| "extensions/common/api:extensions::api::%(namespace)s" |
| |
| schema_sources = [ |
| # TODO(crbug/837773) De-dupe Automation later. |
| "accessibility_private.json", |
| "bookmarks.json", |
| "braille_display_private.idl", |
| "command_line_private.json", |
| "history.json", |
| "identity.idl", |
| "i18n.json", |
| "notifications.idl", |
| "settings_private.idl", |
| "tabs.json", |
| "windows.json", |
| ] |
| |
| root_namespace = "extensions::cast::api::%(namespace)s" |
| |
| extensions_api_uncompiled_sources = [ "extension.json" ] |
| |
| generated_json_strings("generated_api_json_strings") { |
| sources = schema_sources + extensions_api_uncompiled_sources + [ "tts.json" ] |
| bundle_name = "Cast" |
| schema_include_rules = extensions_api_schema_include_rules |
| |
| deps = [ |
| "//extensions/common/api", |
| ] |
| visibility = [ ":api" ] |
| } |
| |
| function_registration("generated_api_registration") { |
| sources = schema_sources |
| impl_dir = "//chromecast/browser/extensions/api" |
| bundle_name = "Cast" |
| |
| deps = [ |
| "//extensions/common", |
| "//extensions/common/api", |
| ] |
| visibility = [ ":api" ] |
| } |
| |
| generated_types("generated_api_types") { |
| sources = schema_sources |
| schema_include_rules = extensions_api_schema_include_rules |
| |
| deps = [ |
| "//extensions/common/api", |
| ] |
| visibility = [ ":api" ] |
| } |
| |
| json_features("cast_api_features") { |
| feature_type = "APIFeature" |
| method_name = "AddCastAPIFeatures" |
| sources = [ |
| "_api_features.json", |
| ] |
| } |
| |
| json_features("cast_permission_features") { |
| feature_type = "PermissionFeature" |
| method_name = "AddCastPermissionFeatures" |
| sources = [ |
| "_permission_features.json", |
| ] |
| } |
| |
| json_features("cast_manifest_features") { |
| feature_type = "ManifestFeature" |
| method_name = "AddCastManifestFeatures" |
| sources = [ |
| "_manifest_features.json", |
| ] |
| } |
| |
| # Public Targets |
| |
| group("api") { |
| public_deps = [ |
| ":generated_api_json_strings", |
| ":generated_api_registration", |
| ":generated_api_types", |
| ] |
| } |
| |
| group("extensions_features") { |
| public_deps = [ |
| ":cast_api_features", |
| ":cast_manifest_features", |
| ":cast_permission_features", |
| "//extensions/common/api:extensions_features", |
| ] |
| } |