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.
50cc_library(
51    name = "vulkan_hpp",
52    hdrs = ["include/vulkan/vulkan.hpp"],
53    defines = ["VULKAN_HPP_NO_EXCEPTIONS"],
54    includes = ["include"],
55    deps = [":vulkan_headers"],
56)
57