BUILD.gn 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. # Copyright 2015 The Chromium Authors. All rights reserved.
  2. # Use of this source code is governed by a BSD-style license that can be
  3. # found in the LICENSE file.
  4. import("//electron/buildflags/buildflags.gni")
  5. import("//extensions/buildflags/buildflags.gni")
  6. import("//tools/json_schema_compiler/json_features.gni")
  7. import("//tools/json_schema_compiler/json_schema_api.gni")
  8. assert(enable_extensions)
  9. ################################################################################
  10. # Public Targets
  11. group("api") {
  12. public_deps = [
  13. ":generated_api_json_strings",
  14. ":generated_api_types",
  15. ]
  16. }
  17. group("extensions_features") {
  18. public_deps = [
  19. ":api_features",
  20. ":manifest_features",
  21. ":permission_features",
  22. # TODO(devlin): It would be nicer to have this dependency hoisted up to
  23. # //extensions/common (since that's where it's consumed), but there's some
  24. # cycles to be resolved first.
  25. "//extensions/common/api:extensions_features",
  26. ]
  27. }
  28. ################################################################################
  29. # Private Targets
  30. generated_json_strings("generated_api_json_strings") {
  31. sources = [
  32. "action.json",
  33. "browser_action.json",
  34. "extension.json",
  35. "resources_private.idl",
  36. "scripting.idl",
  37. "tabs.json",
  38. ]
  39. if (enable_pdf_viewer) {
  40. sources += [ "pdf_viewer_private.idl" ]
  41. }
  42. configs = [ "//build/config:precompiled_headers" ]
  43. bundle_name = "Electron"
  44. schema_include_rules = "extensions/common/api:extensions::api::%(namespace)s"
  45. root_namespace = "extensions::api::%(namespace)s"
  46. deps = [ "//extensions/common/api" ]
  47. visibility = [ ":api" ]
  48. }
  49. generated_types("generated_api_types") {
  50. sources = [
  51. "resources_private.idl",
  52. "scripting.idl",
  53. "tabs.json",
  54. ]
  55. if (enable_pdf_viewer) {
  56. sources += [ "pdf_viewer_private.idl" ]
  57. }
  58. configs = [ "//build/config:precompiled_headers" ]
  59. schema_include_rules = "extensions/common/api:extensions::api::%(namespace)s"
  60. root_namespace = "extensions::api::%(namespace)s"
  61. deps = [ "//extensions/common/api" ]
  62. visibility = [ ":api" ]
  63. }
  64. json_features("manifest_features") {
  65. feature_type = "ManifestFeature"
  66. method_name = "AddElectronManifestFeatures"
  67. sources = [ "_manifest_features.json" ]
  68. visibility = [ ":extensions_features" ]
  69. }
  70. json_features("api_features") {
  71. feature_type = "APIFeature"
  72. method_name = "AddElectronAPIFeatures"
  73. sources = [ "_api_features.json" ]
  74. visibility = [ ":extensions_features" ]
  75. }
  76. json_features("permission_features") {
  77. feature_type = "PermissionFeature"
  78. method_name = "AddElectronPermissionFeatures"
  79. sources = [ "_permission_features.json" ]
  80. visibility = [ ":extensions_features" ]
  81. }