# 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/mojo.gyp:mojo_common_lib
component("common") {
  output_name = "mojo_common_lib"

  sources = [
    "common_type_converters.cc",
    "common_type_converters.h",
    "data_pipe_utils.cc",
    "data_pipe_utils.h",
    "handle_watcher.cc",
    "handle_watcher.h",
    "message_pump_mojo.cc",
    "message_pump_mojo.h",
    "message_pump_mojo_handler.h",
    "time_helper.cc",
    "time_helper.h",
  ]

  defines = [ "MOJO_COMMON_IMPLEMENTATION" ]

  deps = [
    "//base",
    "//base/third_party/dynamic_annotations",
    "//mojo/system",
  ]
}
