1load("//bazel:flags.bzl", "bool_flag", "selects", "string_flag_with_values") 2load("//bazel:skia_rules.bzl", "exports_files_legacy", "generate_cpp_files_for_headers", "select_multi", "skia_cc_deps", "skia_cc_library", "skia_filegroup", "split_srcs_and_hdrs") 3 4package( 5 default_applicable_licenses = ["//:license"], 6) 7 8licenses(["notice"]) 9 10exports_files_legacy() 11 12# In own group for exporting to //gn/gpu.gni:skia_shared_gpu_sources. 13SHARED_FILES = [ 14 "AsyncReadTypes.h", 15 "AtlasTypes.cpp", 16 "AtlasTypes.h", 17 "Blend.cpp", 18 "Blend.h", 19 "BlendFormula.cpp", 20 "BlendFormula.h", 21 "BlurUtils.cpp", 22 "BlurUtils.h", 23 "BufferWriter.h", 24 "DataUtils.cpp", 25 "DataUtils.h", 26 "DitherUtils.cpp", 27 "DitherUtils.h", 28 "GpuRefCnt.h", 29 "GpuTypesPriv.h", 30 "KeyBuilder.h", 31 "MutableTextureStatePriv.h", 32 "MutableTextureState.cpp", 33 "PipelineUtils.cpp", 34 "PipelineUtils.h", 35 "Rectanizer.h", 36 "RectanizerPow2.cpp", 37 "RectanizerPow2.h", 38 "RectanizerSkyline.cpp", 39 "RectanizerSkyline.h", 40 "RefCntedCallback.h", 41 "ResourceKey.cpp", 42 "ResourceKey.h", 43 "SkBackingFit.cpp", 44 "SkBackingFit.h", 45 "Swizzle.cpp", 46 "Swizzle.h", 47 "SwizzlePriv.h", 48 "TiledTextureUtils.cpp", 49 "TiledTextureUtils.h", 50] 51 52split_srcs_and_hdrs( 53 name = "shared", 54 files = SHARED_FILES, 55) 56 57CORE_FILES = [ 58 "ShaderErrorHandler.cpp", 59 "SkRenderEngineAbortf.h", 60] 61 62split_srcs_and_hdrs( 63 name = "core", 64 files = CORE_FILES, 65) 66 67string_flag_with_values( 68 name = "gpu_backend", 69 multiple = True, 70 values = [ 71 "gl_ganesh", 72 "metal_ganesh", 73 "vulkan_ganesh", 74 "dawn_graphite", 75 "metal_graphite", 76 "vulkan_graphite", 77 ], 78) 79 80string_flag_with_values( 81 name = "with_gl_standard", 82 values = [ 83 "gles_standard", 84 "gl_standard", 85 "webgl_standard", 86 ], 87) 88 89selects.config_setting_group( 90 name = "has_ganesh_backend", 91 match_any = [ 92 ":gl_ganesh", 93 ":metal_ganesh", 94 ":vulkan_ganesh", 95 ], 96 visibility = ["//:__subpackages__"], 97) 98 99selects.config_setting_group( 100 name = "has_graphite_backend", 101 match_any = [ 102 ":dawn_graphite", 103 ":metal_graphite", 104 ":vulkan_graphite", 105 ], 106 visibility = ["//:__subpackages__"], 107) 108 109selects.config_setting_group( 110 name = "vulkan_with_vma", 111 match_all = [ 112 ":vulkan_ganesh", 113 ":use_vulkan_memory_allocator_true", 114 ], 115 visibility = ["//:__subpackages__"], 116) 117 118bool_flag( 119 # Users should use :vulkan_with_vma directly 120 name = "use_vulkan_memory_allocator", 121 default = True, 122) 123 124bool_flag( 125 name = "enable_gpu_test_utils", 126 default = False, 127) 128 129selects.config_setting_group( 130 name = "has_dawn", 131 match_any = [ 132 ":dawn_graphite", 133 ], 134) 135 136selects.config_setting_group( 137 name = "has_metal", 138 match_any = [ 139 ":metal_ganesh", 140 ":metal_graphite", 141 ], 142) 143 144selects.config_setting_group( 145 name = "has_vulkan", 146 match_any = [ 147 ":vulkan_ganesh", 148 ":vulkan_graphite", 149 ], 150) 151 152skia_filegroup( 153 name = "srcs", 154 srcs = [ 155 ":core_srcs", 156 ":shared_srcs", 157 "//src/gpu/ganesh:srcs", 158 "//src/gpu/tessellate:srcs", 159 ] + select( 160 { 161 ":has_vulkan": ["//src/gpu/vk:srcs"], 162 "@platforms//os:android": ["//src/gpu/android:shared_android_srcs"], 163 "//conditions:default": [], 164 }, 165 ), 166 visibility = ["//src:__pkg__"], 167) 168 169skia_filegroup( 170 name = "objc_srcs", 171 srcs = [ 172 "//src/gpu/ganesh:objc_srcs", 173 "//src/gpu/mtl:shared_objc_srcs", 174 ], 175 visibility = ["//src:__pkg__"], 176) 177 178skia_filegroup( 179 name = "private_hdrs", 180 srcs = [ 181 ":core_hdrs", 182 ":shared_hdrs", 183 "//src/gpu/ganesh:private_hdrs", 184 "//src/gpu/tessellate:private_hdrs", 185 ] + select_multi( 186 { 187 ":has_vulkan": ["//src/gpu/vk:private_hdrs"], 188 ":has_metal": ["//src/gpu/mtl:private_hdrs"], 189 }, 190 ), 191 visibility = ["//src:__pkg__"], 192) 193 194skia_cc_deps( 195 name = "deps", 196 visibility = ["//src:__pkg__"], 197 deps = [ 198 "//src/gpu/ganesh:deps", 199 ] + select_multi( 200 { 201 ":has_vulkan": ["//src/gpu/vk:deps"], 202 }, 203 ), 204) 205 206skia_cc_library( 207 name = "gpu", 208 srcs = [ 209 ":core_srcs", 210 ":shared_srcs", 211 "//src/gpu/tessellate:private_hdrs", 212 "//src/gpu/tessellate:srcs", 213 "//src/utils:shader_utils_srcs", 214 ], 215 hdrs = [ 216 ":core_hdrs", 217 ":shared_hdrs", 218 "//include/gpu:shared_gpu_hdrs", 219 "//src/utils:shader_utils_hdrs", 220 ], 221 visibility = [ 222 "//src/gpu:__subpackages__", 223 "//src/sksl/codegen:__pkg__", 224 ], 225 deps = [ 226 "//:core", 227 "//src/base", 228 "//src/core:core_priv", 229 ], 230) 231 232generate_cpp_files_for_headers( 233 name = "headers_to_compile", 234 headers = [ 235 "AsyncReadTypes.h", 236 "BufferWriter.h", 237 "GpuRefCnt.h", 238 "GpuTypesPriv.h", 239 "KeyBuilder.h", 240 "MutableTextureStatePriv.h", 241 "SkRenderEngineAbortf.h", 242 "SwizzlePriv.h", 243 ], 244) 245