# Copyright 2017 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("//third_party/blink/renderer/modules/modules.gni")

blink_modules_sources("xr") {
  sources = [
    "xr.cc",
    "xr.h",
    "xr_canvas_input_provider.cc",
    "xr_canvas_input_provider.h",
    "xr_coordinate_system.cc",
    "xr_coordinate_system.h",
    "xr_device.cc",
    "xr_device.h",
    "xr_device_pose.cc",
    "xr_device_pose.h",
    "xr_frame.cc",
    "xr_frame.h",
    "xr_frame_of_reference.cc",
    "xr_frame_of_reference.h",
    "xr_frame_provider.cc",
    "xr_frame_provider.h",
    "xr_frame_request_callback_collection.cc",
    "xr_frame_request_callback_collection.h",
    "xr_hit_result.cc",
    "xr_hit_result.h",
    "xr_input_pose.cc",
    "xr_input_pose.h",
    "xr_input_source.cc",
    "xr_input_source.h",
    "xr_input_source_event.cc",
    "xr_input_source_event.h",
    "xr_layer.cc",
    "xr_layer.h",
    "xr_presentation_context.cc",
    "xr_presentation_context.h",
    "xr_ray.cc",
    "xr_ray.h",
    "xr_session.cc",
    "xr_session.h",
    "xr_session_event.cc",
    "xr_session_event.h",
    "xr_stage_bounds.cc",
    "xr_stage_bounds.h",
    "xr_utils.cc",
    "xr_utils.h",
    "xr_view.cc",
    "xr_view.h",
    "xr_viewport.h",
    "xr_webgl_layer.cc",
    "xr_webgl_layer.h",
  ]

  deps = [
    "//device/vr/public/mojom:mojom_blink",
  ]
}
