# 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("//extensions/buildflags/buildflags.gni")

assert(enable_extensions,
       "Cannot depend on extensions because enable_extensions=false.")

static_library("native_app_window") {
  sources = [
    "native_app_window_views.cc",
    "native_app_window_views.h",
  ]

  configs += [ "//build/config/compiler:wexit_time_destructors" ]

  deps = [
    "//base",
    "//content/public/browser",
    "//extensions/browser",
    "//extensions/common",
    "//skia",
    "//ui/views",
    "//ui/views/controls/webview",
  ]
}
