# Copyright 2016 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("//device/vr/buildflags/buildflags.gni") if (is_android) { import("//build/config/android/rules.gni") # For generate_jni(). } if (enable_vr) { component("vr") { output_name = "device_vr" sources = [ "vr_export.h", ] defines = [ "DEVICE_VR_IMPLEMENTATION" ] deps = [ "//device/vr/buildflags", "//device/vr/public/mojom", ] sources += [ "orientation/orientation_device.cc", "orientation/orientation_device.h", "orientation/orientation_device_provider.cc", "orientation/orientation_device_provider.h", "vr_device.h", "vr_device_base.cc", "vr_device_base.h", "vr_device_provider.h", "vr_display_impl.cc", "vr_display_impl.h", ] deps += [ "//base", "//components/ukm:ukm", "//gpu/ipc/common:interfaces", "//mojo/public/cpp/bindings", "//services/device/public/cpp/generic_sensor", "//services/metrics/public/cpp:ukm_builders", "//services/service_manager/public/cpp", "//ui/display", "//ui/gfx", "//ui/gfx/mojo:mojo", ] if (enable_gvr_services) { sources += [ "android/gvr/cardboard_gamepad_data_fetcher.cc", "android/gvr/cardboard_gamepad_data_fetcher.h", "android/gvr/cardboard_gamepad_data_provider.h", "android/gvr/gvr_delegate.cc", "android/gvr/gvr_delegate.h", "android/gvr/gvr_delegate_provider.h", "android/gvr/gvr_delegate_provider_factory.cc", "android/gvr/gvr_delegate_provider_factory.h", "android/gvr/gvr_device.cc", "android/gvr/gvr_device.h", "android/gvr/gvr_device_provider.cc", "android/gvr/gvr_device_provider.h", "android/gvr/gvr_gamepad_data_fetcher.cc", "android/gvr/gvr_gamepad_data_fetcher.h", "android/gvr/gvr_gamepad_data_provider.h", ] if (enable_arcore) { sources += [ "android/arcore/arcore_device_provider_factory.cc", "android/arcore/arcore_device_provider_factory.h", ] } deps += [ ":jni_headers", "//device/gamepad", "//device/gamepad/public/cpp:shared_with_blink", "//third_party/blink/public:blink_headers", "//third_party/gvr-android-sdk:gvr_shim", ] ldflags = [ "-landroid" ] configs += [ "//third_party/gvr-android-sdk:libgvr_config" ] } if (enable_openvr) { deps += [ "//device/gamepad", "//device/gamepad/public/cpp:shared_with_blink", "//third_party/openvr:openvr", ] sources += [ "openvr/openvr_device.cc", "openvr/openvr_device.h", "openvr/openvr_device_provider.cc", "openvr/openvr_device_provider.h", "openvr/openvr_gamepad_data_fetcher.cc", "openvr/openvr_gamepad_data_fetcher.h", "openvr/openvr_render_loop.cc", "openvr/openvr_render_loop.h", "openvr/openvr_type_converters.cc", "openvr/openvr_type_converters.h", ] } if (is_win && (enable_openvr || enable_oculus_vr)) { libs = [ "d3d11.lib", "DXGI.lib", ] sources += [ "windows/d3d11_texture_helper.cc", "windows/d3d11_texture_helper.h", "windows/flip_pixel_shader.h", "windows/flip_vertex_shader.h", ] } if (enable_oculus_vr) { deps += [ "//device/gamepad", "//device/gamepad/public/cpp:shared_with_blink", "//third_party/libovr", ] sources += [ "oculus/oculus_device.cc", "oculus/oculus_device.h", "oculus/oculus_device_provider.cc", "oculus/oculus_device_provider.h", "oculus/oculus_gamepad_data_fetcher.cc", "oculus/oculus_gamepad_data_fetcher.h", "oculus/oculus_render_loop.cc", "oculus/oculus_render_loop.h", "oculus/oculus_type_converters.cc", "oculus/oculus_type_converters.h", ] } } static_library("fakes") { testonly = true defines = [ "DEVICE_VR_IMPLEMENTATION" ] sources = [ "test/fake_orientation_provider.cc", "test/fake_orientation_provider.h", "test/fake_sensor_provider.cc", "test/fake_sensor_provider.h", "test/fake_vr_device.cc", "test/fake_vr_device.h", "test/fake_vr_device_provider.cc", "test/fake_vr_device_provider.h", "test/fake_vr_display_impl_client.cc", "test/fake_vr_display_impl_client.h", "test/fake_vr_service_client.cc", "test/fake_vr_service_client.h", "test/mock_vr_display_impl.cc", "test/mock_vr_display_impl.h", "vr_export.h", ] public_deps = [ ":vr", "//base", "//device/vr/public/mojom", "//mojo/public/cpp/bindings", "//services/device/public/cpp/generic_sensor", "//testing/gmock", ] } } else { source_set("vr") { # We need to include an empty .cc file so that mac and windows don't fall over when trying to # compile this when webvr is disabled. sources = [ "empty.cc", ] } } if (enable_openvr) { shared_library("openvr_mock") { output_name = "mock_vr_clients/bin/vrclient" if (target_cpu == "x64" && is_win) { output_name = "mock_vr_clients/bin/vrclient_x64" } sources = [ "openvr/test/fake_openvr_impl_api.cc", "openvr/test/fake_openvr_log.h", ] libs = [ "d3d11.lib", "DXGI.lib", ] deps = [ "//base", ] } } if (enable_gvr_services) { java_sources_needing_jni = [ "android/java/src/org/chromium/device/vr/NonPresentingGvrContext.java" ] generate_jni("jni_headers") { sources = java_sources_needing_jni jni_package = "device" } android_library("java") { java_files = java_sources_needing_jni deps = [ "//base:base_java", "//third_party/gvr-android-sdk:gvr_common_java", "//ui/android:ui_java", ] } }