# 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/android/rules.gni")
import("//chrome/common/features.gni")
import("//device/vr/buildflags/buildflags.gni")
import("//testing/test.gni")

assert(enable_vr)

static_library("vr_android") {
  defines = []

  sources = [
    "android_ui_gesture_target.cc",
    "android_ui_gesture_target.h",
    "android_vsync_helper.cc",
    "android_vsync_helper.h",
    "autocomplete_controller.cc",
    "autocomplete_controller.h",
    "browser_renderer_factory.cc",
    "browser_renderer_factory.h",
    "cardboard_input_delegate.cc",
    "cardboard_input_delegate.h",
    "gl_browser_interface.h",
    "gvr_graphics_delegate.cc",
    "gvr_graphics_delegate.h",
    "gvr_input_delegate.cc",
    "gvr_input_delegate.h",
    "gvr_keyboard_delegate.cc",
    "gvr_keyboard_delegate.h",
    "gvr_keyboard_shim.cc",
    "gvr_scheduler_delegate.cc",
    "gvr_scheduler_delegate.h",
    "gvr_util.cc",
    "gvr_util.h",
    "mailbox_to_surface_bridge.cc",
    "mailbox_to_surface_bridge.h",
    "metrics_util_android.cc",
    "metrics_util_android.h",
    "register_jni.h",
    "scoped_gpu_trace.cc",
    "scoped_gpu_trace.h",
    "vr_controller.cc",
    "vr_controller.h",
    "vr_core_info.cc",
    "vr_core_info.h",
    "vr_gl_thread.cc",
    "vr_gl_thread.h",
    "vr_input_connection.cc",
    "vr_input_connection.h",
    "vr_module_provider.cc",
    "vr_module_provider.h",
    "vr_shell.cc",
    "vr_shell.h",
    "vr_shell_delegate.cc",
    "vr_shell_delegate.h",
    "web_xr_presentation_state.cc",
    "web_xr_presentation_state.h",
  ]

  if (enable_arcore) {
    sources += [
      "arcore_device/ar_image_transport.cc",
      "arcore_device/ar_image_transport.h",
      "arcore_device/ar_renderer.cc",
      "arcore_device/ar_renderer.h",
      "arcore_device/arcore.h",
      "arcore_device/arcore_device.cc",
      "arcore_device/arcore_device.h",
      "arcore_device/arcore_device_provider.cc",
      "arcore_device/arcore_device_provider.h",
      "arcore_device/arcore_gl.cc",
      "arcore_device/arcore_gl.h",
      "arcore_device/arcore_gl_thread.cc",
      "arcore_device/arcore_gl_thread.h",
      "arcore_device/arcore_impl.cc",
      "arcore_device/arcore_impl.h",
      "arcore_device/arcore_install_utils.h",
      "arcore_device/arcore_java_utils.cc",
      "arcore_device/arcore_java_utils.h",
      "arcore_device/arcore_permission_helper.cc",
      "arcore_device/arcore_permission_helper.h",
      "arcore_device/arcore_shim.cc",
      "arcore_device/arcore_shim.h",
    ]
  }

  deps = [
    ":vr_jni_headers",
    "//base",
    "//cc",
    "//chrome/browser/ui:ui",
    "//chrome/browser/vr:vr_common",
    "//chrome/common:common",
    "//chrome/common:constants",
    "//components/omnibox/browser",
    "//components/rappor",
    "//components/search_engines:search_engines",
    "//content/public/browser",
    "//content/public/common",
    "//device/gamepad",
    "//device/vr",
    "//device/vr/buildflags:buildflags",
    "//services/device/public/mojom",
    "//services/metrics/public/cpp:ukm_builders",
    "//services/ws/public/cpp/gpu",
    "//third_party/gvr-android-sdk:gvr_shim",
    "//ui/android",
    "//ui/base",
    "//ui/display",
    "//ui/gl",
    "//ui/gl/init",
  ]

  if (enable_arcore) {
    deps += [ ":ar_jni_headers" ]
  }

  public_deps = [
    "//device/vr/public/mojom",
  ]

  libs = [ "android" ]

  configs += [
    "//third_party/gvr-android-keyboard:kb_config",
    "//third_party/gvr-android-sdk:libgvr_config",
  ]

  if (enable_arcore) {
    configs += [ "//third_party/arcore-android-sdk:libarcore_config" ]
  }
}

android_library("java") {
  java_files = [
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/AndroidUiGestureTarget.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/AndroidVSyncHelper.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/EmptySniffingVrViewContainer.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/keyboard/BuildConstants.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/keyboard/GvrKeyboardLoaderClient.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/keyboard/TextEditAction.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/keyboard/VrInputMethodManagerWrapper.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/NoopCanvas.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/OnDispatchTouchEventCallback.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrAlertDialog.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrCancelAnimationActivity.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrCompositorSurfaceManager.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrCoreInfo.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrCoreVersionChecker.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrDaydreamApi.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrDelegateImpl.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrDelegateProviderImpl.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrDialog.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrDialogManager.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrFeedbackStatus.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrFirstRunActivity.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrInputConnection.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrIntentUtils.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrModalPresenter.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrPopupWindow.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrShell.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrShellDelegate.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrToast.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrToastManager.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrUiWidgetFactory.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrViewContainer.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrWindowAndroid.java",
  ]

  classpath_deps = [
    "//base:base_java",
    "//chrome/android:chrome_java",
    "//components/policy/android:policy_java",
    "//content/public/android:content_java",
    "//third_party/android_deps:android_arch_lifecycle_common_java",
    "//third_party/android_deps:android_arch_lifecycle_runtime_java",
    "//third_party/android_deps:android_support_annotations_java",
    "//third_party/android_deps:android_support_v7_appcompat_java",
    "//third_party/gvr-android-keyboard:kb_java",
    "//third_party/gvr-android-sdk:gvr_common_java",
    "//ui/android:ui_full_java",
    "//ui/android:ui_utils_java",
  ]
}

generate_jni("vr_jni_headers") {
  sources = [
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/AndroidUiGestureTarget.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/AndroidVSyncHelper.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrCoreInfo.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrInputConnection.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrModuleProvider.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrShell.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/VrShellDelegate.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/keyboard/GvrKeyboardLoaderClient.java",
    "//chrome/android/java/src/org/chromium/chrome/browser/vr/keyboard/TextEditAction.java",
  ]
  jni_package = "vr"
}

if (enable_arcore) {
  generate_jni("ar_jni_headers") {
    sources = [
      "//chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreJavaUtils.java",
    ]
    jni_package = "vr"
  }
}

if (current_toolchain == default_toolchain) {
  generate_jni_registration("jni_registration") {
    target = ":java"
    header_output = "$target_gen_dir/${target_name}.h"
    namespace = "vr"
  }
}

test("vr_android_unittests") {
  sources = [
    "arcore_device/arcore_device_unittest.cc",
    "arcore_device/fake_arcore.cc",
    "arcore_device/fake_arcore.h",
    "register_jni.cc",
    "test/ar_test_suite.cc",
    "test/ar_test_suite.h",
    "test/run_all_unittests.cc",
  ]

  libs = [ "android" ]

  deps = [
    ":jni_registration",
    ":vr_android",
    "//base/test:test_support",
    "//chrome/browser:browser",
    "//components/translate/core/language_detection:language_detection",
    "//device/vr:fakes",
    "//device/vr/public/mojom",
    "//mojo/core/embedder",
    "//mojo/public/cpp/bindings",
    "//services/network:test_support",
    "//testing/android/native_test:native_test_native_code",
    "//testing/gmock",
    "//testing/gtest:gtest",
  ]
}
