• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("//bazel:skia_rules.bzl", "exports_files_legacy", "generate_cpp_files_for_headers", "select_multi", "skia_cc_deps", "skia_cc_library", "skia_filegroup", "split_srcs_and_hdrs")
2
3package(
4    default_applicable_licenses = ["//:license"],
5)
6
7licenses(["notice"])
8
9exports_files_legacy()
10
11# In separate groups for exporting to sksl.gni:skslc_deps.
12SKSLC_FILES = [
13    "GrMemoryPool.cpp",
14    "GrMemoryPool.h",
15]
16
17split_srcs_and_hdrs(
18    name = "core_skslc",
19    files = SKSLC_FILES,
20)
21
22CORE_FILES = [
23    "ClipStack.cpp",
24    "ClipStack.h",
25    "Device.cpp",
26    "Device_drawTexture.cpp",
27    "Device.h",
28    "GrAppliedClip.h",
29    "GrAttachment.cpp",
30    "GrAttachment.h",
31    "GrAuditTrail.cpp",
32    "GrAuditTrail.h",
33    "GrAutoLocaleSetter.h",
34    "GrBackendSemaphore.cpp",
35    "GrBackendSemaphorePriv.h",
36    "GrBackendSurface.cpp",
37    "GrBackendSurfacePriv.h",
38    "GrBackendTextureImageGenerator.cpp",
39    "GrBackendTextureImageGenerator.h",
40    "GrBackendUtils.cpp",
41    "GrBackendUtils.h",
42    "GrBaseContextPriv.h",
43    "GrBlurUtils.cpp",
44    "GrBlurUtils.h",
45    "GrBuffer.h",
46    "GrBufferAllocPool.cpp",
47    "GrBufferAllocPool.h",
48    "GrBufferTransferRenderTask.cpp",
49    "GrBufferTransferRenderTask.h",
50    "GrBufferUpdateRenderTask.cpp",
51    "GrBufferUpdateRenderTask.h",
52    "GrCaps.cpp",
53    "GrCaps.h",
54    "GrCanvas.cpp",
55    "GrCanvas.h",
56    "GrClientMappedBufferManager.cpp",
57    "GrClientMappedBufferManager.h",
58    "GrClip.h",
59    "GrColor.h",
60    "GrColorInfo.cpp",
61    "GrColorInfo.h",
62    "GrColorSpaceXform.cpp",
63    "GrColorSpaceXform.h",
64    "GrContextThreadSafeProxy.cpp",
65    "GrContextThreadSafeProxyPriv.h",
66    "GrContext_Base.cpp",
67    "GrCopyRenderTask.cpp",
68    "GrCopyRenderTask.h",
69    "GrCpuBuffer.h",
70    "GrDDLContext.cpp",
71    "GrDDLTask.cpp",
72    "GrDDLTask.h",
73    "GrDataUtils.cpp",
74    "GrDataUtils.h",
75    "GrDefaultGeoProcFactory.cpp",
76    "GrDefaultGeoProcFactory.h",
77    "GrDeferredProxyUploader.h",
78    "GrDeferredUpload.h",
79    "GrDeferredDisplayList.cpp",
80    "GrDeferredDisplayListPriv.h",
81    "GrDeferredDisplayListRecorder.cpp",
82    "GrDirectContext.cpp",
83    "GrDirectContextPriv.cpp",
84    "GrDirectContextPriv.h",
85    "GrDistanceFieldGenFromVector.cpp",
86    "GrDistanceFieldGenFromVector.h",
87    "GrDrawIndirectCommand.h",
88    "GrDrawOpAtlas.cpp",
89    "GrDrawOpAtlas.h",
90    "GrDrawOpTest.cpp",
91    "GrDrawOpTest.h",
92    "GrDrawingManager.cpp",
93    "GrDrawingManager.h",
94    "GrDriverBugWorkarounds.cpp",
95    "GrDstProxyView.h",
96    "GrDynamicAtlas.cpp",
97    "GrDynamicAtlas.h",
98    "GrEagerVertexAllocator.cpp",
99    "GrEagerVertexAllocator.h",
100    "GrFPArgs.h",
101    "GrFixedClip.cpp",
102    "GrFixedClip.h",
103    "GrFragmentProcessor.cpp",
104    "GrFragmentProcessor.h",
105    "GrFragmentProcessors.cpp",
106    "GrFragmentProcessors.h",
107    "GrGeometryProcessor.cpp",
108    "GrGeometryProcessor.h",
109    "GrGpu.cpp",
110    "GrGpu.h",
111    "GrGpuBuffer.cpp",
112    "GrGpuBuffer.h",
113    "GrGpuResource.cpp",
114    "GrGpuResource.h",
115    "GrGpuResourceCacheAccess.h",
116    "GrGpuResourcePriv.h",
117    "GrHashMapWithCache.h",
118    "GrImageContext.cpp",
119    "GrImageContextPriv.h",
120    "GrImageInfo.cpp",
121    "GrImageInfo.h",
122    "GrManagedResource.cpp",
123    "GrManagedResource.h",
124    "GrMeshBuffers.cpp",
125    "GrMeshBuffers.h",
126    "GrMeshDrawTarget.cpp",
127    "GrMeshDrawTarget.h",
128    "GrNativeRect.h",
129    "GrNonAtomicRef.h",
130    "GrOnFlushResourceProvider.cpp",
131    "GrOnFlushResourceProvider.h",
132    "GrOpFlushState.cpp",
133    "GrOpFlushState.h",
134    "GrOpsRenderPass.cpp",
135    "GrOpsRenderPass.h",
136    "GrOpsTypes.h",
137    "GrPaint.cpp",
138    "GrPaint.h",
139    "GrPersistentCacheUtils.cpp",
140    "GrPersistentCacheUtils.h",
141    "GrPipeline.cpp",
142    "GrPipeline.h",
143    "GrPixmap.h",
144    "GrProcessor.cpp",
145    "GrProcessor.h",
146    "GrProcessorAnalysis.cpp",
147    "GrProcessorAnalysis.h",
148    "GrProcessorSet.cpp",
149    "GrProcessorSet.h",
150    "GrProcessorUnitTest.cpp",
151    "GrProcessorUnitTest.h",
152    "GrProgramDesc.cpp",
153    "GrProgramDesc.h",
154    "GrProgramInfo.cpp",
155    "GrProgramInfo.h",
156    "GrPromiseImageTexture.cpp",
157    "GrProxyProvider.cpp",
158    "GrProxyProvider.h",
159    "GrRecordingContext.cpp",
160    "GrRecordingContextPriv.cpp",
161    "GrRecordingContextPriv.h",
162    "GrRenderTarget.cpp",
163    "GrRenderTarget.h",
164    "GrRenderTargetProxy.cpp",
165    "GrRenderTargetProxy.h",
166    "GrRenderTask.cpp",
167    "GrRenderTask.h",
168    "GrRenderTaskCluster.cpp",
169    "GrRenderTaskCluster.h",
170    "GrResourceAllocator.cpp",
171    "GrResourceAllocator.h",
172    "GrResourceCache.cpp",
173    "GrResourceCache.h",
174    "GrResourceHandle.h",
175    "GrResourceProvider.cpp",
176    "GrResourceProvider.h",
177    "GrResourceProviderPriv.h",
178    "GrRingBuffer.cpp",
179    "GrRingBuffer.h",
180    "GrSPIRVUniformHandler.cpp",
181    "GrSPIRVUniformHandler.h",
182    "GrSPIRVVaryingHandler.cpp",
183    "GrSPIRVVaryingHandler.h",
184    "GrSWMaskHelper.cpp",
185    "GrSWMaskHelper.h",
186    "GrSamplerState.h",
187    "GrScissorState.h",
188    "GrSemaphore.h",
189    "GrShaderCaps.cpp",
190    "GrShaderCaps.h",
191    "GrShaderVar.cpp",
192    "GrShaderVar.h",
193    "GrSimpleMesh.h",
194    "GrStagingBufferManager.cpp",
195    "GrStagingBufferManager.h",
196    "GrStencilSettings.cpp",
197    "GrStencilSettings.h",
198    "GrStyle.cpp",
199    "GrStyle.h",
200    "GrSurface.cpp",
201    "GrSurface.h",
202    "GrSurfaceCharacterization.cpp",
203    "GrSurfaceProxy.cpp",
204    "GrSurfaceProxy.h",
205    "GrSurfaceProxyPriv.h",
206    "GrSurfaceProxyView.cpp",
207    "GrSurfaceProxyView.h",
208    "GrTestUtils.cpp",
209    "GrTestUtils.h",
210    "GrTTopoSort.h",
211    "GrTexture.cpp",
212    "GrTexture.h",
213    "GrTextureProxy.cpp",
214    "GrTextureProxy.h",
215    "GrTextureProxyCacheAccess.h",
216    "GrTextureProxyPriv.h",
217    "GrTextureRenderTargetProxy.cpp",
218    "GrTextureRenderTargetProxy.h",
219    "GrTextureResolveManager.h",
220    "GrTextureResolveRenderTask.cpp",
221    "GrTextureResolveRenderTask.h",
222    "GrThreadSafeCache.cpp",
223    "GrThreadSafeCache.h",
224    "GrThreadSafePipelineBuilder.cpp",
225    "GrThreadSafePipelineBuilder.h",
226    "GrTracing.h",
227    "GrTransferFromRenderTask.cpp",
228    "GrTransferFromRenderTask.h",
229    "GrUniformDataManager.cpp",
230    "GrUniformDataManager.h",
231    "GrUserStencilSettings.h",
232    "GrUtil.cpp",
233    "GrUtil.h",
234    "GrVertexChunkArray.cpp",
235    "GrVertexChunkArray.h",
236    "GrWaitRenderTask.cpp",
237    "GrWaitRenderTask.h",
238    "GrWindowRectangles.h",
239    "GrWindowRectsState.h",
240    "GrWritePixelsRenderTask.cpp",
241    "GrWritePixelsRenderTask.h",
242    "GrXferProcessor.cpp",
243    "GrXferProcessor.h",
244    "GrYUVABackendTextures.cpp",
245    "GrYUVATextureProxies.cpp",
246    "GrYUVATextureProxies.h",
247    "PathRenderer.cpp",
248    "PathRenderer.h",
249    "PathRendererChain.cpp",
250    "PathRendererChain.h",
251    "SkGr.cpp",
252    "SkGr.h",
253    "StencilClip.h",
254    "StencilMaskHelper.cpp",
255    "StencilMaskHelper.h",
256    "SurfaceContext.cpp",
257    "SurfaceContext.h",
258    "SurfaceDrawContext.cpp",
259    "SurfaceDrawContext.h",
260    "SurfaceFillContext.cpp",
261    "SurfaceFillContext.h",
262    "TestFormatColorTypeCombination.h",
263]
264
265split_srcs_and_hdrs(
266    name = "core",
267    files = CORE_FILES,
268)
269
270skia_filegroup(
271    name = "android_srcs",
272    srcs = [
273        "GrAHardwareBufferImageGenerator.cpp",
274        "GrAHardwareBufferImageGenerator.h",
275        "GrAHardwareBufferUtils.cpp",
276    ],
277)
278
279skia_filegroup(
280    name = "srcs",
281    srcs = [
282        ":android_srcs",
283        ":core_skslc_srcs",
284        ":core_srcs",
285        "//src/gpu/ganesh/effects:srcs",
286        "//src/gpu/ganesh/geometry:srcs",
287        "//src/gpu/ganesh/glsl:srcs",
288        "//src/gpu/ganesh/gradients:srcs",
289        "//src/gpu/ganesh/image:srcs",
290        "//src/gpu/ganesh/mock:srcs",  # TODO(kjlubick, egdaniel) should this be test only?
291        "//src/gpu/ganesh/ops:srcs",
292        "//src/gpu/ganesh/surface:srcs",
293        "//src/gpu/ganesh/tessellate:srcs",
294        "//src/gpu/ganesh/text:srcs",
295    ] + select_multi(
296        {
297            "//src/gpu:gl_ganesh": ["//src/gpu/ganesh/gl:srcs"],
298            "//src/gpu:vulkan_ganesh": ["//src/gpu/ganesh/vk:srcs"],
299            "@platforms//os:android": ["//src/gpu/ganesh/surface:android_srcs"],
300            # TODO(kjlubick) d3d backend
301        },
302    ),
303    visibility = ["//src/gpu:__pkg__"],
304)
305
306skia_filegroup(
307    name = "objc_srcs",
308    srcs = select_multi(
309        {
310            "//src/gpu:metal_ganesh": [
311                "//src/gpu/ganesh/mtl:objc_srcs",
312                "//src/gpu/ganesh/surface:mtl_objc_srcs",
313            ],
314        },
315    ),
316    visibility = ["//src/gpu:__pkg__"],
317)
318
319skia_filegroup(
320    name = "private_hdrs",
321    srcs = [
322        ":core_hdrs",
323        ":core_skslc_hdrs",
324        "//src/gpu/ganesh/effects:private_hdrs",
325        "//src/gpu/ganesh/geometry:private_hdrs",
326        "//src/gpu/ganesh/glsl:private_hdrs",
327        "//src/gpu/ganesh/gradients:private_hdrs",
328        "//src/gpu/ganesh/image:private_hdrs",
329        "//src/gpu/ganesh/mock:private_hdrs",  # TODO(kjlubick, egdaniel) should this be test only?
330        "//src/gpu/ganesh/ops:private_hdrs",
331        "//src/gpu/ganesh/surface:private_hdrs",
332        "//src/gpu/ganesh/tessellate:private_hdrs",
333        "//src/gpu/ganesh/text:private_hdrs",
334    ] + select_multi(
335        {
336            "//src/gpu:gl_ganesh": ["//src/gpu/ganesh/gl:private_hdrs"],
337            "//src/gpu:vulkan_ganesh": ["//src/gpu/ganesh/vk:private_hdrs"],
338            "//src/gpu:metal_ganesh": ["//src/gpu/ganesh/mtl:private_hdrs"],
339            # TODO(kjlubick) d3d backend
340        },
341    ),
342    visibility = ["//src/gpu:__pkg__"],
343)
344
345skia_cc_deps(
346    name = "deps",
347    visibility = ["//src/gpu:__pkg__"],
348    deps = select_multi(
349        {
350            "//src/gpu:gl_ganesh": ["//src/gpu/ganesh/gl:deps"],
351            # TODO(kjlubick) mtl and d3d backend
352        },
353    ),
354)
355
356skia_cc_library(
357    name = "ganesh",
358    srcs = [
359        ":core_skslc_srcs",
360        ":core_srcs",
361        "//src/gpu/ganesh/effects:srcs",
362        "//src/gpu/ganesh/geometry:srcs",
363        "//src/gpu/ganesh/glsl:srcs",
364        "//src/gpu/ganesh/gradients:srcs",
365        "//src/gpu/ganesh/image:srcs",
366        "//src/gpu/ganesh/ops:srcs",
367        "//src/gpu/ganesh/surface:srcs",
368        "//src/gpu/ganesh/tessellate:srcs",
369        "//src/gpu/ganesh/text:srcs",
370        "//src/text/gpu:srcs",
371        # TODO(kjlubick, egdaniel) Remove this coupling
372        "//src/gpu/ganesh/mock:srcs",
373    ],
374    hdrs = [
375        ":core_hdrs",
376        ":core_skslc_hdrs",
377        "//include/android:private_hdrs",
378        "//include/gpu:ganesh_hdrs",
379        "//include/gpu/ganesh:ganesh_hdrs",
380        "//include/private/gpu/ganesh:private_hdrs",
381        "//include/private/chromium:ganesh_private_hdrs",
382        "//src/gpu/ganesh/effects:private_hdrs",
383        "//src/gpu/ganesh/geometry:private_hdrs",
384        "//src/gpu/ganesh/glsl:private_hdrs",
385        "//src/gpu/ganesh/gradients:private_hdrs",
386        "//src/gpu/ganesh/image:private_hdrs",
387        "//src/gpu/ganesh/ops:private_hdrs",
388        "//src/gpu/ganesh/surface:private_hdrs",
389        "//src/gpu/ganesh/tessellate:private_hdrs",
390        "//src/gpu/ganesh/text:private_hdrs",
391        "//src/gpu/tessellate:private_hdrs",
392        "//src/text/gpu:private_hdrs",
393        # TODO(kjlubick, egdaniel) Remove this coupling
394        "//src/gpu/ganesh/mock:private_hdrs",
395        "//include/gpu/mock:public_hdrs",
396    ],
397    defines = ["SK_GANESH"],
398    features = ["layering_check"],
399    local_defines = ["SK_USE_LEGACY_GANESH_TEXT_APIS"],
400    visibility = [
401        "//src/gpu/ganesh:__subpackages__",
402        "//tools/debugger:__pkg__",
403    ],
404    deps = [
405        "//:core",
406        "//modules/skcms",
407        "//src/base",
408        "//src/core:core_priv",
409        "//src/gpu",
410        "//src/sksl/codegen:gpu",
411    ],
412)
413
414# TODO(lovisolo, kjlubick): Do this with a macro.
415skia_cc_library(
416    name = "ganesh_TEST_UTIL",
417    testonly = True,
418    srcs = [
419        ":core_skslc_srcs",
420        ":core_srcs",
421        "//src/gpu/ganesh/effects:srcs",
422        "//src/gpu/ganesh/geometry:srcs",
423        "//src/gpu/ganesh/glsl:srcs",
424        "//src/gpu/ganesh/gradients:srcs",
425        "//src/gpu/ganesh/image:srcs",
426        "//src/gpu/ganesh/ops:srcs",
427        "//src/gpu/ganesh/surface:srcs",
428        "//src/gpu/ganesh/tessellate:srcs",
429        "//src/gpu/ganesh/text:srcs",
430        "//src/text/gpu:srcs",
431        "//src/utils:shader_utils_srcs",
432        # TODO(kjlubick, egdaniel) Remove this coupling
433        "//src/gpu/ganesh/mock:srcs",
434    ],
435    hdrs = [
436        ":core_hdrs",
437        ":core_skslc_hdrs",
438        "//include/android:private_hdrs",
439        "//include/gpu:ganesh_hdrs",
440        "//include/gpu/ganesh:ganesh_hdrs",
441        "//include/private/gpu/ganesh:private_hdrs",
442        "//include/private/chromium:ganesh_private_hdrs",
443        "//src/gpu/ganesh/effects:private_hdrs",
444        "//src/gpu/ganesh/geometry:private_hdrs",
445        "//src/gpu/ganesh/glsl:private_hdrs",
446        "//src/gpu/ganesh/gradients:private_hdrs",
447        "//src/gpu/ganesh/image:private_hdrs",
448        "//src/gpu/ganesh/ops:private_hdrs",
449        "//src/gpu/ganesh/surface:private_hdrs",
450        "//src/gpu/ganesh/tessellate:private_hdrs",
451        "//src/gpu/ganesh/text:private_hdrs",
452        "//src/gpu/tessellate:private_hdrs",
453        "//src/text/gpu:private_hdrs",
454        "//src/utils:shader_utils_hdrs",
455        # TODO(kjlubick, egdaniel) Remove this coupling
456        "//src/gpu/ganesh/mock:private_hdrs",
457        "//include/gpu/mock:public_hdrs",
458    ],
459    defines = [
460        "GR_TEST_UTILS",
461        "SK_GANESH",
462    ],
463    features = ["layering_check"],
464    local_defines = ["SK_USE_LEGACY_GANESH_TEXT_APIS"],
465    visibility = [
466        "//src/gpu/ganesh:__subpackages__",
467        "//tools:__subpackages__",
468    ],
469    deps = [
470        "//:core",
471        "//modules/skcms",
472        "//src/base",
473        "//src/core:core_priv",
474        "//src/gpu",
475        "//src/sksl/codegen:gpu",
476    ],
477)
478
479generate_cpp_files_for_headers(
480    name = "headers_to_compile",
481    headers = [
482        "GrBackendSemaphorePriv.h",
483        "GrBackendSurfacePriv.h",
484        "GrClip.h",
485    ],
486)
487