# 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("embedder") {
  # This isn't really a standalone target, it must be linked into the
  # mojo_system_impl component.
  visibility = [ "//mojo/system" ]

  deps = [ "//base", ]

  defines = [
    "MOJO_SYSTEM_IMPL_IMPLEMENTATION",
    "MOJO_SYSTEM_IMPLEMENTATION",
  ]

  configs += [ "//mojo/system:system_config" ]

  sources = [
    "channel_init.cc",
    "channel_init.h",
    "embedder.cc",
    "embedder.h",
    "platform_channel_pair.cc",
    "platform_channel_pair.h",
    "platform_channel_pair_posix.cc",
    "platform_channel_pair_win.cc",
    "platform_channel_utils_posix.cc",
    "platform_channel_utils_posix.h",
    "platform_handle.cc",
    "platform_handle.h",
    "platform_handle_utils.h",
    "platform_handle_utils_posix.cc",
    "platform_handle_utils_win.cc",
    "platform_handle_vector.h",
    "platform_shared_buffer.h",
    "platform_support.h",
    "scoped_platform_handle.h",
    "simple_platform_shared_buffer.cc",
    "simple_platform_shared_buffer.h",
    "simple_platform_shared_buffer_posix.cc",
    "simple_platform_shared_buffer_win.cc",
    "simple_platform_support.cc",
    "simple_platform_support.h",
    # Test-only code:
    # TODO(vtl): It's a little unfortunate that these end up in the same
    # component as non-test-only code. In the static build, this code should
    # hopefully be dead-stripped.
    "test_embedder.cc",
    "test_embedder.h",
  ]
}

source_set("embedder_unittests") {
  testonly = true
  visibility = [ "//mojo/system:mojo_system_unittests" ]
  testonly = true

  deps = [
    "//base",
    "//mojo/common/test:test_support",
    "//mojo/system",
    "//testing/gtest",
  ]

  sources = [
    "embedder_unittest.cc",
    "platform_channel_pair_posix_unittest.cc",
    "simple_platform_shared_buffer_unittest.cc",
  ]
}