# 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") {
  sources = [
    "access_policy.h",
    "access_policy_delegate.h",
    "connection_manager.cc",
    "connection_manager.h",
    "connection_manager_delegate.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_service_impl.cc",
    "view_manager_service_impl.h",
    "window_manager_access_policy.cc",
    "window_manager_access_policy.h",
  ]

  defines = [
    "MOJO_VIEW_MANAGER_IMPLEMENTATION",
  ]

  deps = [
    "//base",
    "//cc/surfaces",
    "//mojo/application",
    "//mojo/common",
    "//mojo/converters/geometry",
    "//mojo/converters/input_events",
    "//mojo/converters/surfaces",
    "//mojo/environment:chromium",
    "//mojo/public/c/system:for_shared_library",
    "//mojo/public/cpp/bindings",
    "//mojo/public/interfaces/application",
    "//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",
    "//mojo/services/public/interfaces/window_manager",
    "//ui/gfx/geometry",
  ]
}

# GYP version: mojo/mojo_services.gypi:mojo_view_manager_unittests
test("view_manager_unittests") {
  sources = [
    "test_change_tracker.cc",
    "test_change_tracker.h",
    "view_manager_unittest.cc",
  ]

  deps = [
    ":view_manager",
    "//base",
    "//base/test:test_support",
    "//mojo/application",
    "//mojo/application_manager",
    "//mojo/converters/geometry",
    "//mojo/converters/input_events",
    "//mojo/edk/system",
    "//mojo/environment:chromium",
    "//mojo/public/cpp/bindings",
    "//mojo/services/public/cpp/native_viewport:args",
    "//mojo/services/public/cpp/view_manager",
    "//mojo/services/public/cpp/view_manager/lib:run_unittests",
    "//mojo/services/public/interfaces/view_manager",
    "//mojo/services/public/interfaces/window_manager",
    "//mojo/shell:test_support",
    "//testing/gtest",
    "//ui/gfx/geometry",
  ]

  if (!is_android) {  # TODO(GYP) Enable on Android when osmesa links.
    deps += [ "//third_party/mesa:osmesa" ]
  }
}
