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