# 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("//build/config/features.gni")
import("//mojo/public/tools/bindings/mojom.gni")

if (is_android) {
  import("//build/config/android/rules.gni")  # For generate_jni().
}

if (current_cpu == "arm" || current_cpu == "arm64") {
  component("vr") {
    output_name = "device_vr"

    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_service_impl.cc",
      "vr_service_impl.h",
    ]

    deps = [
      ":mojo_bindings",
      "//base",
      "//mojo/public/cpp/bindings",
      "//ui/gfx",
    ]

    defines = [ "DEVICE_VR_IMPLEMENTATION" ]

    if (is_android) {
      sources += [
        "android/gvr/gvr_delegate.cc",
        "android/gvr/gvr_delegate.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",
      ]

      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" ]
    }
  }

  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",
  ]
}
