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