# 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("features/features.gni") import("//mojo/public/tools/bindings/mojom.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 = [ ":mojo_bindings", "features", ] sources += [ "vr_device.cc", "vr_device.h", "vr_device_provider.h", "vr_display_impl.cc", "vr_display_impl.h", ] deps += [ "//base", "//gpu/ipc/common:interfaces", "//mojo/public/cpp/bindings", "//ui/gfx", ] if (is_android && (current_cpu == "arm" || current_cpu == "arm64")) { 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", ] deps += [ ":jni_headers", "//device/gamepad", "//device/gamepad/public/cpp:shared_with_blink", "//third_party/WebKit/public:blink_headers", ] ldflags = [ "-landroid" ] libs = [ "//third_party/gvr-android-sdk/libgvr_shim_static_${current_cpu}.a" ] configs += [ "//third_party/gvr-android-sdk:libgvr_config" ] } if (enable_openvr) { deps += [ "//device/gamepad", "//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", ] } } static_library("fakes") { testonly = true defines = [ "DEVICE_VR_IMPLEMENTATION" ] sources = [ "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", "vr_export.h", ] public_deps = [ ":mojo_bindings", ":vr", "//base", "//mojo/public/cpp/bindings", ] } } 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 (is_android && (current_cpu == "arm" || current_cpu == "arm64")) { 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", ] } } mojom_component("mojo_bindings") { output_prefix = "device_vr_mojo_bindings" macro_prefix = "DEVICE_VR_MOJO_BINDINGS" sources = [ "vr_service.mojom", ] public_deps = [ "//gpu/ipc/common:interfaces", "//mojo/common:common_custom_types", "//ui/gfx/geometry/mojo", ] }