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

# GYP version: mojo_base.gyp:mojo_environment_chromium
source_set("chromium") {
  output_name = "mojo_environment_chromium"

  sources = [
    "environment.cc",

    # TODO(vtl): This is kind of ugly. (See TODO in logging.h.)
    "../public/cpp/environment/async_waiter.h",
    "../public/cpp/environment/lib/async_waiter.cc",
    "../public/cpp/environment/logging.h",
    "../public/cpp/environment/lib/logging.cc",
  ]

  public_deps = [
    ":chromium_impl",
  ]

  deps = [
    "//mojo/public/c/environment",
    "//mojo/public/cpp/bindings:callback",
    "//mojo/public/cpp/environment",
    "//mojo/public/cpp/system",
  ]
}

# GYP version: mojo_base.gyp:mojo_environment_chromium_impl
component("chromium_impl") {
  output_name = "mojo_environment_impl"
  visibility = [ "//mojo/*" ]

  sources = [
    "default_async_waiter_impl.cc",
    "default_async_waiter_impl.h",
    "default_logger_impl.cc",
    "default_logger_impl.h",
    "default_run_loop_impl.cc",
    "default_run_loop_impl.h",
  ]

  defines = [ "MOJO_ENVIRONMENT_IMPL_IMPLEMENTATION" ]

  deps = [
    "//base",
    "//base/third_party/dynamic_annotations",
    "//mojo/common",
    "//mojo/public/c/environment",
  ]
}
