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

source_set("utility") {
  # Only the public target should depend on this. All other targets (even
  # internal content ones) should depend on the public one.
  visibility = [ "//content/public/utility:utility_sources" ]

  sources = [
    "in_process_utility_thread.cc",
    "in_process_utility_thread.h",
    "utility_main.cc",
    "utility_thread_impl.cc",
    "utility_thread_impl.h",
  ]

  configs += [ "//content:content_implementation" ]

  deps = [
    "//base",
    "//content:export",
    "//content/public/child:child_sources",
    "//content/public/common:common_sources",
    "//courgette:courgette_lib",
    "//mojo/public/interfaces/application",
    "//third_party/WebKit/public:blink_headers",
  ]
}

