# 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.

component("openvr") {
  output_name = "openvr_api"

  configs -= [
    # Some ascii versions of Windows APIs are used in this code.
    "//build/config/win:unicode",
    "//build/config/compiler:chromium_code",
  ]
  configs += [ "//build/config/compiler:no_chromium_code" ]

  # This code can be built using internal OpenVR functionality, but the internal
  # dependencies aren't available to us.
  defines = [
    "VR_API_PUBLIC",
    "JSON_USE_EXCEPTION=0",
  ]

  sources = [
    "src/src/jsoncpp.cpp",
    "src/src/openvr_api_public.cpp",
    "src/src/vrcommon/dirtools_public.cpp",
    "src/src/vrcommon/envvartools_public.cpp",
    "src/src/vrcommon/hmderrors_public.cpp",
    "src/src/vrcommon/pathtools_public.cpp",
    "src/src/vrcommon/sharedlibtools_public.cpp",
    "src/src/vrcommon/strtools_public.cpp",
    "src/src/vrcommon/vrpathregistry_public.cpp",
  ]

  if (target_cpu == "x64" && is_win) {
    defines += [ "WIN64" ]
  }

  include_dirs = [
    "src/headers",
    "src/src",
    "src/src/json",
    "src/src/vrcommon",
  ]
}
