xref: /aosp_15_r20/external/skia/src/gpu/ganesh/mtl/BUILD.bazel (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
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