# Copyright 2017 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/buildflag_header.gni") import("//chrome/browser/vr/features.gni") import("//chrome/common/features.gni") import("//device/vr/buildflags/buildflags.gni") import("//testing/test.gni") import("//tools/grit/repack.gni") if (is_android) { import("//build/config/android/rules.gni") } assert(enable_vr) buildflag_header("vr_build_features") { header = "vr_features.h" flags = [ "USE_VR_ASSETS_COMPONENT=$use_vr_assets_component" ] } component("vr_ui") { sources = [ "animation.cc", "animation.h", "audio_delegate.h", "content_input_delegate.cc", "content_input_delegate.h", "databinding/binding.h", "databinding/binding_base.h", "databinding/vector_binding.h", "databinding/vector_element_binding.h", "elements/button.cc", "elements/button.h", "elements/content_element.cc", "elements/content_element.h", "elements/controller.cc", "elements/controller.h", "elements/corner_radii.h", "elements/disc_button.cc", "elements/disc_button.h", "elements/draw_phase.cc", "elements/draw_phase.h", "elements/environment/background.cc", "elements/environment/background.h", "elements/environment/grid.cc", "elements/environment/grid.h", "elements/environment/stars.cc", "elements/environment/stars.h", "elements/full_screen_rect.cc", "elements/full_screen_rect.h", "elements/indicator_spec.cc", "elements/indicator_spec.h", "elements/invisible_hit_target.cc", "elements/invisible_hit_target.h", "elements/keyboard.cc", "elements/keyboard.h", "elements/laser.cc", "elements/laser.h", "elements/linear_layout.cc", "elements/linear_layout.h", "elements/omnibox_formatting.cc", "elements/omnibox_formatting.h", "elements/omnibox_text_field.cc", "elements/omnibox_text_field.h", "elements/oval.cc", "elements/oval.h", "elements/paged_grid_layout.cc", "elements/paged_grid_layout.h", "elements/paged_scroll_view.cc", "elements/paged_scroll_view.h", "elements/platform_ui_element.cc", "elements/platform_ui_element.h", "elements/rect.cc", "elements/rect.h", "elements/render_text_wrapper.cc", "elements/render_text_wrapper.h", "elements/repositioner.cc", "elements/repositioner.h", "elements/resizer.cc", "elements/resizer.h", "elements/reticle.cc", "elements/reticle.h", "elements/scaled_depth_adjuster.cc", "elements/scaled_depth_adjuster.h", "elements/scrollable_element.cc", "elements/scrollable_element.h", "elements/shadow.cc", "elements/shadow.h", "elements/spinner.cc", "elements/spinner.h", "elements/text.cc", "elements/text.h", "elements/text_button.cc", "elements/text_button.h", "elements/text_input.cc", "elements/text_input.h", "elements/textured_element.cc", "elements/textured_element.h", "elements/throbber.cc", "elements/throbber.h", "elements/transient_element.cc", "elements/transient_element.h", "elements/ui_element.cc", "elements/ui_element.h", "elements/ui_element_name.cc", "elements/ui_element_name.h", "elements/ui_element_type.cc", "elements/ui_element_type.h", "elements/ui_texture.cc", "elements/ui_texture.h", "elements/url_text.cc", "elements/url_text.h", "elements/vector_icon.cc", "elements/vector_icon.h", "elements/vector_icon_button.cc", "elements/vector_icon_button.h", "elements/viewport_aware_root.cc", "elements/viewport_aware_root.h", "font_fallback.cc", "font_fallback.h", "frame_lifecycle.cc", "frame_lifecycle.h", "ganesh_surface_provider.cc", "ganesh_surface_provider.h", "model/color_scheme.cc", "model/color_scheme.h", "model/modal_prompt_type.cc", "model/modal_prompt_type.h", "model/model.cc", "model/model.h", "model/platform_toast.cc", "model/platform_toast.h", "model/tab_model.cc", "model/tab_model.h", "renderers/base_quad_renderer.cc", "renderers/base_quad_renderer.h", "renderers/base_renderer.cc", "renderers/base_renderer.h", "renderers/external_textured_quad_renderer.cc", "renderers/external_textured_quad_renderer.h", "renderers/radial_gradient_quad_renderer.cc", "renderers/radial_gradient_quad_renderer.h", "renderers/texture_copy_renderer.cc", "renderers/texture_copy_renderer.h", "renderers/textured_quad_renderer.cc", "renderers/textured_quad_renderer.h", "renderers/transparent_quad_renderer.cc", "renderers/transparent_quad_renderer.h", "sequence.cc", "sequence.h", "target_property.cc", "target_property.h", "transition.cc", "transition.h", "ui.cc", "ui.h", "ui_element_renderer.cc", "ui_element_renderer.h", "ui_input_manager.cc", "ui_input_manager.h", "ui_renderer.cc", "ui_renderer.h", "ui_scene.cc", "ui_scene.h", "ui_scene_creator.cc", "ui_scene_creator.h", "vr_ui_export.h", ] public_deps = [ "//ui/gl", ] deps = [ ":vr_base", "//base", "//cc/animation", "//chrome/app:generated_resources", "//chrome/browser/vr/vector_icons", "//chrome/common:constants", "//components/toolbar:vector_icons", "//components/url_formatter", "//components/vector_icons", "//media", "//net", "//skia", ] defines = [ "VR_IMPLEMENTATION", "VR_UI_IMPLEMENTATION", ] } component("vr_common") { sources = [ "base_compositor_delegate.cc", "base_compositor_delegate.h", "compositor_delegate.h", "controller_delegate.h", "controller_delegate_for_testing.cc", "controller_delegate_for_testing.h", "fps_meter.cc", "fps_meter.h", "gesture_detector.cc", "gesture_detector.h", "platform_controller.h", "render_loop.cc", "render_loop.h", "render_loop_browser_interface.h", "sample_queue.cc", "sample_queue.h", "scheduler_delegate.h", "service/browser_xr_runtime.cc", "service/browser_xr_runtime.h", "service/isolated_device_provider.cc", "service/isolated_device_provider.h", "service/vr_service_impl.cc", "service/vr_service_impl.h", "service/xr_device_impl.cc", "service/xr_device_impl.h", "service/xr_runtime_manager.cc", "service/xr_runtime_manager.h", "sliding_average.cc", "sliding_average.h", "sounds_manager_audio_delegate.cc", "sounds_manager_audio_delegate.h", "toolbar_helper.cc", "toolbar_helper.h", "ui_factory.cc", "ui_factory.h", ] public_deps = [ ":vr_base", ] deps = [ ":vr_ui", "//base", "//cc/animation", "//cc/paint", "//chrome/browser/vr/vector_icons", "//chrome/common:constants", "//components/omnibox/browser", "//components/rappor/public:public", "//components/toolbar", "//components/toolbar:vector_icons", "//components/ukm/content", "//components/vector_icons", "//content/public/browser", "//device/vr", "//device/vr/buildflags:buildflags", "//device/vr/public/mojom", "//media", "//net", "//services/metrics/public/cpp:ukm_builders", "//skia", "//ui/base", "//ui/display", "//ui/gl/init", ] defines = [ "VR_IMPLEMENTATION", "VR_UI_IMPLEMENTATION", ] } # vr_base contains common dependencies of vr_common and vr_ui. It exists because # vr_ui must not depend on vr_common. source_set("vr_base") { sources = [ "assets_component_update_status.h", "assets_load_status.h", "assets_loader.cc", "assets_loader.h", "browser_ui_interface.h", "compositor_ui_interface.h", "exit_vr_prompt_choice.h", "gl_texture_location.h", "input_event.cc", "input_event.h", "keyboard_delegate.h", "keyboard_ui_interface.h", "macros.h", "metrics/metrics_helper.cc", "metrics/metrics_helper.h", "metrics/session_metrics_helper.cc", "metrics/session_metrics_helper.h", "mode.h", "model/assets.cc", "model/assets.h", "model/camera_model.h", "model/capturing_state_model.h", "model/controller_model.cc", "model/controller_model.h", "model/hosted_platform_ui.h", "model/omnibox_suggestions.cc", "model/omnibox_suggestions.h", "model/reticle_model.h", "model/speech_recognition_model.h", "model/text_input_info.cc", "model/text_input_info.h", "model/toolbar_state.cc", "model/toolbar_state.h", "model/ui_mode.h", "model/web_vr_model.h", "platform_input_handler.h", "platform_ui_input_delegate.cc", "platform_ui_input_delegate.h", "pose_util.cc", "pose_util.h", "render_info.h", "speech_recognizer.cc", "speech_recognizer.h", "text_edit_action.cc", "text_edit_action.h", "text_input_delegate.cc", "text_input_delegate.h", "ui_browser_interface.h", "ui_initial_state.cc", "ui_initial_state.h", "ui_interface.h", "ui_support.cc", "ui_support.h", "ui_test_input.h", "ui_unsupported_mode.h", "vr_export.h", "vr_geometry_util.cc", "vr_geometry_util.h", "vr_gl_util.cc", "vr_gl_util.h", ] defines = [ "VR_IMPLEMENTATION", "VR_UI_IMPLEMENTATION", ] public_deps = [ ":vr_build_features", "//components/omnibox/browser", "//components/strings:components_strings_grit", "//content/public/common", "//ui/base", "//ui/gl/init", ] deps = [ "//base", "//chrome/app:generated_resources", "//components/rappor:rappor", "//components/security_state/core", "//components/ukm/content", "//components/url_formatter", "//content/public/browser:browser", "//media", "//net", "//services/metrics/public/cpp:ukm_builders", "//skia", ] } test("vr_common_unittests") { sources = [ "animation_unittest.cc", "databinding/binding_unittest.cc", "databinding/vector_binding_unittest.cc", "elements/button_unittest.cc", "elements/content_element_unittest.cc", "elements/disc_button_unittest.cc", "elements/linear_layout_unittest.cc", "elements/omnibox_formatting_unittest.cc", "elements/omnibox_text_field_unittest.cc", "elements/oval_unittest.cc", "elements/paged_grid_layout_unittest.cc", "elements/rect_unittest.cc", "elements/repositioner_unittest.cc", "elements/resizer_unittest.cc", "elements/scaled_depth_adjuster_unittest.cc", "elements/scrollable_element_unittest.cc", "elements/shadow_unittest.cc", "elements/spinner_unittest.cc", "elements/text_input_unittest.cc", "elements/text_unittest.cc", "elements/throbber_unittest.cc", "elements/transient_element_unittest.cc", "elements/ui_element_unittest.cc", "elements/url_text_unittest.cc", "elements/vector_icon_button_unittest.cc", "elements/vector_icon_unittest.cc", "elements/viewport_aware_root_unittest.cc", "fps_meter_unittest.cc", "gesture_detector_unittest.cc", "model/text_input_info_unittest.cc", "platform_ui_input_delegate_unittest.cc", "service/xr_runtime_manager_unittest.cc", "sliding_average_unittest.cc", "speech_recognizer_unittest.cc", "test/paths.cc", "test/paths.h", "test/run_all_unittests.cc", "test/ui_test.cc", "test/ui_test.h", "ui_input_manager_unittest.cc", "ui_scene_unittest.cc", "ui_unittest.cc", "vr_geometry_util_unittest.cc", ] # TODO(mthiesse, crbug.com/769373): The dependency on device/vr:fakes requires # some workarounds for tests, since we are static-linking to the fakes instead # of loading them from a dll on Windows. defines = [ "DEVICE_VR_IMPLEMENTATION" ] deps = [ ":vr_test_support", "//components/url_formatter", "//components/vector_icons", "//mojo/public/cpp/bindings", "//services/network:test_support", "//testing/gmock", "//ui/gfx/geometry", ] if (is_android) { deps += [ "//ui/android:ui_java" ] } } test("vr_pixeltests") { testonly = true sources = [ "test/run_all_pixeltests.cc", "test/ui_pixel_test.cc", "test/ui_pixel_test.h", "ui_pixeltest.cc", ] deps = [ ":vr_gl_test_support", ":vr_test_support", ] if (is_android) { deps += [ "//ui/android:ui_java" ] } } test("vr_common_perftests") { sources = [ "test/run_all_perftests.cc", "text_perftest.cc", ] deps = [ ":vr_gl_test_support", ":vr_test_support", "//testing/perf", ] if (is_android) { deps += [ "//ui/android:ui_java" ] } # Needed for isolate script to execute data_deps = [ "//testing:run_perf_test", ] } source_set("vr_test_support") { testonly = true sources = [ "test/animation_utils.cc", "test/animation_utils.h", "test/constants.cc", "test/constants.h", "test/mock_browser_ui_interface.cc", "test/mock_browser_ui_interface.h", "test/mock_content_input_delegate.cc", "test/mock_content_input_delegate.h", "test/mock_keyboard_delegate.cc", "test/mock_keyboard_delegate.h", "test/mock_render_text.cc", "test/mock_render_text.h", "test/mock_text_input_delegate.cc", "test/mock_text_input_delegate.h", "test/mock_ui_browser_interface.cc", "test/mock_ui_browser_interface.h", "test/vr_test_suite.cc", "test/vr_test_suite.h", ] public_deps = [ ":vr_common", ":vr_test_pak", ":vr_ui", "//base/test:test_support", "//cc:test_support", "//components/omnibox/browser:browser", "//components/security_state/core", "//components/toolbar:vector_icons", "//content/test:test_support", "//mojo/core/embedder", "//skia", "//testing/gtest", "//ui/accessibility:ax_enums_mojo", "//ui/gfx:test_support", # TODO(mthiesse, crbug.com/769373): Remove dependency on device/vr:fakes. "//device/vr:fakes", # TODO(cjgrant): Figure out why including //ui/android:ui_java here # doesn't propagate to individual test executable targets. ] data = [ "$root_out_dir/vr_test.pak", ] } source_set("vr_gl_test_support") { testonly = true sources = [ "test/gl_test_environment.cc", "test/gl_test_environment.h", "test/gl_test_environment_unittest.cc", ] public_deps = [ "//base/test:test_support", "//skia", "//testing/gtest", "//ui/gl", "//ui/gl:test_support", ] deps = [ ":vr_common", # For graphics delegate. ] } repack("vr_test_pak") { sources = [ "$root_gen_dir/chrome/generated_resources_en-US.pak", "$root_gen_dir/components/components_resources.pak", "$root_gen_dir/components/strings/components_strings_en-US.pak", ] output = "$root_out_dir/vr_test.pak" deps = [ "//chrome/app:generated_resources", "//components/resources:components_resources", "//components/strings", ] }