# Copyright 2019 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.

browser_protocol_pdl = "//third_party/devtools/third_party/blink/public/devtools_protocol/browser_protocol.pdl"
js_protocol_pdl = "//third_party/v8/include/js_protocol.pdl"

action("protocol_version") {
  script = "//third_party/inspector_protocol/concatenate_protocols.py"

  inputs = [
    browser_protocol_pdl,
    js_protocol_pdl,
  ]
  output_file = "$root_gen_dir/third_party/blink/public/devtools_protocol/protocol.json"
  outputs = [
    output_file,
  ]

  args = [
    rebase_path(browser_protocol_pdl, root_build_dir),
    rebase_path(js_protocol_pdl, root_build_dir),
    rebase_path(output_file, root_build_dir),
  ]
}
