1load("//bazel:skia_rules.bzl", "skia_filegroup", "skia_objc_library", "split_srcs_and_hdrs") 2 3package( 4 default_applicable_licenses = ["//:license"], 5) 6 7licenses(["notice"]) 8 9# A list of files that is included by C++ files, but whose 10# implementation resides in .mm files. The latter may need to 11# be compiled separately (e.g. with Automatic Reference Counting [ARC]). 12skia_filegroup( 13 name = "mtl_cpp_hdrs", 14 srcs = [ 15 "GrMtlCppUtil.h", 16 "GrMtlTrampoline.h", 17 ], 18) 19 20MTL_FILES = [ 21 "GrMtlAttachment.h", 22 "GrMtlAttachment.mm", 23 "GrMtlBackendSemaphore.mm", 24 "GrMtlBackendSurface.mm", 25 "GrMtlBuffer.h", 26 "GrMtlBuffer.mm", 27 "GrMtlCaps.h", 28 "GrMtlCaps.mm", 29 "GrMtlCommandBuffer.h", 30 "GrMtlCommandBuffer.mm", 31 "GrMtlDepthStencil.h", 32 "GrMtlDepthStencil.mm", 33 "GrMtlDirectContext.mm", 34 "GrMtlFramebuffer.h", 35 "GrMtlFramebuffer.mm", 36 "GrMtlGpu.h", 37 "GrMtlGpu.mm", 38 "GrMtlOpsRenderPass.h", 39 "GrMtlOpsRenderPass.mm", 40 "GrMtlPipeline.h", 41 "GrMtlPipelineState.h", 42 "GrMtlPipelineState.mm", 43 "GrMtlPipelineStateBuilder.h", 44 "GrMtlPipelineStateBuilder.mm", 45 "GrMtlPipelineStateDataManager.h", 46 "GrMtlPipelineStateDataManager.mm", 47 "GrMtlRenderCommandEncoder.h", 48 "GrMtlRenderTarget.h", 49 "GrMtlRenderTarget.mm", 50 "GrMtlResourceProvider.h", 51 "GrMtlResourceProvider.mm", 52 "GrMtlSampler.h", 53 "GrMtlSampler.mm", 54 "GrMtlSemaphore.h", 55 "GrMtlSemaphore.mm", 56 "GrMtlTexture.h", 57 "GrMtlTexture.mm", 58 "GrMtlTextureRenderTarget.h", 59 "GrMtlTextureRenderTarget.mm", 60 "GrMtlTrampoline.mm", 61 "GrMtlTypesPriv.h", 62 "GrMtlTypesPriv.mm", 63 "GrMtlUniformHandler.h", 64 "GrMtlUniformHandler.mm", 65 "GrMtlUtil.h", 66 "GrMtlUtil.mm", 67 "GrMtlVaryingHandler.h", 68 "GrMtlVaryingHandler.mm", 69] 70 71split_srcs_and_hdrs( 72 name = "mtl", 73 files = MTL_FILES, 74) 75 76skia_objc_library( 77 name = "ganesh_metal", 78 srcs = [ 79 ":mtl_cpp_hdrs", 80 ":mtl_hdrs", 81 ":mtl_srcs", 82 "//src/gpu/ganesh/surface:mtl_objc_srcs", 83 ], 84 hdrs = [ 85 "//include/gpu:shared_gpu_hdrs", 86 "//include/gpu/ganesh:ganesh_hdrs", 87 "//include/gpu/ganesh/mtl:public_hdrs", 88 "//include/gpu/mtl:public_hdrs", 89 "//include/ports:core_foundation_hdrs", 90 ], 91 copts = ["-fobjc-arc"], 92 defines = ["SK_METAL"], 93 sdk_frameworks = [ 94 "Metal", 95 "MetalKit", 96 "Foundation", 97 ], 98 visibility = ["//:__pkg__"], 99 deps = [ 100 "//:core", 101 "//src/base", 102 "//src/core:core_priv", 103 "//src/gpu", 104 "//src/gpu/ganesh", 105 "//src/gpu/mtl:gpu_mtl", 106 "//src/sksl/codegen:metal", 107 ], 108) 109 110skia_objc_library( 111 name = "ganesh_metal_TEST_UTIL", 112 testonly = True, 113 srcs = [ 114 ":mtl_cpp_hdrs", 115 ":mtl_hdrs", 116 ":mtl_srcs", 117 "//src/gpu/ganesh/surface:mtl_objc_srcs", 118 ], 119 hdrs = [ 120 "//include/gpu:shared_gpu_hdrs", 121 "//include/gpu/ganesh:ganesh_hdrs", 122 "//include/gpu/ganesh/mtl:public_hdrs", 123 "//include/gpu/mtl:public_hdrs", 124 "//include/ports:core_foundation_hdrs", 125 ], 126 copts = ["-fobjc-arc"], 127 defines = ["SK_METAL"], 128 sdk_frameworks = [ 129 "Metal", 130 "MetalKit", 131 "Foundation", 132 ], 133 visibility = ["//tools/window:__pkg__"], 134 deps = [ 135 "//:core", 136 "//src/base", 137 "//src/core:core_priv", 138 "//src/gpu", 139 "//src/gpu/ganesh:ganesh_TEST_UTIL", 140 "//src/gpu/mtl:gpu_mtl", 141 "//src/sksl/codegen:metal", 142 ], 143) 144