| # 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("//build/json_schema.gni") |
| |
| gypi_values = exec_script( |
| "//build/gypi_to_gn.py", |
| [ rebase_path("api.gyp") ], |
| "scope", |
| [ "api.gyp" ]) |
| |
| # GYP version: chrome/common/extensions/api/api.gyp:chrome_api |
| group("api") { |
| # The GYP version has one target that does both the bundling and compiling |
| # over the same set of sources. In GN these actions are separate. |
| deps = [ |
| ":api_bundle", |
| ":api_compile", |
| ] |
| } |
| |
| # Common sources that are both bundled and compiled. |
| if (is_android) { |
| # Should be eliminated. See crbug.com/305852. |
| schema_sources = gypi_values.android_schema_files |
| } else { |
| schema_sources = gypi_values.main_schema_files |
| if (is_chromeos) { |
| schema_sources += gypi_values.chromeos_schema_files |
| if (is_chrome_branded) { |
| schema_sources += gypi_values.chromeos_branded_schema_files |
| } |
| } |
| if (enable_webrtc) { |
| schema_sources += gypi_values.webrtc_schema_files |
| } |
| } |
| |
| schema_deps = [ |
| # Different APIs include some headers crom chrome/common that in turn |
| # include generated headers from these targets. |
| # TODO(brettw) this should be made unnecessary if possible. |
| "//components/metrics/proto", |
| "//device/serial", |
| |
| "//content/public/browser", |
| "//skia", |
| "//sync", |
| ] |
| if (is_chromeos) { |
| # deps += [ "<(DEPTH)/chrome/chrome.gyp:drive_proto" ] TODO)GYP) |
| } |
| |
| json_schema_bundle("api_bundle") { |
| visibility = ":api" |
| sources = schema_sources |
| if (!is_android) { |
| sources += gypi_values.main_non_compiled_schema_files |
| } |
| |
| root_namespace = "extensions::api" |
| deps = schema_deps + [ ":api_compile" ] |
| |
| } |
| |
| json_schema_compile("api_compile") { |
| visibility = ":*" |
| sources = schema_sources |
| root_namespace = "extensions::api" |
| deps = schema_deps |
| } |