# 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", "//components/quirks", "//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", "//components/quirks", "//device/bluetooth", "//net:net", "//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.