# 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 }