• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("//bazel:flags.bzl", "bool_flag")
2load("//bazel:skia_rules.bzl", "generate_cpp_files_for_headers", "skia_cc_library", "skia_filegroup", "split_srcs_and_hdrs")
3
4package(
5    default_applicable_licenses = ["//:license"],
6)
7
8licenses(["notice"])
9
10# In separate file list because these files are exported to
11# core.gni:skia_core_sources as well as sksl.gni:skslc_deps.
12CORE_SKSLC_FILES = [
13    "SkChecksum.cpp",
14    "SkChecksum.h",
15    "SkCpu.cpp",
16    "SkCpu.h",
17    "SkData.cpp",
18    "SkMatrixInvert.cpp",
19    "SkMatrixInvert.h",
20    "SkStream.cpp",
21    "SkString.cpp",
22    "SkStringUtils.cpp",
23    "SkStringUtils.h",
24]
25
26split_srcs_and_hdrs(
27    name = "core_skslc",
28    files = CORE_SKSLC_FILES,
29)
30
31skia_filegroup(
32    name = "core_priv_hdrs",
33    srcs = [
34        # By putting headers here, we are explicitly stating we want to use them
35        # in places other than core. They still count as "private" headers.
36        "Sk4px.h",
37        "SkAAClip.h",
38        "SkATrace.h",
39        "SkAdvancedTypefaceMetrics.h",
40        "SkAnnotationKeys.h",
41        "SkAutoPixmapStorage.h",
42        "SkBitmapCache.h",
43        "SkBitmapDevice.h",
44        "SkBitmapProcState.h",
45        "SkBlendModeBlender.h",
46        "SkBlendModePriv.h",
47        "SkBlenderBase.h",
48        "SkBlitter_A8.h",
49        "SkBlurEngine.h",
50        "SkBlurMask.h",
51        "SkBlurMaskFilterImpl.h",
52        "SkCachedData.h",
53        "SkCanvasPriv.h",
54        "SkChecksum.h",
55        "SkClipStack.h",
56        "SkClipStackDevice.h",
57        "SkColorData.h",
58        "SkColorFilterPriv.h",
59        "SkColorPriv.h",
60        "SkColorSpacePriv.h",
61        "SkColorSpaceXformSteps.h",
62        "SkCompressedDataUtils.h",
63        "SkConvertPixels.h",
64        "SkCpu.h",
65        "SkDebugUtils.h",
66        "SkDescriptor.h",
67        "SkDevice.h",
68        "SkDistanceFieldGen.h",
69        "SkDraw.h",
70        "SkDrawBase.h",
71        "SkDrawProcs.h",
72        "SkDrawShadowInfo.h",
73        "SkDrawTypes.h",
74        "SkEdgeClipper.h",
75        "SkEffectPriv.h",
76        "SkEnumerate.h",
77        "SkFDot6.h",
78        "SkFontDescriptor.h",
79        "SkFontMetricsPriv.h",
80        "SkFontPriv.h",
81        "SkFontStream.h",
82        "SkGeometry.h",
83        "SkGlyph.h",
84        "SkIPoint16.h",
85        "SkImageFilterCache.h",
86        "SkImageFilterTypes.h",
87        "SkImageFilter_Base.h",
88        "SkImageInfoPriv.h",
89        "SkImagePriv.h",
90        "SkLRUCache.h",
91        "SkLatticeIter.h",
92        "SkLocalMatrixImageFilter.h",
93        "SkMD5.h",
94        "SkMask.h",
95        "SkMasks.h",
96        "SkMaskFilterBase.h",
97        "SkMaskGamma.h",
98        "SkMatrixInvert.h",
99        "SkMatrixPriv.h",
100        "SkMatrixUtils.h",
101        "SkMemset.h",
102        "SkMeshPriv.h",
103        "SkMessageBus.h",
104        "SkMipmap.h",
105        "SkMipmapAccessor.h",
106        "SkNextID.h",
107        "SkOSFile.h",
108        "SkOpts.h",
109        "SkPaintDefaults.h",
110        "SkPaintPriv.h",
111        "SkPathEffectBase.h",
112        "SkPathEnums.h",
113        "SkPathPriv.h",
114        "SkPictureData.h",
115        "SkPicturePriv.h",
116        "SkPointPriv.h",
117        "SkRRectPriv.h",
118        "SkRTree.h",
119        "SkRasterClip.h",
120        "SkRasterPipeline.h",
121        "SkRasterPipelineContextUtils.h",
122        "SkRasterPipelineOpContexts.h",
123        "SkRasterPipelineOpList.h",
124        "SkReadBuffer.h",
125        "SkRecord.h",
126        "SkRecordDraw.h",
127        "SkRecordOpts.h",
128        "SkRecordedDrawable.h",
129        "SkRecorder.h",
130        "SkRectPriv.h",
131        "SkRegionPriv.h",
132        "SkResourceCache.h",
133        "SkRuntimeBlender.h",
134        "SkRuntimeEffectPriv.h",
135        "SkSLTypeShared.h",
136        "SkSamplingPriv.h",
137        "SkScalerContext.h",
138        "SkScan.h",
139        "SkSpecialImage.h",
140        "SkStreamPriv.h",
141        "SkStrike.h",
142        "SkStrikeCache.h",
143        "SkStrikeSpec.h",
144        "SkStringUtils.h",
145        "SkStroke.h",
146        "SkSurfacePriv.h",
147        "SkSwizzlePriv.h",
148        "SkTDynamicHash.h",
149        "SkTHash.h",
150        "SkTMultiMap.h",
151        "SkTaskGroup.h",
152        "SkTextBlobPriv.h",
153        "SkTextFormatParams.h",
154        "SkTraceEvent.h",
155        "SkTraceEventCommon.h",
156        "SkTypefaceCache.h",
157        "SkTypeface_remote.h",
158        "SkValidationUtils.h",
159        "SkVertState.h",
160        "SkVerticesPriv.h",
161        "SkWriteBuffer.h",
162        "SkWriter32.h",
163        "SkYUVAInfoLocation.h",
164        "SkYUVMath.h",
165        "SkYUVPlanesCache.h",
166        "//include/private/chromium:core_hdrs",
167        "//include/private:core_priv_hdrs",
168        "//src/effects:core_priv_hdrs",
169        "//src/image:image_hdrs",
170        "//src/sfnt:sfnt_hdrs",
171        "//src/shaders:core_priv_hdrs",
172        "//src/sksl/codegen:rasterpipeline_hdrs",
173        "//src/sksl:core_priv_hdrs",
174        "//src/text:text_hdrs",
175        "//src/utils:core_priv_hdrs",
176    ],
177)
178
179skia_filegroup(
180    name = "opts_srcs",
181    srcs = [
182        "Sk4px.h",
183        "SkColorData.h",
184        "SkColorPriv.h",
185        "SkOpts.h",
186        "SkOptsTargets.h",
187        "SkRasterPipeline.h",
188        "SkRasterPipelineContextUtils.h",
189        "SkRasterPipelineOpContexts.h",
190        "SkRasterPipelineOpList.h",
191    ],
192    visibility = ["//src/opts:__pkg__"],
193)
194
195skia_filegroup(
196    name = "core_priv_srcs",
197    srcs = [
198        # Private Headers (not used in other modules [except tests/gms])
199        "SkAlphaRuns.h",
200        "SkAnalyticEdge.h",
201        "SkAutoBlitterChoose.h",
202        "SkBigPicture.h",
203        "SkBlitMask.h",
204        "SkBlitRow.h",
205        "SkBlitter.h",
206        "SkCoreBlitters.h",
207        "SkCubicClipper.h",
208        "SkEdge.h",
209        "SkEdgeBuilder.h",
210        "SkGaussFilter.h",
211        "SkGlyphRunPainter.h",
212        "SkKnownRuntimeEffects.h",
213        "SkLineClipper.h",
214        "SkMaskBlurFilter.h",
215        "SkMaskCache.h",
216        "SkMipmapBuilder.h",
217        "SkOptsTargets.h",
218        "SkPathMakers.h",
219        "SkPathMeasurePriv.h",
220        "SkPictureFlat.h",
221        "SkPicturePlayback.h",
222        "SkPictureRecord.h",
223        "SkPixelRefPriv.h",
224        "SkPtrRecorder.h",
225        "SkQuadClipper.h",
226        "SkRasterClipStack.h",
227        "SkReadPixelsRec.h",
228        "SkRecordPattern.h",
229        "SkRecords.h",
230        "SkSafeRange.h",
231        "SkScaleToSides.h",
232        "SkScanPriv.h",
233        "SkSpriteBlitter.h",
234        "SkStrokerPriv.h",
235        "SkWritePixelsRec.h",
236        "//include/private:core_srcs",
237    ],
238)
239
240skia_filegroup(
241    name = "core_srcs",
242    srcs = [
243        # Implementation of public and private headers
244        "SkAAClip.cpp",
245        "SkATrace.cpp",
246        "SkAlphaRuns.cpp",
247        "SkAnalyticEdge.cpp",
248        "SkAnnotation.cpp",
249        "SkAutoPixmapStorage.cpp",
250        "SkBBHFactory.cpp",
251        "SkBigPicture.cpp",
252        "SkBitmap.cpp",
253        "SkBitmapCache.cpp",
254        "SkBitmapDevice.cpp",
255        "SkBitmapProcState.cpp",
256        "SkBitmapProcState_matrixProcs.cpp",
257        "SkBitmapProcState_opts.cpp",
258        "SkBitmapProcState_opts_lasx.cpp",
259        "SkBitmapProcState_opts_ssse3.cpp",
260        "SkBlendMode.cpp",
261        "SkBlendModeBlender.cpp",
262        "SkBlitMask_opts.cpp",
263        "SkBlitMask_opts_ssse3.cpp",
264        "SkBlitRow_D32.cpp",
265        "SkBlitRow_opts.cpp",
266        "SkBlitRow_opts_hsw.cpp",
267        "SkBlitRow_opts_lasx.cpp",
268        "SkBlitter.cpp",
269        "SkBlitter_A8.cpp",
270        "SkBlitter_ARGB32.cpp",
271        "SkBlitter_Sprite.cpp",
272        "SkBlurEngine.cpp",
273        "SkBlurMask.cpp",
274        "SkBlurMaskFilterImpl.cpp",
275        "SkCachedData.cpp",
276        "SkCanvas.cpp",
277        "SkCanvasPriv.cpp",
278        "SkCanvas_Raster.cpp",
279        "SkCapabilities.cpp",
280        "SkChecksum.cpp",
281        "SkClipStack.cpp",
282        "SkClipStackDevice.cpp",
283        "SkColor.cpp",
284        "SkColorFilter.cpp",
285        "SkColorSpace.cpp",
286        "SkColorSpaceXformSteps.cpp",
287        "SkColorTable.cpp",
288        "SkCompressedDataUtils.cpp",
289        "SkContourMeasure.cpp",
290        "SkConvertPixels.cpp",
291        "SkCpu.cpp",
292        "SkCubicClipper.cpp",
293        "SkCubicMap.cpp",
294        "SkData.cpp",
295        "SkDataTable.cpp",
296        "SkDescriptor.cpp",
297        "SkDevice.cpp",
298        "SkDistanceFieldGen.cpp",
299        "SkDocument.cpp",
300        "SkDraw.cpp",
301        "SkDrawBase.cpp",
302        "SkDrawShadowInfo.cpp",
303        "SkDraw_atlas.cpp",
304        "SkDraw_text.cpp",
305        "SkDraw_vertices.cpp",
306        "SkDrawable.cpp",
307        "SkEdge.cpp",
308        "SkEdgeBuilder.cpp",
309        "SkEdgeClipper.cpp",
310        "SkExecutor.cpp",
311        "SkFlattenable.cpp",
312        "SkFont.cpp",
313        "SkFontDescriptor.cpp",
314        "SkFontMetricsPriv.cpp",
315        "SkFontMgr.cpp",
316        "SkFontStream.cpp",
317        "SkFont_serial.cpp",
318        "SkGaussFilter.cpp",
319        "SkGeometry.cpp",
320        "SkGlobalInitialization_core.cpp",
321        "SkGlyph.cpp",
322        "SkGlyphRunPainter.cpp",
323        "SkGraphics.cpp",
324        "SkIDChangeListener.cpp",
325        "SkImageFilter.cpp",
326        "SkImageFilterCache.cpp",
327        "SkImageFilterTypes.cpp",
328        "SkImageGenerator.cpp",
329        "SkImageInfo.cpp",
330        "SkKnownRuntimeEffects.cpp",
331        "SkLatticeIter.cpp",
332        "SkLineClipper.cpp",
333        "SkLocalMatrixImageFilter.cpp",
334        "SkM44.cpp",
335        "SkMD5.cpp",
336        "SkMallocPixelRef.cpp",
337        "SkMask.cpp",
338        "SkMasks.cpp",
339        "SkMaskBlurFilter.cpp",
340        "SkMaskCache.cpp",
341        "SkMaskFilter.cpp",
342        "SkMaskFilterBase.cpp",
343        "SkMaskGamma.cpp",
344        "SkMatrix.cpp",
345        "SkMatrixInvert.cpp",
346        "SkMemset_opts.cpp",
347        "SkMemset_opts_avx.cpp",
348        "SkMemset_opts_erms.cpp",
349        "SkMesh.cpp",
350        "SkMipmap.cpp",
351        "SkMipmapAccessor.cpp",
352        "SkMipmapBuilder.cpp",
353        "SkMipmapDrawDownSampler.cpp",
354        "SkMipmapHQDownSampler.cpp",
355        "SkOpts.cpp",
356        "SkOverdrawCanvas.cpp",
357        "SkPaint.cpp",
358        "SkPaintPriv.cpp",
359        "SkPath.cpp",
360        "SkPathBuilder.cpp",
361        "SkPathEffect.cpp",
362        "SkPathMeasure.cpp",
363        "SkPathRef.cpp",
364        "SkPathUtils.cpp",
365        "SkPath_serial.cpp",
366        "SkPicture.cpp",
367        "SkPictureData.cpp",
368        "SkPictureFlat.cpp",
369        "SkPicturePlayback.cpp",
370        "SkPictureRecord.cpp",
371        "SkPictureRecorder.cpp",
372        "SkPixelRef.cpp",
373        "SkPixmap.cpp",
374        "SkPixmapDraw.cpp",
375        "SkPoint.cpp",
376        "SkPoint3.cpp",
377        "SkPtrRecorder.cpp",
378        "SkQuadClipper.cpp",
379        "SkRRect.cpp",
380        "SkRSXform.cpp",
381        "SkRTree.cpp",
382        "SkRasterClip.cpp",
383        "SkRasterPipeline.cpp",
384        "SkRasterPipelineBlitter.cpp",
385        "SkReadBuffer.cpp",
386        "SkReadPixelsRec.cpp",
387        "SkRecord.cpp",
388        "SkRecordDraw.cpp",
389        "SkRecordOpts.cpp",
390        "SkRecordedDrawable.cpp",
391        "SkRecorder.cpp",
392        "SkRecords.cpp",
393        "SkRect.cpp",
394        "SkRegion.cpp",
395        "SkRegion_path.cpp",
396        "SkResourceCache.cpp",
397        "SkRuntimeBlender.cpp",
398        "SkRuntimeEffect.cpp",
399        "SkSLTypeShared.cpp",
400        "SkScalar.cpp",
401        "SkScalerContext.cpp",
402        "SkScan.cpp",
403        "SkScan_AAAPath.cpp",
404        "SkScan_AntiPath.cpp",
405        "SkScan_Antihair.cpp",
406        "SkScan_Hairline.cpp",
407        "SkScan_Path.cpp",
408        "SkSpecialImage.cpp",
409        "SkSpriteBlitter_ARGB32.cpp",
410        "SkStream.cpp",
411        "SkStrike.cpp",
412        "SkStrikeCache.cpp",
413        "SkStrikeSpec.cpp",
414        "SkString.cpp",
415        "SkStringUtils.cpp",
416        "SkStroke.cpp",
417        "SkStrokeRec.cpp",
418        "SkStrokerPriv.cpp",
419        "SkSwizzle.cpp",
420        "SkSwizzler_opts.cpp",
421        "SkSwizzler_opts_hsw.cpp",
422        "SkSwizzler_opts_lasx.cpp",
423        "SkSwizzler_opts_ssse3.cpp",
424        "SkTaskGroup.cpp",
425        "SkTextBlob.cpp",
426        "SkTypeface.cpp",
427        "SkTypefaceCache.cpp",
428        "SkTypeface_remote.cpp",
429        "SkUnPreMultiply.cpp",
430        "SkVertState.cpp",
431        "SkVertices.cpp",
432        "SkWriteBuffer.cpp",
433        "SkWritePixelsRec.cpp",
434        "SkWriter32.cpp",
435        "SkYUVAInfo.cpp",
436        "SkYUVAPixmaps.cpp",
437        "SkYUVMath.cpp",
438        "SkYUVPlanesCache.cpp",
439    ],
440)
441
442skia_filegroup(
443    name = "textual_hdrs",
444    srcs = ["SkBlitBWMaskTemplate.h"],
445)
446
447# When running skslc or sksl-minify, we don't want to use the compiled-in SkSL sources
448# because that causes a dependency cycle. This flag lets us instead load the sources
449# from disk to break the cycle and affect the files we want.
450bool_flag(
451    name = "load_sksl_from_disk",
452    default = False,
453)
454
455skia_cc_library(
456    name = "core",
457    srcs = [
458        ":core_priv_hdrs",
459        ":core_priv_srcs",
460        ":core_srcs",
461        "//src/effects:core_srcs",
462        "//src/image:image_srcs",
463        "//src/ports:core_srcs",
464        "//src/sfnt:sfnt_srcs",
465        "//src/shaders:core_srcs",
466        "//src/sksl:core_srcs",
467        "//src/sksl/codegen:rasterpipeline_srcs",
468        "//src/text:text_srcs",
469        "//src/utils:core_srcs",
470    ] + select({
471        ":load_sksl_from_disk_true": ["//src/sksl:sksl_skslc_module_srcs"],
472        ":load_sksl_from_disk_false": ["//src/sksl:sksl_default_module_srcs"],
473    }),
474    hdrs = [
475        "//include/codec:core_hdrs",
476        "//include/core:core_hdrs",
477        "//include/effects:core_hdrs",
478        "//include/sksl:core_hdrs",
479        "//include/utils:core_hdrs",
480    ],
481    features = ["layering_check"],
482    local_defines = [
483        "SK_DISABLE_LEGACY_PNG_WRITEBUFFER",
484        "SK_DISABLE_LEGACY_IMAGE_READBUFFER",
485    ],
486    textual_hdrs = [
487        "//src/opts:textual_hdrs",
488        ":textual_hdrs",
489    ],
490    visibility = [
491        "//:__pkg__",
492        "//src:__subpackages__",
493    ],
494    deps = [
495        "//modules/skcms",
496        "//src/base",
497        "//src/opts",
498        "//src/sksl:generated_sksl",
499    ] + select({
500        ":load_sksl_from_disk_true": ["//src/utils:get_executable_path"],
501        ":load_sksl_from_disk_false": [],
502    }),
503)
504
505skia_cc_library(
506    name = "core_priv",
507    srcs = [":core_priv_srcs"],
508    hdrs = [":core_priv_hdrs"],
509    features = ["layering_check"],
510    visibility = [
511        "//bench:__subpackages__",
512        "//experimental/rust_png:__subpackages__",
513        "//gm:__subpackages__",
514        "//modules:__subpackages__",
515        "//src:__subpackages__",
516        "//tests:__subpackages__",
517        "//tools:__subpackages__",
518    ],
519    deps = [
520        ":core",
521        "//modules/skcms",
522        "//src/base",
523    ],
524)
525
526generate_cpp_files_for_headers(
527    name = "headers_to_compile",
528    headers = [
529        # All headers listed here will have a .cpp file generated that is a copy of the header file
530        # just with a .cpp suffix so Bazel will try to compile it.
531        # This allows us to run IWYU on these files.
532        "SkAdvancedTypefaceMetrics.h",
533        "SkColorData.h",
534        "SkColorPriv.h",
535        "SkColorSpacePriv.h",
536        "SkCoreBlitters.h",
537        "SkDebugUtils.h",
538        "SkDrawProcs.h",
539        "SkDrawTypes.h",
540        "SkMatrixPriv.h",
541        "SkPathPriv.h",
542        "SkPicturePriv.h",
543        "SkRuntimeEffectPriv.h",
544    ],
545)
546