1# Copyright 2019 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//device/vr/buildflags/buildflags.gni")
6
7if (enable_openxr) {
8  source_set("openxr_headers") {
9    sources = [
10      "src/include/openxr/openxr.h",
11      "src/include/openxr/openxr_platform.h",
12      "src/include/openxr/openxr_platform_defines.h",
13      "src/src/common/hex_and_handles.h",
14      "src/src/common/loader_interfaces.h",
15    ]
16
17    public_configs = [ ":config" ]
18  }
19  source_set("openxr") {
20    sources = [
21      "src/include/openxr/openxr.h",
22      "src/include/openxr/openxr_platform.h",
23      "src/include/openxr/openxr_platform_defines.h",
24      "src/src/common/extra_algorithms.h",
25      "src/src/common/filesystem_utils.cpp",
26      "src/src/common/filesystem_utils.hpp",
27      "src/src/common/hex_and_handles.cpp",
28      "src/src/common/hex_and_handles.h",
29      "src/src/common/loader_interfaces.h",
30      "src/src/common/object_info.cpp",
31      "src/src/common/object_info.h",
32      "src/src/common/platform_utils.hpp",
33      "src/src/common/xr_dependencies.h",
34      "src/src/common/xr_linear.h",
35      "src/src/loader/api_layer_interface.cpp",
36      "src/src/loader/api_layer_interface.hpp",
37      "src/src/loader/exception_handling.hpp",
38      "src/src/loader/loader_core.cpp",
39      "src/src/loader/loader_instance.cpp",
40      "src/src/loader/loader_instance.hpp",
41      "src/src/loader/loader_logger.cpp",
42      "src/src/loader/loader_logger.hpp",
43      "src/src/loader/loader_logger_recorders.cpp",
44      "src/src/loader/loader_logger_recorders.hpp",
45      "src/src/loader/loader_platform.hpp",
46      "src/src/loader/manifest_file.cpp",
47      "src/src/loader/manifest_file.hpp",
48      "src/src/loader/runtime_interface.cpp",
49      "src/src/loader/runtime_interface.hpp",
50      "src/src/loader/xr_generated_loader.cpp",
51      "src/src/loader/xr_generated_loader.h",
52      "src/src/xr_generated_dispatch_table.c",
53      "src/src/xr_generated_dispatch_table.h",
54    ]
55
56    include_dirs = [
57      "src/include",
58      "src/src/common",
59      "src/src",
60    ]
61
62    deps = [ "//third_party/jsoncpp" ]
63
64    public_configs = [ ":config" ]
65
66    defines = [
67      "OPENXR_NON_CMAKE_BUILD",
68      "DISABLE_STD_FILESYSTEM",
69    ]
70
71    cflags_cc = [
72      "-Wno-format",
73      "-Wno-microsoft-cast",
74      "-Wno-microsoft-include",
75      "-Wno-unused-function",
76    ]
77  }
78
79  config("config") {
80    # These build define flags need to be set for openxr.h to define
81    # constants related to Windows and D3D.
82    if (is_win) {
83      defines = [
84        "XRLOADER_DISABLE_EXCEPTION_HANDLING",
85        "XR_OS_WINDOWS",
86        "XR_USE_PLATFORM_WIN32",
87        "XR_USE_GRAPHICS_API_D3D11",
88      ]
89    }
90  }
91}
92