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

source_set("openvr_headers") {
  sources = [
    "src/headers/openvr.h",
    "src/headers/openvr_capi.h",
    "src/headers/openvr_driver.h",
    "src/src/ivrclientcore.h",
    "src/src/vrcommon/dirtools_public.h",
    "src/src/vrcommon/envvartools_public.h",
    "src/src/vrcommon/hmderrors_public.h",
    "src/src/vrcommon/pathtools_public.h",
    "src/src/vrcommon/sharedlibtools_public.h",
    "src/src/vrcommon/strtools_public.h",
    "src/src/vrcommon/vrpathregistry_public.h",
  ]
}

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/headers/openvr.h",
    "src/headers/openvr_capi.h",
    "src/headers/openvr_driver.h",
    "src/src/ivrclientcore.h",
    "src/src/openvr_api_public.cpp",
    "src/src/vrcommon/dirtools_public.cpp",
    "src/src/vrcommon/dirtools_public.h",
    "src/src/vrcommon/envvartools_public.cpp",
    "src/src/vrcommon/envvartools_public.h",
    "src/src/vrcommon/hmderrors_public.cpp",
    "src/src/vrcommon/hmderrors_public.h",
    "src/src/vrcommon/pathtools_public.cpp",
    "src/src/vrcommon/pathtools_public.h",
    "src/src/vrcommon/sharedlibtools_public.cpp",
    "src/src/vrcommon/sharedlibtools_public.h",
    "src/src/vrcommon/strtools_public.cpp",
    "src/src/vrcommon/strtools_public.h",
    "src/src/vrcommon/vrpathregistry_public.cpp",
    "src/src/vrcommon/vrpathregistry_public.h",
  ]

  public_deps = [
    "//third_party/jsoncpp",
  ]

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

  include_dirs = [
    "src/headers",
    "src/src",
    "src/src/vrcommon",
    "//third_party/jsoncpp/source/include",
  ]
}
