chromium/ui/wm/BUILD.gn

# Copyright 2014 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/chromeos/ui_mode.gni")
import("//build/config/ui.gni")
import("//testing/test.gni")
import("//ui/base/ui_features.gni")

assert(use_aura)

component("wm") {
  output_name = "ui_wm"
  sources = [
    "core/accelerator_delegate.h",
    "core/accelerator_filter.cc",
    "core/accelerator_filter.h",
    "core/base_focus_rules.cc",
    "core/base_focus_rules.h",
    "core/capture_controller.cc",
    "core/capture_controller.h",
    "core/compound_event_filter.cc",
    "core/compound_event_filter.h",
    "core/coordinate_conversion.cc",
    "core/coordinate_conversion.h",
    "core/cursor_loader.cc",
    "core/cursor_loader.h",
    "core/cursor_manager.cc",
    "core/cursor_manager.h",
    "core/cursor_util.cc",
    "core/cursor_util.h",
    "core/default_activation_client.cc",
    "core/default_activation_client.h",
    "core/default_screen_position_client.cc",
    "core/default_screen_position_client.h",
    "core/easy_resize_window_targeter.cc",
    "core/easy_resize_window_targeter.h",
    "core/focus_controller.cc",
    "core/focus_controller.h",
    "core/focus_rules.h",
    "core/native_cursor_manager.h",
    "core/native_cursor_manager_delegate.h",
    "core/scoped_animation_disabler.cc",
    "core/scoped_animation_disabler.h",
    "core/shadow_controller.cc",
    "core/shadow_controller.h",
    "core/shadow_controller_delegate.h",
    "core/shadow_types.cc",
    "core/shadow_types.h",
    "core/transient_window_controller.cc",
    "core/transient_window_controller.h",
    "core/transient_window_manager.cc",
    "core/transient_window_manager.h",
    "core/transient_window_observer.h",
    "core/transient_window_stacking_client.cc",
    "core/transient_window_stacking_client.h",
    "core/visibility_controller.cc",
    "core/visibility_controller.h",
    "core/window_animations.cc",
    "core/window_animations.h",
    "core/window_modality_controller.cc",
    "core/window_modality_controller.h",
    "core/window_properties.cc",
    "core/window_properties.h",
    "core/window_util.cc",
    "core/window_util.h",
    "core/wm_core_switches.cc",
    "core/wm_core_switches.h",
    "core/wm_state.cc",
    "core/wm_state.h",
  ]

  configs += [ "//build/config:precompiled_headers" ]
  defines = [ "IS_UI_WM_IMPL" ]

  public_deps = [
    "//base",
    "//build:chromeos_buildflags",
    "//ui/aura",
    "//ui/base",
    "//ui/base/cursor",
    "//ui/base/cursor/mojom:cursor_type",
    "//ui/base/mojom:mojom",
    "//ui/color",
    "//ui/compositor",
    "//ui/display",
    "//ui/events",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/wm/public",
  ]

  deps = [
    "//cc/paint",
    "//skia",
    "//ui/base/ime",
    "//ui/compositor_extra",
    "//ui/events/platform",
    "//ui/gfx/animation",
    "//ui/lottie",
    "//ui/resources",
  ]

  if (is_chromeos_ash) {
    sources += [
      "core/ime_util_chromeos.cc",
      "core/ime_util_chromeos.h",
    ]
  }
}

static_library("test_support") {
  testonly = true
  sources = [
    "test/testing_cursor_client_observer.cc",
    "test/testing_cursor_client_observer.h",
  ]

  if (is_chromeos_ash) {
    sources += [
      "test/wm_test_helper.cc",
      "test/wm_test_helper.h",
    ]
  }

  public_deps = [ "//ui/base/cursor" ]

  deps = [
    ":wm",
    "//skia",
    "//ui/aura",
    "//ui/aura:test_support",
    "//ui/base",
    "//ui/base/ime",
    "//ui/events",
    "//ui/events:events_base",
    "//ui/platform_window",
  ]
}

test("wm_unittests") {
  use_xvfb = use_xvfb_in_this_config

  sources = [
    "core/capture_controller_unittest.cc",
    "core/compound_event_filter_unittest.cc",
    "core/coordinate_conversion_unittest.cc",
    "core/cursor_loader_unittest.cc",
    "core/cursor_manager_unittest.cc",
    "core/cursor_util_unittest.cc",
    "core/focus_controller_unittest.cc",
    "core/shadow_controller_unittest.cc",
    "core/transient_window_manager_unittest.cc",
    "core/transient_window_stacking_client_unittest.cc",
    "core/visibility_controller_unittest.cc",
    "core/window_animations_unittest.cc",
    "core/window_util_unittest.cc",
    "test/run_all_unittests.cc",
  ]

  deps = [
    ":test_support",
    ":wm",
    "//base",
    "//base/test:test_support",
    "//build:chromeos_buildflags",
    "//mojo/core/embedder",
    "//skia",
    "//testing/gtest",
    "//ui/aura:test_support",
    "//ui/base",
    "//ui/base:test_support",
    "//ui/base/cursor",
    "//ui/base/cursor/mojom:cursor_type",
    "//ui/base/ime",
    "//ui/base/mojom:mojom",
    "//ui/compositor:test_support",
    "//ui/compositor_extra",
    "//ui/events:test_support",
    "//ui/events/platform",
    "//ui/gfx",
    "//ui/gfx:gfx_skia",
    "//ui/gfx:test_support",
    "//ui/gfx/animation",
    "//ui/gfx/geometry",
    "//ui/gfx/geometry:geometry_skia",
    "//ui/gl:test_support",
    "//ui/platform_window",
    "//ui/resources",
    "//ui/wm/public",
  ]

  data_deps = [ "//ui/resources:ui_test_pak_data" ]

  if (enable_hidpi) {
    data_deps += [ "//ui/resources:ui_test_pak_data_200_percent" ]
  }

  if (is_chromeos_ash) {
    sources += [ "core/ime_util_chromeos_unittest.cc" ]
  }

  if (is_fuchsia) {
    additional_manifest_fragments = [
      "//build/config/fuchsia/test/present_view.shard.test-cml",
      "//third_party/fuchsia-sdk/sdk/pkg/vulkan/client.shard.cml",
    ]
  }
}