| # 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.gni") |
| import("//build/buildflag_header.gni") |
| import("//mojo/public/tools/bindings/mojom.gni") |
| |
| if (is_android) { |
| import("//build/config/android/rules.gni") # For generate_jni(). |
| } |
| |
| # Generate a buildflag header for compile-time checking of WebVR support. |
| buildflag_header("features") { |
| header = "features.h" |
| flags = [ |
| "ENABLE_VR=$enable_vr", |
| "ENABLE_OPENVR=$enable_openvr", |
| ] |
| } |
| |
| component("vr") { |
| output_name = "device_vr" |
| |
| sources = [ |
| "vr_export.h", |
| ] |
| defines = [ "DEVICE_VR_IMPLEMENTATION" ] |
| deps = [ |
| ":features", |
| ":mojo_bindings", |
| ] |
| |
| if (!enable_vr) { |
| sources += [ |
| # 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. |
| "empty.cc", |
| ] |
| } else { |
| sources += [ |
| "vr_device.cc", |
| "vr_device.h", |
| "vr_device_manager.cc", |
| "vr_device_manager.h", |
| "vr_device_provider.h", |
| "vr_display_impl.cc", |
| "vr_display_impl.h", |
| "vr_export.h", |
| "vr_math.cc", |
| "vr_math.h", |
| "vr_service_impl.cc", |
| "vr_service_impl.h", |
| "vr_types.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/gvr_delegate.cc", |
| "android/gvr/gvr_delegate.h", |
| "android/gvr/gvr_delegate_provider.cc", |
| "android/gvr/gvr_delegate_provider.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 += [ |
| "//device/gamepad", |
| "//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 += [ "//third_party/openvr:openvr" ] |
| sources += [ |
| "openvr/openvr_device.cc", |
| "openvr/openvr_device_provider.cc", |
| ] |
| } |
| } |
| } |
| |
| if (enable_vr) { |
| static_library("fakes") { |
| testonly = true |
| |
| 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", |
| ] |
| |
| public_deps = [ |
| ":mojo_bindings", |
| ":vr", |
| "//base", |
| "//mojo/public/cpp/bindings", |
| ] |
| } |
| } |
| |
| mojom("mojo_bindings") { |
| sources = [ |
| "vr_service.mojom", |
| ] |
| |
| public_deps = [ |
| "//gpu/ipc/common:interfaces", |
| "//mojo/common:common_custom_types", |
| ] |
| |
| export_class_attribute = "DEVICE_VR_EXPORT" |
| export_define = "DEVICE_VR_IMPLEMENTATION=1" |
| export_header = "device/vr/vr_export.h" |
| } |