# 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("//tools/grit/grit_rule.gni")
import("//third_party/brotli/brotli.gni")
import("//third_party/inspector_protocol/inspector_protocol.gni")

group("resources") {
  if (!is_android) {
    public_deps = [
      ":devtools_resources",
    ]
  }
}

compressed_protocol_file =
    "$root_gen_dir/third_party/blink/renderer/core/inspector/protocol.json.bro"

compress_file_brotli("compressed_protocol_json") {
  input_file =
      "$root_gen_dir/third_party/blink/renderer/core/inspector/protocol.json"
  output_file = compressed_protocol_file
  deps = [
    "//third_party/blink/renderer/core/inspector:protocol_version",
  ]
}

grit("devtools_resources") {
  source = "$root_gen_dir/devtools/devtools_resources.grd"
  source_is_generated = true

  outputs = [
    "grit/devtools_resources.h",
    "devtools_resources.pak",
    "grit/devtools_resources_map.cc",
    "grit/devtools_resources_map.h",
  ]

  grit_flags = [
    "-E",
    "compressed_protocol_file=" +
        rebase_path(compressed_protocol_file, root_build_dir),
  ]

  defines =
      [ "SHARED_INTERMEDIATE_DIR=" + rebase_path(root_gen_dir, root_build_dir) ]

  deps = [
    ":compressed_protocol_json",

    # This is the action that generates out .grd input file.
    "//third_party/blink/public:blink_generate_devtools_grd",
  ]
}

inspector_protocol_generate("protocol_sources") {
  visibility = [ "//content/browser" ]
  deps = [
    "//third_party/blink/renderer/core/inspector:protocol_version",
  ]
  _blink_protocol_path = rebase_path(
          "$root_gen_dir/third_party/blink/renderer/core/inspector/protocol.json",
          root_build_dir)

  inspector_protocol_dir = "//third_party/inspector_protocol"
  out_dir = target_gen_dir
  config_file = "protocol_config.json"
  config_values = [ "protocol.path=$_blink_protocol_path" ]

  inputs = [
    "$root_gen_dir/third_party/blink/renderer/core/inspector/protocol.json",
    config_file,
  ]

  # These are relative to $target_gen_dir.
  outputs = [
    "protocol/browser.cc",
    "protocol/browser.h",
    "protocol/dom.cc",
    "protocol/dom.h",
    "protocol/emulation.cc",
    "protocol/emulation.h",
    "protocol/forward.h",
    "protocol/input.cc",
    "protocol/input.h",
    "protocol/inspector.cc",
    "protocol/inspector.h",
    "protocol/io.cc",
    "protocol/io.h",
    "protocol/memory.cc",
    "protocol/memory.h",
    "protocol/network.cc",
    "protocol/network.h",
    "protocol/page.cc",
    "protocol/page.h",
    "protocol/protocol.cc",
    "protocol/protocol.h",
    "protocol/runtime.cc",
    "protocol/runtime.h",
    "protocol/schema.cc",
    "protocol/schema.h",
    "protocol/security.cc",
    "protocol/security.h",
    "protocol/service_worker.cc",
    "protocol/service_worker.h",
    "protocol/storage.cc",
    "protocol/storage.h",
    "protocol/system_info.cc",
    "protocol/system_info.h",
    "protocol/target.cc",
    "protocol/target.h",
    "protocol/tethering.cc",
    "protocol/tethering.h",
    "protocol/tracing.cc",
    "protocol/tracing.h",
  ]
}
