xref: /aosp_15_r20/external/tensorflow/third_party/vulkan_headers/vulkan_headers.BUILD (revision b6fb3261f9314811a0f4371741dbb8839866f948)
1package(default_visibility = ["//visibility:public"])
2
3licenses(["notice"])
4
5exports_files(["LICENSE"])
6
7VULKAN_HDRS = [
8    "include/vulkan/vk_platform.h",
9    "include/vulkan/vk_sdk_platform.h",
10    "include/vulkan/vulkan.h",
11    "include/vulkan/vulkan_core.h",
12]
13
14VULKAN_TEXTUAL_HDRS = [
15    "include/vulkan/vulkan_android.h",
16    "include/vulkan/vulkan_fuchsia.h",
17    "include/vulkan/vulkan_ggp.h",
18    "include/vulkan/vulkan_ios.h",
19    "include/vulkan/vulkan_macos.h",
20    "include/vulkan/vulkan_metal.h",
21    "include/vulkan/vulkan_vi.h",
22    "include/vulkan/vulkan_wayland.h",
23    "include/vulkan/vulkan_win32.h",
24    "include/vulkan/vulkan_xcb.h",
25    "include/vulkan/vulkan_xlib.h",
26    "include/vulkan/vulkan_xlib_xrandr.h",
27]
28
29# The main vulkan public headers for applications. This excludes headers
30# designed for ICDs and layers.
31cc_library(
32    name = "vulkan_headers",
33    hdrs = VULKAN_HDRS,
34    includes = ["include"],
35    textual_hdrs = VULKAN_TEXTUAL_HDRS,
36)
37
38# Like :vulkan_headers but defining VK_NO_PROTOTYPES to disable the
39# inclusion of C function prototypes. Useful if dynamically loading
40# all symbols via dlopen/etc.
41cc_library(
42    name = "vulkan_headers_no_prototypes",
43    hdrs = VULKAN_HDRS,
44    defines = ["VK_NO_PROTOTYPES"],
45    includes = ["include"],
46    textual_hdrs = VULKAN_TEXTUAL_HDRS,
47)
48
49# Provides a C++-ish interface to Vulkan. A rational set of defines are also
50# set and transitively applied to any callers, as well as providing the
51# necessary storage as the set of defines leaves symbols undefined otherwise.
52cc_library(
53    name = "vulkan_hpp",
54    srcs =
55        select({
56            "@org_tensorflow//tensorflow:macos": [],
57            "@org_tensorflow//tensorflow:ios": [],
58            "//conditions:default": ["tensorflow/vulkan_hpp_dispatch_loader_dynamic.cc"],
59        }),
60    hdrs = ["include/vulkan/vulkan.hpp"],
61    defines = [
62        "VULKAN_HPP_ASSERT=",
63        "VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST",
64        "VULKAN_HPP_NO_EXCEPTIONS",
65        "VULKAN_HPP_TYPESAFE_CONVERSION",
66        "VULKAN_HPP_TYPESAFE_EXPLICIT",
67    ] + select({
68        "@org_tensorflow//tensorflow:macos": [],
69        "@org_tensorflow//tensorflow:ios": [],
70        "//conditions:default": ["VULKAN_HPP_DISPATCH_LOADER_DYNAMIC"],
71    }),
72    includes = ["include"],
73    deps = [":vulkan_headers"],
74)
75