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

import("//build/config/ui.gni")

# GYP version: mojo/mojo_services.gypi:mojo_view_manager
shared_library("view_manager") {
  output_name = "mojo_view_manager"

  deps = [
    "//base",
    "//cc/surfaces",
    "//mojo/application",
    "//mojo/common",
    "//mojo/environment:chromium",
    "//mojo/public/c/system:for_shared_library",
    "//mojo/public/cpp/bindings",
    "//mojo/public/interfaces/application",
    "//mojo/services/public/cpp/geometry",
    "//mojo/services/public/cpp/input_events",
    "//mojo/services/public/cpp/surfaces",
    "//mojo/services/public/interfaces/geometry",
    "//mojo/services/public/interfaces/input_events",
    "//mojo/services/public/interfaces/native_viewport",
    "//mojo/services/public/interfaces/surfaces",
    "//mojo/services/public/interfaces/view_manager",
    "//ui/base",
    "//ui/events",
    "//ui/events:events_base",
    "//ui/gfx",
    "//ui/gfx/geometry",
  ]

  defines = [
    "MOJO_VIEW_MANAGER_IMPLEMENTATION",
  ]

  sources = [
    "access_policy.h",
    "access_policy_delegate.h",
    "connection_manager.cc",
    "connection_manager.h",
    "default_access_policy.cc",
    "default_access_policy.h",
    "display_manager.cc",
    "display_manager.h",
    "main.cc",
    "server_view.cc",
    "server_view.h",
    "server_view_delegate.h",
    "view_manager_export.h",
    "view_manager_init_service_context.cc",
    "view_manager_init_service_context.h",
    "view_manager_init_service_impl.cc",
    "view_manager_init_service_impl.h",
    "view_manager_service_impl.cc",
    "view_manager_service_impl.h",
    "window_manager_access_policy.cc",
    "window_manager_access_policy.h",
  ]
}

# GYP version: mojo/mojo_services.gypi:mojo_view_manager_unittests
test("mojo_view_manager_unittests") {
  deps = [
    "//base",
    "//base/test:test_support",
    "//mojo/application",
    "//mojo/application_manager",
    "//mojo/environment:chromium",
    "//mojo/public/cpp/bindings",
    "//mojo/services/public/cpp/input_events",
    "//mojo/services/public/cpp/geometry",
    "//mojo/services/public/cpp/view_manager",
    "//mojo/services/public/cpp/view_manager/lib:run_unittests",
    "//mojo/shell:test_support",
    "//mojo/system",
    "//testing/gtest",
    "//ui/gfx/geometry",
  ]

  if (use_x11) {
    deps += ["//ui/gfx/x"]
  }

  if (is_component_build) {
    deps += ["//ui/gl"]
  }

  sources = [
    "test_change_tracker.cc",
    "test_change_tracker.h",
    "view_manager_unittest.cc",
  ]
}