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