blob: 31aaeba835b1b544a56ccaa02b1361240b24c7f6 [file] [log] [blame]
# 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/features.gni")
import("//build/config/ui.gni")
import("//testing/test.gni")
import("//ui/base/ui_features.gni")
assert(use_aura)
assert(enable_hidpi)
gypi_values = exec_script("//build/gypi_to_gn.py",
[ rebase_path("ash.gyp") ],
"scope",
[ "ash.gyp" ])
component("ash") {
sources = gypi_values.ash_sources
configs += [ "//build/config:precompiled_headers" ]
defines = [ "ASH_IMPLEMENTATION" ]
public_deps = [
"//ash/resources",
"//ash/strings",
]
deps = [
"//base",
"//base:i18n",
"//base/third_party/dynamic_annotations",
"//cc",
"//components/device_event_log",
"//components/onc",
"//components/signin/core/account_id",
"//components/user_manager",
"//components/wallpaper",
"//media",
"//net",
"//skia",
"//third_party/icu",
"//ui/accessibility",
"//ui/app_list",
"//ui/aura",
"//ui/base",
"//ui/base:ui_data_pack",
"//ui/base/ime",
"//ui/compositor",
"//ui/display/types",
"//ui/events",
"//ui/events:events_base",
"//ui/events:gesture_detection",
"//ui/events/devices",
"//ui/gfx",
"//ui/gfx/geometry",
"//ui/keyboard",
"//ui/message_center",
"//ui/native_theme",
"//ui/platform_window",
"//ui/platform_window/stub",
"//ui/resources",
"//ui/strings",
"//ui/views",
"//ui/wm",
"//url",
]
if (is_win) {
sources -= [
"sticky_keys/sticky_keys_controller.cc",
"sticky_keys/sticky_keys_controller.h",
]
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
}
if (use_x11) {
configs += [
"//build/config/linux:x11",
"//build/config/linux:xfixes",
]
deps += [
"//ui/events/platform",
"//ui/gfx/x",
]
} else {
sources -= [
"host/ash_window_tree_host_x11.cc",
"host/ash_window_tree_host_x11.h",
"wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard_x11.cc",
"wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard_x11.h",
]
}
if (use_ozone) {
deps += [
"//ui/events:dom_keycode_converter",
"//ui/events/ozone:events_ozone",
"//ui/ozone",
]
}
if (is_chromeos) {
deps += [
"//chromeos",
"//chromeos:power_manager_proto",
"//device/bluetooth",
# TODO(msw): Remove this; only ash_with_content should depend on webkit.
"//third_party/WebKit/public:blink_headers",
"//third_party/qcms",
"//ui/chromeos:ui_chromeos",
"//ui/chromeos/resources",
"//ui/chromeos/strings",
"//ui/display",
"//ui/display/util",
]
} else {
sources -= [
"accelerators/key_hold_detector.cc",
"accelerators/key_hold_detector.h",
"accelerators/magnifier_key_scroller.cc",
"accelerators/magnifier_key_scroller.h",
"accelerators/spoken_feedback_toggler.cc",
"accelerators/spoken_feedback_toggler.h",
"display/resolution_notification_controller.cc",
"display/resolution_notification_controller.h",
"system/tray/media_security/media_capture_observer.h",
"system/tray/media_security/multi_profile_media_tray_item.cc",
"system/tray/media_security/multi_profile_media_tray_item.h",
"touch/touch_transformer_controller.cc",
"touch/touch_transformer_controller.h",
"touch/touchscreen_util.cc",
"touch/touchscreen_util.h",
"virtual_keyboard_controller.cc",
"virtual_keyboard_controller.h",
]
}
if (!use_ozone) {
sources -= [
"wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard_ozone.cc",
"wm/maximize_mode/scoped_disable_internal_mouse_and_keyboard_ozone.h",
]
}
}
component("ash_with_content") {
sources = gypi_values.ash_with_content_sources
defines = [ "ASH_WITH_CONTENT_IMPLEMENTATION" ]
public_deps = [
":ash",
]
deps = [
"//base",
"//base/third_party/dynamic_annotations",
"//content/public/browser",
"//gpu/config",
"//ipc",
"//skia",
"//ui/aura",
"//ui/base",
"//ui/compositor",
"//ui/events",
"//ui/gfx",
"//ui/gfx/geometry",
"//ui/keyboard:keyboard_with_content",
"//ui/resources",
"//ui/strings",
"//ui/views",
"//ui/views/controls/webview",
"//ui/web_dialogs",
"//url",
]
}
# TODO(msw): Move support code with content deps to test_support_with_content.
source_set("test_support") {
testonly = true
sources = gypi_values.ash_test_support_sources
configs += [ "//build/config:precompiled_headers" ]
public_deps = [
":ash",
]
deps = [
":test_support_with_content", # TODO(beng): reverse this direction.
"//ash/resources",
"//base:i18n",
"//base/test:test_support",
"//components/signin/core/account_id",
"//components/user_manager:user_manager",
"//content/public/browser",
"//content/test:test_support",
"//device/bluetooth",
"//skia",
"//testing/gtest",
"//ui/accessibility",
"//ui/app_list",
"//ui/app_list:test_support",
"//ui/aura",
"//ui/aura:test_support",
"//ui/base:test_support",
"//ui/compositor:test_support",
"//ui/display/types",
"//ui/events:events_base",
"//ui/events:test_support",
"//ui/events/devices",
"//ui/gl",
"//ui/gl:test_support",
"//ui/keyboard",
"//ui/message_center",
"//ui/views",
"//ui/views:test_support",
"//ui/wm",
]
if (is_win) {
deps += [ "//ui/platform_window/win" ]
}
if (use_x11) {
deps += [ "//ui/gfx/x" ]
}
if (is_chromeos) {
deps += [
"//chromeos",
"//ui/display",
]
}
}
source_set("test_support_with_content") {
testonly = true
sources = gypi_values.ash_test_support_with_content_sources
configs += [ "//build/config:precompiled_headers" ]
deps = [
":ash_with_content",
"//content/test:test_support",
"//skia",
]
}
source_set("interactive_ui_test_support") {
testonly = true
configs += [ "//build/config:precompiled_headers" ]
public_deps = [
":ash",
":test_support",
]
sources = [
"test/ash_interactive_ui_test_base.cc",
"test/ash_interactive_ui_test_base.h",
]
deps = [
":ash",
":test_support",
"//base",
"//skia",
"//testing/gtest",
"//ui/aura",
"//ui/base",
"//ui/gl:test_support",
]
}
static_library("ash_shell_lib") {
testonly = true
sources = gypi_values.ash_shell_lib_sources
deps = [
":ash",
":ash_with_content",
":test_support",
"//ash/resources",
"//ash/strings",
"//base",
"//base:i18n",
"//components/user_manager",
"//net",
"//skia",
"//third_party/icu",
"//ui/app_list",
"//ui/aura",
"//ui/base",
"//ui/base/ime",
"//ui/compositor",
"//ui/events",
"//ui/events:events_base",
"//ui/gfx",
"//ui/gfx/geometry",
"//ui/keyboard",
"//ui/keyboard:keyboard_with_content",
"//ui/message_center",
"//ui/resources",
"//ui/views",
"//ui/views:test_support",
"//ui/views/examples:views_examples_lib",
"//ui/views/examples:views_examples_with_content_lib",
"//ui/wm",
]
}
static_library("ash_shell_lib_with_content") {
testonly = true
sources = gypi_values.ash_shell_with_content_lib_sources
deps = [
":ash_shell_lib",
":ash_with_content",
"//base:i18n",
"//chrome:packed_resources",
"//content",
"//content/shell:content_shell_lib",
"//device/bluetooth",
"//net",
"//skia",
"//ui/aura",
"//ui/base",
"//ui/compositor",
"//ui/events/devices",
"//ui/message_center",
"//ui/views:test_support",
"//ui/wm",
]
if (is_chromeos) {
deps += [ "//chromeos" ]
}
}
test("ash_unittests") {
sources = gypi_values.ash_unittests_sources
configs += [ "//build/config:precompiled_headers" ]
deps = [
":ash",
":ash_with_content",
":test_support",
":test_support_with_content",
"//ash/resources",
"//ash/strings",
"//base",
"//base/test:test_support",
"//components/signin/core/account_id",
"//components/user_manager",
"//content/public/browser",
"//content/test:test_support",
"//skia",
"//testing/gtest",
"//third_party/icu",
"//ui/accessibility",
"//ui/app_list",
"//ui/aura",
"//ui/aura:test_support",
"//ui/base",
"//ui/base:test_support",
"//ui/base/ime",
"//ui/compositor",
"//ui/compositor:test_support",
"//ui/display/types",
"//ui/events",
"//ui/events:gesture_detection",
"//ui/events:test_support",
"//ui/events/devices",
"//ui/gfx",
"//ui/gfx/geometry",
"//ui/keyboard",
"//ui/keyboard:keyboard_with_content",
"//ui/message_center",
"//ui/message_center:test_support",
"//ui/resources",
"//ui/strings",
"//ui/views",
"//ui/views:test_support",
"//ui/views/controls/webview:test_support",
"//ui/web_dialogs:test_support",
"//ui/wm",
"//url",
]
data_deps = [
"//ash/strings:ash_test_strings",
"//ash/resources:ash_test_resources_100_percent",
"//ash/resources:ash_test_resources_200_percent",
]
if (!is_chromeos) {
sources -= [
# TODO(zork): fix this test to build on Windows. See: crosbug.com/26906
"focus_cycler_unittest.cc",
# All tests for multiple displays: not supported on Windows Ash.
"wm/drag_window_resizer_unittest.cc",
# Accelerometer is only available on Chrome OS.
"wm/maximize_mode/maximize_mode_controller_unittest.cc",
# Can't resize on Windows Ash. http://crbug.com/165962
"autoclick/autoclick_unittest.cc",
"magnifier/magnification_controller_unittest.cc",
"sticky_keys/sticky_keys_overlay_unittest.cc",
"system/tray/media_security/multi_profile_media_tray_item_unittest.cc",
"virtual_keyboard_controller_unittest.cc",
"wm/workspace/workspace_window_resizer_unittest.cc",
]
sources += [
#'<(SHARED_INTERMEDIATE_DIR)/ui/resources/ui_unscaled_resources.rc', TODO(GYP)
]
}
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
if (!use_x11) {
sources -= [ "host/ash_window_tree_host_x11_unittest.cc" ]
}
if (is_chromeos) {
sources += [ "first_run/first_run_helper_unittest.cc" ]
deps += [
"//chromeos",
"//chromeos:power_manager_proto",
"//chromeos:test_support_without_gmock",
"//device/bluetooth",
"//ui/chromeos:ui_chromeos",
"//ui/display",
"//ui/display:test_support",
"//ui/display:test_util",
]
} else {
sources -= [
"accelerators/magnifier_key_scroller_unittest.cc",
"accelerators/spoken_feedback_toggler_unittest.cc",
"display/resolution_notification_controller_unittest.cc",
"touch/touchscreen_util_unittest.cc",
]
}
if (!use_x11 || !is_chromeos) {
sources -= [ "touch/touch_transformer_controller_unittest.cc" ]
}
if (!is_chromeos) {
sources -= [ "sticky_keys/sticky_keys_unittest.cc" ]
}
}
executable("ash_shell_with_content") {
testonly = true
sources = [
"shell/content/shell_with_content_main.cc",
]
deps = [
":ash_shell_lib_with_content",
"//base",
"//build/config/sanitizers:deps",
"//components/user_manager",
"//content",
"//content/public/app:both",
]
data_deps = [
"//ash/strings:ash_test_strings",
"//ash/resources:ash_test_resources_100_percent",
"//ash/resources:ash_test_resources_200_percent",
]
if (is_win) {
configs -= [ "//build/config/win:console" ]
configs += [ "//build/config/win:windowed" ]
deps += [ "//sandbox" ]
}
if (is_chromeos) {
deps += [ "//device/bluetooth" ]
}
}
# When adding support for isolates, please have a look at run-time dependencies
# in the ash_unittests_run target in ash.gyp.