# 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")

static_library("renderer_context_menu") {
  sources = [
    "context_menu_content_type.cc",
    "context_menu_content_type.h",
    "context_menu_delegate.cc",
    "context_menu_delegate.h",
    "render_view_context_menu_base.cc",
    "render_view_context_menu_base.h",
    "render_view_context_menu_observer.cc",
    "render_view_context_menu_observer.h",
    "render_view_context_menu_proxy.h",
  ]

  deps = [
    "//base",
    "//components/search_engines",
    "//content/public/browser",
    "//content/public/common",
    "//ppapi/buildflags",
    "//printing/buildflags",
    "//third_party/blink/public:blink_headers",
    "//ui/base",
  ]

  if (toolkit_views) {
    sources += [
      "views/toolkit_delegate_views.cc",
      "views/toolkit_delegate_views.h",
    ]
    deps += [ "//ui/views" ]
  }
}
