1cc_library(
2    name = "gfxstream-vulkan-server",
3    srcs = [
4        "BorrowedImageVk.cpp",
5        "BufferVk.cpp",
6        "ColorBufferVk.cpp",
7        "CompositorVk.cpp",
8        "DebugUtilsHelper.cpp",
9        "DeviceOpTracker.cpp",
10        "DisplaySurfaceVk.cpp",
11        "DisplayVk.cpp",
12        "PostWorkerVk.cpp",
13        "RenderThreadInfoVk.cpp",
14        "SwapChainStateVk.cpp",
15        "VkAndroidNativeBuffer.cpp",
16        "VkCommonOperations.cpp",
17        "VkDecoder.cpp",
18        "VkDecoderGlobalState.cpp",
19        "VkDecoderSnapshot.cpp",
20        "VkDecoderSnapshotUtils.cpp",
21        "VkEmulatedPhysicalDeviceMemory.cpp",
22        "VkFormatUtils.cpp",
23        "VkReconstruction.cpp",
24        "VulkanDispatch.cpp",
25        "VulkanHandleMapping.cpp",
26        "VulkanStream.cpp",
27        "vk_util.cpp",
28    ] + glob([
29        "**/*.h",
30        "*.h",
31    ]),
32    hdrs = [
33        "VkDecoderGlobalState.cpp",
34        "VkSubDecoder.cpp",
35    ],
36    copts = [
37        "-Wno-return-type-c-linkage",
38        "-Wno-extern-c-compat",
39    ],
40    defines = [
41        "VK_GFXSTREAM_STRUCTURE_TYPE_EXT",
42        "EMUGL_BUILD",
43        "BUILDING_EMUGL_COMMON_SHARED",
44        "GFXSTREAM_ENABLE_HOST_GLES=1",
45    ] + select({
46        "@platforms//os:macos": [
47            "VK_USE_PLATFORM_METAL_EXT",
48            "VK_USE_PLATFORM_MACOS_MVK",
49        ],
50        "@platforms//os:windows": ["VK_USE_PLATFORM_WIN32_KHR"],
51        "@platforms//os:linux": [],
52        "//conditions:default": [],
53    }),
54    includes = [
55        ".",
56        "cereal",
57        "cereal/common",
58    ],
59    visibility = ["//visibility:public"],
60    deps = [
61        # "//external/angle:angle-headers",
62        "//hardware/google/aemu/snapshot:aemu-snapshot",
63        "//hardware/google/gfxstream/common/vulkan:gfxstream_vulkan_headers",
64        "//hardware/google/gfxstream/host:gfxstream-compressedTextures",
65        "//hardware/google/gfxstream/host:gfxstream_host_headers",
66        "//hardware/google/gfxstream/host/apigen-codec-common",
67        "//hardware/google/gfxstream/host/gl:gfxstream-gl-host-common",
68        "//hardware/google/gfxstream/host/gl:gl_headers",
69        "//hardware/google/gfxstream/host/vulkan:OpenglRender_vulkan_cereal",
70        "//hardware/google/gfxstream/host/vulkan:emulated_textures",
71        "//hardware/google/gfxstream/third-party/glm",
72        "//hardware/google/gfxstream/third-party/renderdoc",
73        "//hardware/google/gfxstream/utils:gfxstream_utils",
74    ],
75)
76
77cc_library(
78    name = "OpenglRender_vulkan_cereal",
79    srcs = [
80        "cereal/common/goldfish_vk_deepcopy.cpp",
81        "cereal/common/goldfish_vk_dispatch.cpp",
82        "cereal/common/goldfish_vk_extension_structs.cpp",
83        "cereal/common/goldfish_vk_marshaling.cpp",
84        "cereal/common/goldfish_vk_reserved_marshaling.cpp",
85        "cereal/common/goldfish_vk_transform.cpp",
86    ] + glob([
87        "**/*.h",
88        "*.h",
89    ]),
90    defines = [
91        "EMUGL_BUILD",
92        "BUILDING_EMUGL_COMMON_SHARED",
93        "VK_GFXSTREAM_STRUCTURE_TYPE_EXT",
94        "VK_GOOGLE_gfxstream",
95    ] + select({
96        "@platforms//os:macos": [
97            "VK_USE_PLATFORM_METAL_EXT",
98            "VK_USE_PLATFORM_MACOS_MVK",
99        ],
100        "@platforms//os:windows": ["VK_USE_PLATFORM_WIN32_KHR"],
101        "@platforms//os:linux": [],
102        "//conditions:default": [],
103    }),
104    includes = [
105        ".",
106        "cereal/common",
107    ],
108    deps = [
109        "//hardware/google/aemu/base:aemu-base-headers",
110        "//hardware/google/aemu/host-common:aemu-host-common-headers",
111        "//hardware/google/gfxstream:gfxstream-gl-host-common-headers",
112        "//hardware/google/gfxstream/common/vulkan:gfxstream_vulkan_headers",
113        "//hardware/google/gfxstream/host:gfxstream_host_headers",
114        "//hardware/google/gfxstream/host/features:gfxstream_features",
115        "//hardware/google/gfxstream/utils:gfxstream_utils",
116    ],
117)
118
119cc_library(
120    name = "emulated_textures",
121    srcs = [
122        "emulated_textures/AstcTexture.cpp",
123        "emulated_textures/CompressedImageInfo.cpp",
124        "emulated_textures/GpuDecompressionPipeline.cpp",
125    ] + glob([
126        "**/*.h",
127        "**/*.inl",
128    ]),
129    defines = [
130        "EMUGL_BUILD",
131        "BUILDING_EMUGL_COMMON_SHARED",
132        "VK_GFXSTREAM_STRUCTURE_TYPE_EXT",
133        "VK_GOOGLE_gfxstream",
134    ] + select({
135        "@platforms//os:macos": [
136            "VK_USE_PLATFORM_METAL_EXT",
137            "VK_USE_PLATFORM_MACOS_MVK",
138        ],
139        "@platforms//os:windows": ["VK_USE_PLATFORM_WIN32_KHR"],
140        "@platforms//os:linux": [],
141        "//conditions:default": [],
142    }),
143    includes = [
144        ".",
145        "cereal/common",
146    ],
147    deps = [
148        "//hardware/google/aemu/host-common:aemu-host-common-headers",
149        "//hardware/google/gfxstream:gfxstream-gl-host-common-headers",
150        "//hardware/google/gfxstream/common/vulkan:gfxstream_vulkan_headers",
151        "//hardware/google/gfxstream/host:gfxstream_host_headers",
152        "//hardware/google/gfxstream/utils:gfxstream_utils",
153    ],
154)
155