# Copyright 2014 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("//build/config/features.gni") import("//extensions/common/api/schema.gni") import("//extensions/buildflags/buildflags.gni") import("//mojo/public/tools/bindings/mojom.gni") import("//tools/json_schema_compiler/json_features.gni") import("//tools/json_schema_compiler/json_schema_api.gni") assert(enable_extensions) # TODO(devlin): Enforce visibility restrictions on more of these targets? generated_json_strings("generated_api_json_strings") { sources = extensions_api_schema_files + extensions_api_uncompiled_sources + extensions_api_uncompiled_bundle_schema_sources bundle_name = "" root_namespace = extensions_api_root_namespace deps = [ "//base", "//extensions/buildflags", ] visibility = [ ":api" ] } generated_types("generated_api_types") { sources = extensions_api_schema_files root_namespace = extensions_api_root_namespace deps = [ "//base", "//extensions/buildflags", ] visibility = [ ":api" ] } mojom("mojom") { sources = [ "mime_handler.mojom", ] } json_features("api_features") { feature_type = "APIFeature" method_name = "AddCoreAPIFeatures" sources = [ "_api_features.json", ] } json_features("permission_features") { feature_type = "PermissionFeature" method_name = "AddCorePermissionFeatures" sources = [ "_permission_features.json", ] } json_features("manifest_features") { feature_type = "ManifestFeature" method_name = "AddCoreManifestFeatures" sources = [ "_manifest_features.json", ] } json_features("behavior_features") { feature_type = "BehaviorFeature" method_name = "AddCoreBehaviorFeatures" sources = [ "_behavior_features.json", ] } # Public Targets group("api") { public_deps = [ ":generated_api_json_strings", ":generated_api_types", ":mojom", "//extensions/buildflags", ] } group("extensions_features") { public_deps = [ ":api_features", ":behavior_features", ":manifest_features", ":permission_features", ] }