• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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