# Copyright 2015 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("application") {
  sources = [
    "application_runner_chromium.cc",
    "application_runner_chromium.h",
  ]

  deps = [
    "//base",
    "//mojo/common",
    "//third_party/mojo/src/mojo/public/cpp/application",
    "//third_party/mojo/src/mojo/public/cpp/system",
  ]
}

source_set("test_support") {
  testonly = true
  sources = [
    "application_test_main_chromium.cc",
  ]

  public_deps = [
    "//third_party/mojo/src/mojo/public/cpp/application:test_support",
  ]
  deps = [
    "//base",
    "//base/test:test_config",
    "//mojo/environment:chromium",
    "//third_party/mojo/src/mojo/public/cpp/application",
    "//third_party/mojo/src/mojo/public/cpp/system",
  ]
}
