# 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/ui.gni")
import("//sky/engine/config.gni")

visibility = ["//sky/*"]

component("v8_inspector") {
  output_name = "v8_inspector"

  deps = [
    "//base",
    "//mojo/public/cpp/application",
    "//mojo/public/interfaces/application",
    "//sky/engine/core", # FIXME: Remove.
    "//sky/engine/platform", # FIXME: Remove.
    "//sky/services/inspector:bindings",
    "//sky/engine/core:core_generated", # FIXME: Remove.
  ]

  configs += [
    "//sky/engine:config",
    "//sky/engine:inside_blink",
    "//sky/engine:non_test_config",
  ]

  sources = [
    "inspector_backend_mojo.cc",
    "inspector_backend_mojo.h",
    "PageDebuggerAgent.cpp",
    "PageDebuggerAgent.h",
    "PageScriptDebugServer.cpp",
    "PageScriptDebugServer.h",
  ]
}
