[bazel] Try adding cc_binary rules that use generated rules

To make the atomic rules a bit easier to work with, in many
of the folders, this adds in cc_library rules to group
together the sources from that folder (and subfolders
where prudent). We only needs sources because those atoms
should have their headers as deps.

One issue that was pointed out is that there is currently
no way to restrict the inclusion of certain packages,
a la, `gn check`. For example, there is no mechanism from
stopping a dev from adding
#include "modules/canvaskit/WasmCommon.h"
to something in //src/core (except circular dependencies).
We can probably address that using Bazel's visibility
rules as needed:
https://docs.bazel.build/versions/main/visibility.html
https://docs.bazel.build/versions/main/be/functions.html#package_group

It is recommended to look at this CL patchset by patchset.
PS1: Update gazelle command to generate rules in more folders.
PS2: A few changes to make generation work better.
PS3: The result of running make generate in //bazel
PS4: Adding the rules to build sksllex, the simplest binary I
     could find in the Skia repo.
PS5: Adding the rules to build skdiff, a more complex binary.
     I tried a few approaches, but ended up gravitating back
     towards the layout where we have each folder/package
     group up the sources. I imagine at some point, we'll have
     skdiff depend on skia_core or something, which will
     have things like //src/core, //src/codecs, //src/pathops
     all bundled together.
PS7: Added in the groupings of sources, similar to what we had
     earlier. I liked these for readability. These helped fix
     up the //:skia_core build, and by extension, the CanvasKit
     build.

Change-Id: I3faa7c4e821c876b243617aacf0246efa524cbde
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/476219
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
diff --git a/tools/BUILD.bazel b/tools/BUILD.bazel
index 40e8664..fb7c231 100644
--- a/tools/BUILD.bazel
+++ b/tools/BUILD.bazel
@@ -1,68 +1,655 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
 load("@rules_python//python:defs.bzl", "py_binary")
 
-package(default_visibility = ["//:__subpackages__"])
-
-filegroup(
-    name = "cmdline",
-    srcs = [
-        "flags/CommandLineFlags.cpp",
-        "flags/CommandLineFlags.h",
-    ],
-)
-
-filegroup(
-    name = "srcs",
-    testonly = True,
-    srcs = [
-        "Registry.h",
-        "ResourceFactory.h",
-        "Resources.cpp",
-        "Resources.h",
-        "ToolUtils.cpp",
-        "ToolUtils.h",
-        "flags/CommandLineFlags.cpp",
-        "flags/CommandLineFlags.h",
-        "fonts/TestFontMgr.cpp",
-        "fonts/TestFontMgr.h",
-        "fonts/TestTypeface.cpp",
-        "fonts/TestTypeface.h",
-        "fonts/ToolUtilsFont.cpp",
-        "gpu/FenceSync.h",
-        "gpu/FlushFinishTracker.cpp",
-        "gpu/FlushFinishTracker.h",
-        "gpu/GpuTimer.h",
-        "gpu/GrContextFactory.cpp",
-        "gpu/GrContextFactory.h",
-        "gpu/TestContext.cpp",
-        "gpu/TestContext.h",
-        "gpu/gl/GLTestContext.cpp",
-        "gpu/gl/GLTestContext.h",
-        "gpu/gl/command_buffer/GLTestContext_command_buffer.h",
-        "gpu/mock/MockTestContext.h",
-    ],
-)
-
-filegroup(
-    name = "txts",
-    testonly = True,
-    srcs = [
-        "fonts/test_font_index.inc",
-        "fonts/test_font_monospace.inc",
-        "fonts/test_font_sans_serif.inc",
-        "fonts/test_font_serif.inc",
-    ],
-)
-
-filegroup(
-    name = "hash_and_encode",
-    testonly = True,
-    srcs = [
-        "HashAndEncode.cpp",
-        "HashAndEncode.h",
-    ],
-)
-
 py_binary(
     name = "embed_resources",
     srcs = ["embed_resources.py"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "AndroidSkDebugToStdOut_src",
+    srcs = ["AndroidSkDebugToStdOut.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//include/core:SkTypes_hdr"],
+)
+
+generated_cc_atom(
+    name = "AutoreleasePool_hdr",
+    hdrs = ["AutoreleasePool.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "CrashHandler_hdr",
+    hdrs = ["CrashHandler.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "CrashHandler_src",
+    srcs = ["CrashHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":CrashHandler_hdr",
+        "//base:config_hdr",
+        "//base:process_state_hdr",
+        "//include/private:SkMalloc_hdr",
+        "//src/core:SkLeanWindows_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "DDLPromiseImageHelper_hdr",
+    hdrs = ["DDLPromiseImageHelper.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkDeferredDisplayListRecorder_hdr",
+        "//include/core:SkPromiseImageTexture_hdr",
+        "//include/core:SkRefCnt_hdr",
+        "//include/core:SkYUVAPixmaps_hdr",
+        "//include/gpu:GrBackendSurface_hdr",
+        "//include/private:SkTArray_hdr",
+        "//src/core:SkCachedData_hdr",
+        "//src/core:SkTLazy_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "DDLPromiseImageHelper_src",
+    srcs = ["DDLPromiseImageHelper.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":DDLPromiseImageHelper_hdr",
+        "//include/core:SkDeferredDisplayListRecorder_hdr",
+        "//include/core:SkPicture_hdr",
+        "//include/core:SkSerialProcs_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//include/gpu:GrYUVABackendTextures_hdr",
+        "//src/codec:SkCodecImageGenerator_hdr",
+        "//src/core:SkCachedData_hdr",
+        "//src/core:SkMipmap_hdr",
+        "//src/core:SkTaskGroup_hdr",
+        "//src/gpu:GrDirectContextPriv_hdr",
+        "//src/image:SkImage_Base_hdr",
+        "//src/image:SkImage_GpuYUVA_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "DDLTileHelper_hdr",
+    hdrs = ["DDLTileHelper.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkDeferredDisplayList_hdr",
+        "//include/core:SkRect_hdr",
+        "//include/core:SkRefCnt_hdr",
+        "//include/core:SkSpan_hdr",
+        "//include/core:SkSurfaceCharacterization_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "DDLTileHelper_src",
+    srcs = ["DDLTileHelper.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":DDLPromiseImageHelper_hdr",
+        ":DDLTileHelper_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkDeferredDisplayListRecorder_hdr",
+        "//include/core:SkPicture_hdr",
+        "//include/core:SkSurfaceCharacterization_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//src/core:SkDeferredDisplayListPriv_hdr",
+        "//src/core:SkTaskGroup_hdr",
+        "//src/gpu:GrDirectContextPriv_hdr",
+        "//src/image:SkImage_Gpu_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "HashAndEncode_hdr",
+    hdrs = ["HashAndEncode.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkStream_hdr",
+        "//tools/flags:CommandLineFlags_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "HashAndEncode_src",
+    srcs = ["HashAndEncode.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":HashAndEncode_hdr",
+        "//include/core:SkICC_hdr",
+        "//include/core:SkString_hdr",
+        "//third_party:libpng",
+    ],
+)
+
+generated_cc_atom(
+    name = "LsanSuppressions_src",
+    srcs = ["LsanSuppressions.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//include/core:SkTypes_hdr"],
+)
+
+generated_cc_atom(
+    name = "MSKPPlayer_hdr",
+    hdrs = ["MSKPPlayer.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkRefCnt_hdr",
+        "//include/core:SkSize_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "MSKPPlayer_src",
+    srcs = ["MSKPPlayer.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":MSKPPlayer_hdr",
+        ":SkSharingProc_hdr",
+        "//include/core:SkCanvasVirtualEnforcer_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkPictureRecorder_hdr",
+        "//include/core:SkPicture_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//include/private:SkTArray_hdr",
+        "//include/utils:SkNoDrawCanvas_hdr",
+        "//src/core:SkCanvasPriv_hdr",
+        "//src/core:SkTLazy_hdr",
+        "//src/utils:SkMultiPictureDocument_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "OverwriteLine_hdr",
+    hdrs = ["OverwriteLine.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "ProcStats_hdr",
+    hdrs = ["ProcStats.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "ProcStats_src",
+    srcs = ["ProcStats.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":ProcStats_hdr",
+        "//include/core:SkTypes_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "Registry_hdr",
+    hdrs = ["Registry.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkTypes_hdr",
+        "//include/private:SkNoncopyable_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ResourceFactory_hdr",
+    hdrs = ["ResourceFactory.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//include/core:SkData_hdr"],
+)
+
+generated_cc_atom(
+    name = "Resources_hdr",
+    hdrs = ["Resources.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkImage_hdr",
+        "//include/core:SkString_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "Resources_src",
+    srcs = ["Resources.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":ResourceFactory_hdr",
+        ":Resources_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkData_hdr",
+        "//include/core:SkImageGenerator_hdr",
+        "//include/core:SkImage_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkTypeface_hdr",
+        "//src/core:SkOSFile_hdr",
+        "//src/utils:SkOSPath_hdr",
+        "//tools/flags:CommandLineFlags_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "RuntimeBlendUtils_hdr",
+    hdrs = ["RuntimeBlendUtils.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkBlendMode_hdr",
+        "//include/core:SkRefCnt_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "RuntimeBlendUtils_src",
+    srcs = ["RuntimeBlendUtils.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkBlendMode_hdr",
+        "//include/core:SkRefCnt_hdr",
+        "//include/effects:SkRuntimeEffect_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SkMetaData_hdr",
+    hdrs = ["SkMetaData.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//include/core:SkScalar_hdr"],
+)
+
+generated_cc_atom(
+    name = "SkMetaData_src",
+    srcs = ["SkMetaData.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":SkMetaData_hdr",
+        "//include/private:SkMalloc_hdr",
+        "//include/private:SkTo_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SkSharingProc_hdr",
+    hdrs = ["SkSharingProc.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkData_hdr",
+        "//include/core:SkImage_hdr",
+        "//include/core:SkSerialProcs_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SkSharingProc_src",
+    srcs = ["SkSharingProc.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":SkSharingProc_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkData_hdr",
+        "//include/core:SkImage_hdr",
+        "//include/core:SkSerialProcs_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "Stats_hdr",
+    hdrs = ["Stats.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkString_hdr",
+        "//include/private:SkFloatingPoint_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ToolUtils_hdr",
+    hdrs = ["ToolUtils.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkColor_hdr",
+        "//include/core:SkData_hdr",
+        "//include/core:SkEncodedImageFormat_hdr",
+        "//include/core:SkFontStyle_hdr",
+        "//include/core:SkFontTypes_hdr",
+        "//include/core:SkFont_hdr",
+        "//include/core:SkImageEncoder_hdr",
+        "//include/core:SkImageInfo_hdr",
+        "//include/core:SkPixmap_hdr",
+        "//include/core:SkRect_hdr",
+        "//include/core:SkRefCnt_hdr",
+        "//include/core:SkScalar_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/core:SkTypeface_hdr",
+        "//include/core:SkTypes_hdr",
+        "//include/private:SkTArray_hdr",
+        "//include/private:SkTDArray_hdr",
+        "//include/utils:SkRandom_hdr",
+        "//src/core:SkTInternalLList_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ToolUtils_src",
+    srcs = ["ToolUtils.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":ToolUtils_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkBlendMode_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkColorPriv_hdr",
+        "//include/core:SkImage_hdr",
+        "//include/core:SkMatrix_hdr",
+        "//include/core:SkPaint_hdr",
+        "//include/core:SkPathBuilder_hdr",
+        "//include/core:SkPicture_hdr",
+        "//include/core:SkPixelRef_hdr",
+        "//include/core:SkPixmap_hdr",
+        "//include/core:SkPoint3_hdr",
+        "//include/core:SkRRect_hdr",
+        "//include/core:SkShader_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/core:SkTextBlob_hdr",
+        "//include/ports:SkTypeface_win_hdr",
+        "//include/private:SkColorData_hdr",
+        "//include/private:SkFloatingPoint_hdr",
+        "//modules/svg/include:SkSVGDOM_hdr",
+        "//modules/svg/include:SkSVGNode_hdr",
+        "//src/core:SkFontPriv_hdr",
+        "//src/xml:SkDOM_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "UrlDataManager_hdr",
+    hdrs = ["UrlDataManager.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkData_hdr",
+        "//include/core:SkImage_hdr",
+        "//include/core:SkString_hdr",
+        "//src/core:SkOpts_hdr",
+        "//src/core:SkTDynamicHash_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "UrlDataManager_src",
+    srcs = ["UrlDataManager.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [":UrlDataManager_hdr"],
+)
+
+generated_cc_atom(
+    name = "blob_cache_sim_src",
+    srcs = ["blob_cache_sim.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkColor_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkSurface_hdr",
+        "//src/core:SkRemoteGlyphCache_hdr",
+        "//src/core:SkScalerContext_hdr",
+        "//src/core:SkTextBlobTrace_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "chrome_fuzz_src",
+    srcs = ["chrome_fuzz.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkImageFilter_hdr",
+        "//include/core:SkString_hdr",
+        "//src/core:SkOSFile_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "convert-to-nia_src",
+    srcs = ["convert-to-nia.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/codec:SkCodec_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkData_hdr",
+        "//src/core:SkAutoMalloc_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "cpu_modules_src",
+    srcs = ["cpu_modules.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//modules/particles/include:SkParticleEffect_hdr"],
+)
+
+generated_cc_atom(
+    name = "dump_record_src",
+    srcs = ["dump_record.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkPictureRecorder_hdr",
+        "//include/core:SkPicture_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkTime_hdr",
+        "//src/core:SkPicturePriv_hdr",
+        "//src/core:SkRecordDraw_hdr",
+        "//src/core:SkRecordOpts_hdr",
+        "//src/core:SkRecord_hdr",
+        "//src/core:SkRecorder_hdr",
+        "//tools/flags:CommandLineFlags_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "force_older_glibc_math_hdr",
+    hdrs = ["force_older_glibc_math.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "get_current_monitor_profile_src",
+    srcs = ["get_current_monitor_profile.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//include/core:SkStream_hdr"],
+)
+
+generated_cc_atom(
+    name = "get_images_from_skps_src",
+    srcs = ["get_images_from_skps.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/codec:SkCodec_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkColorSpace_hdr",
+        "//include/core:SkData_hdr",
+        "//include/core:SkPicture_hdr",
+        "//include/core:SkSerialProcs_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/private:SkTHash_hdr",
+        "//src/core:SkMD5_hdr",
+        "//src/core:SkOSFile_hdr",
+        "//src/utils:SkJSONWriter_hdr",
+        "//src/utils:SkOSPath_hdr",
+        "//tools/flags:CommandLineFlags_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "image_diff_metric_src",
+    srcs = ["image_diff_metric.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/codec:SkCodec_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkData_hdr",
+        "//include/core:SkPixmap_hdr",
+        "//include/core:SkSize_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "imgcvt_src",
+    srcs = ["imgcvt.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkData_hdr",
+        "//include/core:SkImage_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/third_party/skcms:skcms_hdr",
+        "//src/core:SkColorSpacePriv_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ios_utils_hdr",
+    hdrs = ["ios_utils.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "list_gms_src",
+    srcs = ["list_gms.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//gm:gm_hdr"],
+)
+
+generated_cc_atom(
+    name = "list_gpu_unit_tests_src",
+    srcs = ["list_gpu_unit_tests.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//tests:Test_hdr"],
+)
+
+generated_cc_atom(
+    name = "public_headers_warnings_check_src",
+    srcs = ["public_headers_warnings_check.cpp"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "random_parse_path_hdr",
+    hdrs = ["random_parse_path.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//include/core:SkString_hdr"],
+)
+
+generated_cc_atom(
+    name = "random_parse_path_src",
+    srcs = ["random_parse_path.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":random_parse_path_hdr",
+        "//include/utils:SkRandom_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "remote_demo_src",
+    srcs = ["remote_demo.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkGraphics_hdr",
+        "//include/core:SkSurface_hdr",
+        "//src/core:SkRemoteGlyphCache_hdr",
+        "//src/core:SkScalerContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "skottie2movie_src",
+    srcs = ["skottie2movie.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//experimental/ffmpeg:SkVideoEncoder_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkGraphics_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/core:SkTime_hdr",
+        "//include/gpu:GrContextOptions_hdr",
+        "//include/private:SkTPin_hdr",
+        "//modules/skottie/include:Skottie_hdr",
+        "//modules/skresources/include:SkResources_hdr",
+        "//src/utils:SkOSPath_hdr",
+        "//tools/flags:CommandLineFlags_hdr",
+        "//tools/gpu:GrContextFactory_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "skp_parser_src",
+    srcs = ["skp_parser.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkPicture_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/utils:SkNullCanvas_hdr",
+        "//tools/debugger:DebugCanvas_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "skpinfo_src",
+    srcs = ["skpinfo.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkPicture_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/private:SkTo_hdr",
+        "//src/core:SkFontDescriptor_hdr",
+        "//src/core:SkPictureCommon_hdr",
+        "//src/core:SkPictureData_hdr",
+        "//tools/flags:CommandLineFlags_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "using_skia_and_harfbuzz_src",
+    srcs = ["using_skia_and_harfbuzz.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkTextBlob_hdr",
+        "//include/core:SkTypeface_hdr",
+        "//include/docs:SkPDFDocument_hdr",
+        "//modules/skshaper/include:SkShaper_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "win_dbghelp_hdr",
+    hdrs = ["win_dbghelp.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "win_dbghelp_src",
+    srcs = ["win_dbghelp.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [":win_dbghelp_hdr"],
+)
+
+generated_cc_atom(
+    name = "win_lcid_src",
+    srcs = ["win_lcid.cpp"],
+    visibility = ["//:__subpackages__"],
 )
diff --git a/tools/debugger/BUILD.bazel b/tools/debugger/BUILD.bazel
new file mode 100644
index 0000000..904063e
--- /dev/null
+++ b/tools/debugger/BUILD.bazel
@@ -0,0 +1,141 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "DebugCanvas_hdr",
+    hdrs = ["DebugCanvas.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":DebugLayerManager_hdr",
+        ":DrawCommand_hdr",
+        "//include/core:SkCanvasVirtualEnforcer_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkPath_hdr",
+        "//include/core:SkString_hdr",
+        "//include/core:SkVertices_hdr",
+        "//include/pathops:SkPathOps_hdr",
+        "//include/private:SkTArray_hdr",
+        "//tools:UrlDataManager_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "DebugCanvas_src",
+    srcs = ["DebugCanvas.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":DebugCanvas_hdr",
+        ":DebugLayerManager_hdr",
+        ":DrawCommand_hdr",
+        "//include/core:SkPaint_hdr",
+        "//include/core:SkPath_hdr",
+        "//include/core:SkPicture_hdr",
+        "//include/core:SkPoint_hdr",
+        "//include/core:SkTextBlob_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//include/utils:SkPaintFilterCanvas_hdr",
+        "//src/core:SkCanvasPriv_hdr",
+        "//src/core:SkRectPriv_hdr",
+        "//src/gpu:GrAuditTrail_hdr",
+        "//src/gpu:GrRecordingContextPriv_hdr",
+        "//src/utils:SkJSONWriter_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "DebugLayerManager_hdr",
+    hdrs = ["DebugLayerManager.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":DebugCanvas_hdr",
+        "//include/core:SkImage_hdr",
+        "//include/private:SkTHash_hdr",
+        "//src/utils:SkJSONWriter_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "DebugLayerManager_src",
+    srcs = ["DebugLayerManager.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":DebugCanvas_hdr",
+        ":DebugLayerManager_hdr",
+        "//include/core:SkImageInfo_hdr",
+        "//include/core:SkImage_hdr",
+        "//include/core:SkPicture_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/private:SkTHash_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "DrawCommand_hdr",
+    hdrs = ["DrawCommand.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkFlattenable_hdr",
+        "//include/core:SkPath_hdr",
+        "//include/core:SkRRect_hdr",
+        "//include/core:SkRSXform_hdr",
+        "//include/core:SkRegion_hdr",
+        "//include/core:SkString_hdr",
+        "//include/core:SkVertices_hdr",
+        "//include/private:SkTDArray_hdr",
+        "//src/core:SkDrawShadowInfo_hdr",
+        "//src/core:SkTLazy_hdr",
+        "//src/utils:SkJSONWriter_hdr",
+        "//tools:UrlDataManager_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "DrawCommand_src",
+    srcs = ["DrawCommand.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":DebugLayerManager_hdr",
+        ":DrawCommand_hdr",
+        ":JsonWriteBuffer_hdr",
+        "//include/core:SkColorFilter_hdr",
+        "//include/core:SkDrawable_hdr",
+        "//include/core:SkImageFilter_hdr",
+        "//include/core:SkPathEffect_hdr",
+        "//include/core:SkPicture_hdr",
+        "//include/core:SkTypeface_hdr",
+        "//include/effects:SkDashPathEffect_hdr",
+        "//include/encode:SkPngEncoder_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//include/private:SkShadowFlags_hdr",
+        "//include/private:SkTHash_hdr",
+        "//src/core:SkAutoMalloc_hdr",
+        "//src/core:SkCanvasPriv_hdr",
+        "//src/core:SkLatticeIter_hdr",
+        "//src/core:SkMaskFilterBase_hdr",
+        "//src/core:SkPaintDefaults_hdr",
+        "//src/core:SkPaintPriv_hdr",
+        "//src/core:SkReadBuffer_hdr",
+        "//src/core:SkRectPriv_hdr",
+        "//src/core:SkTextBlobPriv_hdr",
+        "//src/core:SkWriteBuffer_hdr",
+        "//src/image:SkImage_Base_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "JsonWriteBuffer_hdr",
+    hdrs = ["JsonWriteBuffer.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//src/core:SkWriteBuffer_hdr"],
+)
+
+generated_cc_atom(
+    name = "JsonWriteBuffer_src",
+    srcs = ["JsonWriteBuffer.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":DrawCommand_hdr",
+        ":JsonWriteBuffer_hdr",
+    ],
+)
diff --git a/tools/fiddle/BUILD.bazel b/tools/fiddle/BUILD.bazel
new file mode 100644
index 0000000..7e0381e
--- /dev/null
+++ b/tools/fiddle/BUILD.bazel
@@ -0,0 +1,1291 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "all_examples_src",
+    srcs = ["all_examples.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//docs/examples:50_percent_gray_src",
+        "//docs/examples:50_percent_srgb_src",
+        "//docs/examples:Alpha_Constants_a_src",
+        "//docs/examples:Alpha_Constants_b_src",
+        "//docs/examples:Alpha_Type_Opaque_src",
+        "//docs/examples:Alpha_Type_Premul_src",
+        "//docs/examples:Alpha_Type_Unpremul_src",
+        "//docs/examples:Anti_Alias_src",
+        "//docs/examples:Arc_src",
+        "//docs/examples:AutoCanvasRestore_SkCanvas_star_src",
+        "//docs/examples:AutoCanvasRestore_restore_src",
+        "//docs/examples:Bitmap_012_src",
+        "//docs/examples:Bitmap_ComputeIsOpaque_src",
+        "//docs/examples:Bitmap_HeapAllocator_allocPixelRef_src",
+        "//docs/examples:Bitmap_allocN32Pixels_src",
+        "//docs/examples:Bitmap_allocPixelsFlags_src",
+        "//docs/examples:Bitmap_allocPixels_src",
+        "//docs/examples:Bitmap_bounds_src",
+        "//docs/examples:Bitmap_bytesPerPixel_src",
+        "//docs/examples:Bitmap_colorSpace_src",
+        "//docs/examples:Bitmap_colorType_src",
+        "//docs/examples:Bitmap_computeByteSize_src",
+        "//docs/examples:Bitmap_copy_const_SkBitmap_src",
+        "//docs/examples:Bitmap_copy_operator_src",
+        "//docs/examples:Bitmap_dimensions_src",
+        "//docs/examples:Bitmap_drawsNothing_src",
+        "//docs/examples:Bitmap_empty_constructor_src",
+        "//docs/examples:Bitmap_empty_src",
+        "//docs/examples:Bitmap_eraseARGB_src",
+        "//docs/examples:Bitmap_eraseColor_src",
+        "//docs/examples:Bitmap_erase_src",
+        "//docs/examples:Bitmap_extractAlpha_2_src",
+        "//docs/examples:Bitmap_extractAlpha_3_src",
+        "//docs/examples:Bitmap_extractAlpha_src",
+        "//docs/examples:Bitmap_extractSubset_src",
+        "//docs/examples:Bitmap_getAddr16_src",
+        "//docs/examples:Bitmap_getAddr32_src",
+        "//docs/examples:Bitmap_getAddr8_src",
+        "//docs/examples:Bitmap_getAddr_src",
+        "//docs/examples:Bitmap_getBounds_2_src",
+        "//docs/examples:Bitmap_getBounds_src",
+        "//docs/examples:Bitmap_getColor_src",
+        "//docs/examples:Bitmap_getGenerationID_src",
+        "//docs/examples:Bitmap_getPixels_src",
+        "//docs/examples:Bitmap_getSubset_src",
+        "//docs/examples:Bitmap_height_src",
+        "//docs/examples:Bitmap_info_src",
+        "//docs/examples:Bitmap_installPixels_2_src",
+        "//docs/examples:Bitmap_installPixels_3_src",
+        "//docs/examples:Bitmap_installPixels_src",
+        "//docs/examples:Bitmap_isImmutable_src",
+        "//docs/examples:Bitmap_isNull_src",
+        "//docs/examples:Bitmap_isOpaque_src",
+        "//docs/examples:Bitmap_move_SkBitmap_src",
+        "//docs/examples:Bitmap_move_operator_src",
+        "//docs/examples:Bitmap_notifyPixelsChanged_src",
+        "//docs/examples:Bitmap_peekPixels_src",
+        "//docs/examples:Bitmap_pixelRefOrigin_src",
+        "//docs/examples:Bitmap_pixelRef_src",
+        "//docs/examples:Bitmap_pixmap_src",
+        "//docs/examples:Bitmap_readPixels_2_src",
+        "//docs/examples:Bitmap_readPixels_3_src",
+        "//docs/examples:Bitmap_readPixels_src",
+        "//docs/examples:Bitmap_readyToDraw_src",
+        "//docs/examples:Bitmap_refColorSpace_src",
+        "//docs/examples:Bitmap_reset_src",
+        "//docs/examples:Bitmap_rowBytesAsPixels_src",
+        "//docs/examples:Bitmap_rowBytes_src",
+        "//docs/examples:Bitmap_setAlphaType_src",
+        "//docs/examples:Bitmap_setImmutable_src",
+        "//docs/examples:Bitmap_setInfo_src",
+        "//docs/examples:Bitmap_setPixelRef_src",
+        "//docs/examples:Bitmap_setPixels_src",
+        "//docs/examples:Bitmap_shiftPerPixel_src",
+        "//docs/examples:Bitmap_swap_src",
+        "//docs/examples:Bitmap_tryAllocN32Pixels_src",
+        "//docs/examples:Bitmap_tryAllocPixelsFlags_src",
+        "//docs/examples:Bitmap_tryAllocPixels_2_src",
+        "//docs/examples:Bitmap_tryAllocPixels_3_src",
+        "//docs/examples:Bitmap_tryAllocPixels_4_src",
+        "//docs/examples:Bitmap_tryAllocPixels_src",
+        "//docs/examples:Bitmap_width_src",
+        "//docs/examples:Bitmap_writePixels_2_src",
+        "//docs/examples:Bitmap_writePixels_src",
+        "//docs/examples:BlendModes_src",
+        "//docs/examples:Blend_Mode_Methods_src",
+        "//docs/examples:Canvas_129_src",
+        "//docs/examples:Canvas_MakeRasterDirectN32_src",
+        "//docs/examples:Canvas_MakeRasterDirect_src",
+        "//docs/examples:Canvas_PointMode_src",
+        "//docs/examples:Canvas_SaveLayerRec_SaveLayerRec_src",
+        "//docs/examples:Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star_src",
+        "//docs/examples:Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_src",
+        "//docs/examples:Canvas_SaveLayerRec_src",
+        "//docs/examples:Canvas_SrcRectConstraint_src",
+        "//docs/examples:Canvas_accessTopLayerPixels_a_src",
+        "//docs/examples:Canvas_accessTopLayerPixels_b_src",
+        "//docs/examples:Canvas_accessTopRasterHandle_src",
+        "//docs/examples:Canvas_clear_src",
+        "//docs/examples:Canvas_clipPath_2_src",
+        "//docs/examples:Canvas_clipPath_3_src",
+        "//docs/examples:Canvas_clipPath_src",
+        "//docs/examples:Canvas_clipRRect_2_src",
+        "//docs/examples:Canvas_clipRRect_3_src",
+        "//docs/examples:Canvas_clipRRect_src",
+        "//docs/examples:Canvas_clipRect_2_src",
+        "//docs/examples:Canvas_clipRect_3_src",
+        "//docs/examples:Canvas_clipRect_src",
+        "//docs/examples:Canvas_clipRegion_src",
+        "//docs/examples:Canvas_concat_src",
+        "//docs/examples:Canvas_const_SkBitmap_const_SkSurfaceProps_src",
+        "//docs/examples:Canvas_copy_const_SkBitmap_src",
+        "//docs/examples:Canvas_destructor_src",
+        "//docs/examples:Canvas_drawAnnotation_2_src",
+        "//docs/examples:Canvas_drawArc_a_src",
+        "//docs/examples:Canvas_drawArc_b_src",
+        "//docs/examples:Canvas_drawAtlas_2_src",
+        "//docs/examples:Canvas_drawAtlas_src",
+        "//docs/examples:Canvas_drawBitmapRect_2_src",
+        "//docs/examples:Canvas_drawBitmapRect_3_src",
+        "//docs/examples:Canvas_drawBitmapRect_src",
+        "//docs/examples:Canvas_drawBitmap_src",
+        "//docs/examples:Canvas_drawCircle_2_src",
+        "//docs/examples:Canvas_drawCircle_src",
+        "//docs/examples:Canvas_drawColor_src",
+        "//docs/examples:Canvas_drawDRRect_a_src",
+        "//docs/examples:Canvas_drawDRRect_b_src",
+        "//docs/examples:Canvas_drawDrawable_2_src",
+        "//docs/examples:Canvas_drawDrawable_src",
+        "//docs/examples:Canvas_drawIRect_src",
+        "//docs/examples:Canvas_drawImageNine_2_src",
+        "//docs/examples:Canvas_drawImageNine_src",
+        "//docs/examples:Canvas_drawImageRect_2_src",
+        "//docs/examples:Canvas_drawImageRect_3_src",
+        "//docs/examples:Canvas_drawImageRect_4_src",
+        "//docs/examples:Canvas_drawImageRect_5_src",
+        "//docs/examples:Canvas_drawImageRect_6_src",
+        "//docs/examples:Canvas_drawImageRect_src",
+        "//docs/examples:Canvas_drawImage_2_src",
+        "//docs/examples:Canvas_drawImage_src",
+        "//docs/examples:Canvas_drawLine_2_src",
+        "//docs/examples:Canvas_drawLine_src",
+        "//docs/examples:Canvas_drawOval_src",
+        "//docs/examples:Canvas_drawPaint_src",
+        "//docs/examples:Canvas_drawPatch_2_a_src",
+        "//docs/examples:Canvas_drawPatch_2_b_src",
+        "//docs/examples:Canvas_drawPatch_src",
+        "//docs/examples:Canvas_drawPath_src",
+        "//docs/examples:Canvas_drawPicture_2_src",
+        "//docs/examples:Canvas_drawPicture_3_src",
+        "//docs/examples:Canvas_drawPicture_4_src",
+        "//docs/examples:Canvas_drawPoint_2_src",
+        "//docs/examples:Canvas_drawPoint_src",
+        "//docs/examples:Canvas_drawPoints_src",
+        "//docs/examples:Canvas_drawPosTextH_src",
+        "//docs/examples:Canvas_drawPosText_src",
+        "//docs/examples:Canvas_drawRRect_src",
+        "//docs/examples:Canvas_drawRect_src",
+        "//docs/examples:Canvas_drawRegion_src",
+        "//docs/examples:Canvas_drawRoundRect_src",
+        "//docs/examples:Canvas_drawString_2_src",
+        "//docs/examples:Canvas_drawString_src",
+        "//docs/examples:Canvas_drawTextBlob_2_src",
+        "//docs/examples:Canvas_drawTextBlob_src",
+        "//docs/examples:Canvas_drawTextRSXform_src",
+        "//docs/examples:Canvas_drawText_src",
+        "//docs/examples:Canvas_drawVertices_2_src",
+        "//docs/examples:Canvas_drawVertices_src",
+        "//docs/examples:Canvas_empty_constructor_src",
+        "//docs/examples:Canvas_getBaseLayerSize_src",
+        "//docs/examples:Canvas_getContext_src",
+        "//docs/examples:Canvas_getDeviceClipBounds_2_src",
+        "//docs/examples:Canvas_getDeviceClipBounds_src",
+        "//docs/examples:Canvas_getLocalClipBounds_2_src",
+        "//docs/examples:Canvas_getLocalClipBounds_src",
+        "//docs/examples:Canvas_getProps_src",
+        "//docs/examples:Canvas_getSaveCount_src",
+        "//docs/examples:Canvas_getTotalMatrix_src",
+        "//docs/examples:Canvas_imageInfo_src",
+        "//docs/examples:Canvas_int_int_const_SkSurfaceProps_star_src",
+        "//docs/examples:Canvas_isClipEmpty_src",
+        "//docs/examples:Canvas_isClipRect_src",
+        "//docs/examples:Canvas_kInitWithPrevious_SaveLayerFlag_src",
+        "//docs/examples:Canvas_makeSurface_src",
+        "//docs/examples:Canvas_peekPixels_src",
+        "//docs/examples:Canvas_quickReject_2_src",
+        "//docs/examples:Canvas_quickReject_src",
+        "//docs/examples:Canvas_readPixels_2_src",
+        "//docs/examples:Canvas_readPixels_3_src",
+        "//docs/examples:Canvas_readPixels_a_src",
+        "//docs/examples:Canvas_readPixels_b_src",
+        "//docs/examples:Canvas_resetMatrix_src",
+        "//docs/examples:Canvas_restoreToCount_src",
+        "//docs/examples:Canvas_restore_src",
+        "//docs/examples:Canvas_rotate_2_src",
+        "//docs/examples:Canvas_rotate_src",
+        "//docs/examples:Canvas_saveLayerAlpha_src",
+        "//docs/examples:Canvas_saveLayerPreserveLCDTextRequests_src",
+        "//docs/examples:Canvas_saveLayer_2_src",
+        "//docs/examples:Canvas_saveLayer_3_src",
+        "//docs/examples:Canvas_saveLayer_4_src",
+        "//docs/examples:Canvas_saveLayer_src",
+        "//docs/examples:Canvas_save_src",
+        "//docs/examples:Canvas_scale_src",
+        "//docs/examples:Canvas_setMatrix_src",
+        "//docs/examples:Canvas_skew_src",
+        "//docs/examples:Canvas_translate_src",
+        "//docs/examples:Canvas_writePixels_2_src",
+        "//docs/examples:Canvas_writePixels_src",
+        "//docs/examples:ChromeMDRefreshTab_src",
+        "//docs/examples:ChromeMDRefreshTabs_src",
+        "//docs/examples:Clear_src",
+        "//docs/examples:Clip_src",
+        "//docs/examples:ColorGetA_src",
+        "//docs/examples:ColorGetB_src",
+        "//docs/examples:ColorGetG_src",
+        "//docs/examples:ColorGetR_src",
+        "//docs/examples:ColorSetARGB_src",
+        "//docs/examples:ColorSetA_src",
+        "//docs/examples:ColorSetRGB_src",
+        "//docs/examples:ColorToHSV_src",
+        "//docs/examples:ColorTypeBytesPerPixel_src",
+        "//docs/examples:ColorTypeIsAlwaysOpaque_src",
+        "//docs/examples:ColorTypeValidateAlphaType_src",
+        "//docs/examples:Color_Burn_src",
+        "//docs/examples:Color_Constants_a_src",
+        "//docs/examples:Color_Constants_b_src",
+        "//docs/examples:Color_Constants_c_src",
+        "//docs/examples:Color_Constants_d_src",
+        "//docs/examples:Color_Dodge_src",
+        "//docs/examples:Color_Filter_Methods_src",
+        "//docs/examples:Color_Methods_src",
+        "//docs/examples:Color_Type_ARGB_4444_src",
+        "//docs/examples:Color_Type_Alpha_8_src",
+        "//docs/examples:Color_Type_BGRA_8888_src",
+        "//docs/examples:Color_Type_Gray_8_src",
+        "//docs/examples:Color_Type_RGBA_1010102_src",
+        "//docs/examples:Color_Type_RGBA_8888_src",
+        "//docs/examples:Color_Type_RGBA_F16_src",
+        "//docs/examples:Color_Type_RGB_101010_src",
+        "//docs/examples:Color_Type_RGB_565_src",
+        "//docs/examples:Color_Type_RGB_888_src",
+        "//docs/examples:Color_Wheel_src",
+        "//docs/examples:Color_src",
+        "//docs/examples:Colors_src",
+        "//docs/examples:Conic_Weight_a_src",
+        "//docs/examples:Conic_Weight_b_src",
+        "//docs/examples:Conic_Weight_c_src",
+        "//docs/examples:Cubic_src",
+        "//docs/examples:DCIToXYZD50_src",
+        "//docs/examples:Darken_src",
+        "//docs/examples:Device_Text_src",
+        "//docs/examples:Difference_src",
+        "//docs/examples:Dither_a_src",
+        "//docs/examples:Dither_b_src",
+        "//docs/examples:Dst_Atop_src",
+        "//docs/examples:Dst_In_src",
+        "//docs/examples:Dst_Out_src",
+        "//docs/examples:Dst_Over_src",
+        "//docs/examples:Dst_src",
+        "//docs/examples:Exclusion_src",
+        "//docs/examples:Fake_Bold_src",
+        "//docs/examples:Font_breakText_src",
+        "//docs/examples:GradientShader_MakeLinear_src",
+        "//docs/examples:HSVToColor_2_src",
+        "//docs/examples:HSVToColor_src",
+        "//docs/examples:Hard_Light_src",
+        "//docs/examples:Hue_src",
+        "//docs/examples:IPoint_Make_src",
+        "//docs/examples:IPoint_add_operator_src",
+        "//docs/examples:IPoint_addto_operator_src",
+        "//docs/examples:IPoint_equal_operator_src",
+        "//docs/examples:IPoint_equals_src",
+        "//docs/examples:IPoint_isZero_src",
+        "//docs/examples:IPoint_minus_operator_src",
+        "//docs/examples:IPoint_notequal_operator_src",
+        "//docs/examples:IPoint_set_src",
+        "//docs/examples:IPoint_subtract_operator_src",
+        "//docs/examples:IPoint_subtractfrom_operator_src",
+        "//docs/examples:IPoint_x_src",
+        "//docs/examples:IPoint_y_src",
+        "//docs/examples:IRect_Intersects_src",
+        "//docs/examples:IRect_MakeEmpty_src",
+        "//docs/examples:IRect_MakeLTRB_src",
+        "//docs/examples:IRect_MakeSize_src",
+        "//docs/examples:IRect_MakeWH_src",
+        "//docs/examples:IRect_MakeXYWH_src",
+        "//docs/examples:IRect_adjust_src",
+        "//docs/examples:IRect_bottom_src",
+        "//docs/examples:IRect_containsNoEmptyCheck_2_src",
+        "//docs/examples:IRect_containsNoEmptyCheck_src",
+        "//docs/examples:IRect_contains_3_src",
+        "//docs/examples:IRect_contains_4_src",
+        "//docs/examples:IRect_contains_src",
+        "//docs/examples:IRect_equal_operator_src",
+        "//docs/examples:IRect_height64_src",
+        "//docs/examples:IRect_height_src",
+        "//docs/examples:IRect_inset_src",
+        "//docs/examples:IRect_intersect_2_src",
+        "//docs/examples:IRect_intersect_src",
+        "//docs/examples:IRect_isEmpty64_src",
+        "//docs/examples:IRect_isEmpty_src",
+        "//docs/examples:IRect_join_2_src",
+        "//docs/examples:IRect_left_src",
+        "//docs/examples:IRect_makeInset_src",
+        "//docs/examples:IRect_makeOffset_src",
+        "//docs/examples:IRect_makeOutset_src",
+        "//docs/examples:IRect_makeSorted_src",
+        "//docs/examples:IRect_notequal_operator_src",
+        "//docs/examples:IRect_offsetTo_src",
+        "//docs/examples:IRect_offset_2_src",
+        "//docs/examples:IRect_offset_src",
+        "//docs/examples:IRect_outset_src",
+        "//docs/examples:IRect_right_src",
+        "//docs/examples:IRect_setEmpty_src",
+        "//docs/examples:IRect_setLTRB_src",
+        "//docs/examples:IRect_setXYWH_src",
+        "//docs/examples:IRect_size_src",
+        "//docs/examples:IRect_sort_src",
+        "//docs/examples:IRect_top_src",
+        "//docs/examples:IRect_width64_src",
+        "//docs/examples:IRect_width_src",
+        "//docs/examples:IRect_x_src",
+        "//docs/examples:IRect_y_src",
+        "//docs/examples:ImageInfo_ByteSizeOverflowed_src",
+        "//docs/examples:ImageInfo_MakeA8_src",
+        "//docs/examples:ImageInfo_MakeN32Premul_2_src",
+        "//docs/examples:ImageInfo_MakeN32Premul_src",
+        "//docs/examples:ImageInfo_MakeN32_src",
+        "//docs/examples:ImageInfo_MakeS32_src",
+        "//docs/examples:ImageInfo_MakeUnknown_2_src",
+        "//docs/examples:ImageInfo_MakeUnknown_src",
+        "//docs/examples:ImageInfo_Make_src",
+        "//docs/examples:ImageInfo_alphaType_src",
+        "//docs/examples:ImageInfo_bounds_src",
+        "//docs/examples:ImageInfo_bytesPerPixel_src",
+        "//docs/examples:ImageInfo_colorSpace_src",
+        "//docs/examples:ImageInfo_colorType_src",
+        "//docs/examples:ImageInfo_computeByteSize_src",
+        "//docs/examples:ImageInfo_computeMinByteSize_src",
+        "//docs/examples:ImageInfo_computeOffset_src",
+        "//docs/examples:ImageInfo_dimensions_src",
+        "//docs/examples:ImageInfo_empty_constructor_src",
+        "//docs/examples:ImageInfo_equal1_operator_src",
+        "//docs/examples:ImageInfo_gammaCloseToSRGB_src",
+        "//docs/examples:ImageInfo_height_src",
+        "//docs/examples:ImageInfo_isEmpty_src",
+        "//docs/examples:ImageInfo_isOpaque_src",
+        "//docs/examples:ImageInfo_makeColorSpace_src",
+        "//docs/examples:ImageInfo_makeWH_src",
+        "//docs/examples:ImageInfo_minRowBytes64_src",
+        "//docs/examples:ImageInfo_minRowBytes_src",
+        "//docs/examples:ImageInfo_notequal1_operator_src",
+        "//docs/examples:ImageInfo_refColorSpace_src",
+        "//docs/examples:ImageInfo_reset_src",
+        "//docs/examples:ImageInfo_shiftPerPixel_src",
+        "//docs/examples:ImageInfo_validRowBytes_src",
+        "//docs/examples:ImageInfo_width_src",
+        "//docs/examples:Image_Filter_Methods_src",
+        "//docs/examples:Image_MakeBackendTextureFromSkImage_src",
+        "//docs/examples:Image_MakeCrossContextFromPixmap_src",
+        "//docs/examples:Image_MakeFromAdoptedTexture_src",
+        "//docs/examples:Image_MakeFromBitmap_src",
+        "//docs/examples:Image_MakeFromEncoded_src",
+        "//docs/examples:Image_MakeFromGenerator_src",
+        "//docs/examples:Image_MakeFromPicture_src",
+        "//docs/examples:Image_MakeFromRaster_src",
+        "//docs/examples:Image_MakeFromTexture_2_src",
+        "//docs/examples:Image_MakeFromTexture_src",
+        "//docs/examples:Image_MakeRasterCopy_src",
+        "//docs/examples:Image_MakeRasterData_src",
+        "//docs/examples:Image_alphaType_src",
+        "//docs/examples:Image_bounds_src",
+        "//docs/examples:Image_colorSpace_src",
+        "//docs/examples:Image_colorType_src",
+        "//docs/examples:Image_dimensions_src",
+        "//docs/examples:Image_encodeToData_2_src",
+        "//docs/examples:Image_encodeToData_src",
+        "//docs/examples:Image_getBackendTexture_src",
+        "//docs/examples:Image_height_src",
+        "//docs/examples:Image_isAlphaOnly_src",
+        "//docs/examples:Image_isLazyGenerated_a_src",
+        "//docs/examples:Image_isLazyGenerated_b_src",
+        "//docs/examples:Image_isOpaque_src",
+        "//docs/examples:Image_isTextureBacked_src",
+        "//docs/examples:Image_isValid_src",
+        "//docs/examples:Image_makeColorSpace_src",
+        "//docs/examples:Image_makeNonTextureImage_src",
+        "//docs/examples:Image_makeRasterImage_src",
+        "//docs/examples:Image_makeShader_2_src",
+        "//docs/examples:Image_makeShader_src",
+        "//docs/examples:Image_makeSubset_src",
+        "//docs/examples:Image_makeTextureImage_src",
+        "//docs/examples:Image_makeWithFilter_src",
+        "//docs/examples:Image_peekPixels_src",
+        "//docs/examples:Image_readPixels_2_src",
+        "//docs/examples:Image_readPixels_src",
+        "//docs/examples:Image_refColorSpace_src",
+        "//docs/examples:Image_refEncodedData_src",
+        "//docs/examples:Image_scalePixels_src",
+        "//docs/examples:Image_uniqueID_src",
+        "//docs/examples:Image_width_src",
+        "//docs/examples:Lighten_src",
+        "//docs/examples:Luminosity_src",
+        "//docs/examples:Mask_Filter_Methods_src",
+        "//docs/examples:Matrix_063_src",
+        "//docs/examples:Matrix_Concat_src",
+        "//docs/examples:Matrix_I_src",
+        "//docs/examples:Matrix_InvalidMatrix_src",
+        "//docs/examples:Matrix_MakeAll_src",
+        "//docs/examples:Matrix_MakeRectToRect_src",
+        "//docs/examples:Matrix_MakeScale_src",
+        "//docs/examples:Matrix_MakeTrans_src",
+        "//docs/examples:Matrix_ScaleToFit_src",
+        "//docs/examples:Matrix_SetAffineIdentity_src",
+        "//docs/examples:Matrix_TypeMask_src",
+        "//docs/examples:Matrix_array_operator_src",
+        "//docs/examples:Matrix_asAffine_src",
+        "//docs/examples:Matrix_decomposeScale_src",
+        "//docs/examples:Matrix_dirtyMatrixTypeCache_src",
+        "//docs/examples:Matrix_dump_src",
+        "//docs/examples:Matrix_get9_src",
+        "//docs/examples:Matrix_getMaxScale_src",
+        "//docs/examples:Matrix_getMinMaxScales_src",
+        "//docs/examples:Matrix_getMinScale_src",
+        "//docs/examples:Matrix_getPerspX_src",
+        "//docs/examples:Matrix_getPerspY_src",
+        "//docs/examples:Matrix_getScaleX_src",
+        "//docs/examples:Matrix_getScaleY_src",
+        "//docs/examples:Matrix_getSkewX_src",
+        "//docs/examples:Matrix_getSkewY_src",
+        "//docs/examples:Matrix_getTranslateX_src",
+        "//docs/examples:Matrix_getTranslateY_src",
+        "//docs/examples:Matrix_getType_src",
+        "//docs/examples:Matrix_get_src",
+        "//docs/examples:Matrix_hasPerspective_src",
+        "//docs/examples:Matrix_invert_src",
+        "//docs/examples:Matrix_isFinite_src",
+        "//docs/examples:Matrix_isIdentity_src",
+        "//docs/examples:Matrix_isScaleTranslate_src",
+        "//docs/examples:Matrix_isSimilarity_src",
+        "//docs/examples:Matrix_isTranslate_src",
+        "//docs/examples:Matrix_mapHomogeneousPoints_src",
+        "//docs/examples:Matrix_mapPoints_2_src",
+        "//docs/examples:Matrix_mapPoints_src",
+        "//docs/examples:Matrix_mapRadius_src",
+        "//docs/examples:Matrix_mapRectScaleTranslate_src",
+        "//docs/examples:Matrix_mapRectToQuad_src",
+        "//docs/examples:Matrix_mapRect_2_src",
+        "//docs/examples:Matrix_mapRect_3_src",
+        "//docs/examples:Matrix_mapRect_src",
+        "//docs/examples:Matrix_mapVector_2_src",
+        "//docs/examples:Matrix_mapVector_src",
+        "//docs/examples:Matrix_mapVectors_2_src",
+        "//docs/examples:Matrix_mapVectors_src",
+        "//docs/examples:Matrix_mapXY_2_src",
+        "//docs/examples:Matrix_mapXY_src",
+        "//docs/examples:Matrix_postConcat_src",
+        "//docs/examples:Matrix_postRotate_2_src",
+        "//docs/examples:Matrix_postRotate_src",
+        "//docs/examples:Matrix_postScale_2_src",
+        "//docs/examples:Matrix_postScale_src",
+        "//docs/examples:Matrix_postSkew_2_src",
+        "//docs/examples:Matrix_postSkew_src",
+        "//docs/examples:Matrix_postTranslate_src",
+        "//docs/examples:Matrix_preConcat_src",
+        "//docs/examples:Matrix_preRotate_2_src",
+        "//docs/examples:Matrix_preRotate_src",
+        "//docs/examples:Matrix_preScale_2_src",
+        "//docs/examples:Matrix_preScale_src",
+        "//docs/examples:Matrix_preSkew_2_src",
+        "//docs/examples:Matrix_preSkew_src",
+        "//docs/examples:Matrix_preTranslate_src",
+        "//docs/examples:Matrix_preservesAxisAlignment_src",
+        "//docs/examples:Matrix_preservesRightAngles_src",
+        "//docs/examples:Matrix_rectStaysRect_src",
+        "//docs/examples:Matrix_reset_src",
+        "//docs/examples:Matrix_set9_src",
+        "//docs/examples:Matrix_setAffine_src",
+        "//docs/examples:Matrix_setAll_src",
+        "//docs/examples:Matrix_setConcat_src",
+        "//docs/examples:Matrix_setIdentity_src",
+        "//docs/examples:Matrix_setPerspX_src",
+        "//docs/examples:Matrix_setPerspY_src",
+        "//docs/examples:Matrix_setPolyToPoly_src",
+        "//docs/examples:Matrix_setRSXform_src",
+        "//docs/examples:Matrix_setRotate_2_src",
+        "//docs/examples:Matrix_setRotate_src",
+        "//docs/examples:Matrix_setScaleTranslate_src",
+        "//docs/examples:Matrix_setScaleX_src",
+        "//docs/examples:Matrix_setScaleY_src",
+        "//docs/examples:Matrix_setScale_2_src",
+        "//docs/examples:Matrix_setScale_src",
+        "//docs/examples:Matrix_setSinCos_2_src",
+        "//docs/examples:Matrix_setSinCos_src",
+        "//docs/examples:Matrix_setSkewX_src",
+        "//docs/examples:Matrix_setSkewY_src",
+        "//docs/examples:Matrix_setSkew_2_src",
+        "//docs/examples:Matrix_setSkew_src",
+        "//docs/examples:Matrix_setTranslateX_src",
+        "//docs/examples:Matrix_setTranslateY_src",
+        "//docs/examples:Matrix_setTranslate_2_src",
+        "//docs/examples:Matrix_setTranslate_src",
+        "//docs/examples:Matrix_set_src",
+        "//docs/examples:MemberIndex_src",
+        "//docs/examples:Miter_Limit_src",
+        "//docs/examples:Modulate_src",
+        "//docs/examples:Multiply_src",
+        "//docs/examples:Octopus_Generator_Animated_src",
+        "//docs/examples:Octopus_Generator_src",
+        "//docs/examples:Overlay_src",
+        "//docs/examples:PDF_src",
+        "//docs/examples:PaintDump_src",
+        "//docs/examples:Paint_053_src",
+        "//docs/examples:Paint_057_src",
+        "//docs/examples:Paint_containsText_src",
+        "//docs/examples:Paint_copy_const_SkPaint_src",
+        "//docs/examples:Paint_copy_operator_src",
+        "//docs/examples:Paint_countText_src",
+        "//docs/examples:Paint_empty_constructor_src",
+        "//docs/examples:Paint_equal_operator_src",
+        "//docs/examples:Paint_getAlpha_src",
+        "//docs/examples:Paint_getColor4f_src",
+        "//docs/examples:Paint_getColorFilter_src",
+        "//docs/examples:Paint_getColor_src",
+        "//docs/examples:Paint_getFillPath_2_src",
+        "//docs/examples:Paint_getFillPath_src",
+        "//docs/examples:Paint_getFlags_src",
+        "//docs/examples:Paint_getFontMetrics_src",
+        "//docs/examples:Paint_getFontSpacing_src",
+        "//docs/examples:Paint_getHinting_src",
+        "//docs/examples:Paint_getImageFilter_src",
+        "//docs/examples:Paint_getMaskFilter_src",
+        "//docs/examples:Paint_getPathEffect_src",
+        "//docs/examples:Paint_getPosTextPath_src",
+        "//docs/examples:Paint_getShader_src",
+        "//docs/examples:Paint_getStrokeCap_src",
+        "//docs/examples:Paint_getStrokeJoin_src",
+        "//docs/examples:Paint_getStrokeMiter_src",
+        "//docs/examples:Paint_getStrokeWidth_src",
+        "//docs/examples:Paint_getStyle_src",
+        "//docs/examples:Paint_getTextEncoding_src",
+        "//docs/examples:Paint_getTextPath_src",
+        "//docs/examples:Paint_getTextScaleX_src",
+        "//docs/examples:Paint_getTextSize_src",
+        "//docs/examples:Paint_getTextSkewX_src",
+        "//docs/examples:Paint_getTextWidths_src",
+        "//docs/examples:Paint_getTypeface_src",
+        "//docs/examples:Paint_isAntiAlias_src",
+        "//docs/examples:Paint_isAutohinted_src",
+        "//docs/examples:Paint_isDither_src",
+        "//docs/examples:Paint_isEmbeddedBitmapText_src",
+        "//docs/examples:Paint_isFakeBoldText_src",
+        "//docs/examples:Paint_isLCDRenderText_src",
+        "//docs/examples:Paint_isLinearText_src",
+        "//docs/examples:Paint_isSubpixelText_src",
+        "//docs/examples:Paint_measureText_2_src",
+        "//docs/examples:Paint_measureText_src",
+        "//docs/examples:Paint_move_SkPaint_src",
+        "//docs/examples:Paint_move_operator_src",
+        "//docs/examples:Paint_notequal_operator_src",
+        "//docs/examples:Paint_nothingToDraw_src",
+        "//docs/examples:Paint_refColorFilter_src",
+        "//docs/examples:Paint_refImageFilter_src",
+        "//docs/examples:Paint_refMaskFilter_src",
+        "//docs/examples:Paint_refPathEffect_src",
+        "//docs/examples:Paint_refShader_src",
+        "//docs/examples:Paint_refTypeface_src",
+        "//docs/examples:Paint_reset_src",
+        "//docs/examples:Paint_setARGB_src",
+        "//docs/examples:Paint_setAlpha_src",
+        "//docs/examples:Paint_setAntiAlias_src",
+        "//docs/examples:Paint_setAutohinted_src",
+        "//docs/examples:Paint_setBlendMode_src",
+        "//docs/examples:Paint_setColor4f_src",
+        "//docs/examples:Paint_setColorFilter_src",
+        "//docs/examples:Paint_setColor_src",
+        "//docs/examples:Paint_setDither_src",
+        "//docs/examples:Paint_setEmbeddedBitmapText_src",
+        "//docs/examples:Paint_setFakeBoldText_src",
+        "//docs/examples:Paint_setFlags_src",
+        "//docs/examples:Paint_setHinting_src",
+        "//docs/examples:Paint_setImageFilter_src",
+        "//docs/examples:Paint_setLCDRenderText_src",
+        "//docs/examples:Paint_setLinearText_src",
+        "//docs/examples:Paint_setMaskFilter_src",
+        "//docs/examples:Paint_setPathEffect_src",
+        "//docs/examples:Paint_setShader_src",
+        "//docs/examples:Paint_setStrokeCap_a_src",
+        "//docs/examples:Paint_setStrokeCap_b_src",
+        "//docs/examples:Paint_setStrokeJoin_src",
+        "//docs/examples:Paint_setStrokeMiter_src",
+        "//docs/examples:Paint_setStrokeWidth_src",
+        "//docs/examples:Paint_setStyle_src",
+        "//docs/examples:Paint_setSubpixelText_src",
+        "//docs/examples:Paint_setTextEncoding_src",
+        "//docs/examples:Paint_setTextScaleX_src",
+        "//docs/examples:Paint_setTextSize_src",
+        "//docs/examples:Paint_setTextSkewX_src",
+        "//docs/examples:Paint_setTypeface_src",
+        "//docs/examples:Paint_textToGlyphs_src",
+        "//docs/examples:Path_AddPathMode_src",
+        "//docs/examples:Path_ArcSize_src",
+        "//docs/examples:Path_ConvertConicToQuads_src",
+        "//docs/examples:Path_ConvertToNonInverseFillType_src",
+        "//docs/examples:Path_Convexity_src",
+        "//docs/examples:Path_Direction_src",
+        "//docs/examples:Path_Effect_Methods_src",
+        "//docs/examples:Path_FillType_a_src",
+        "//docs/examples:Path_FillType_b_src",
+        "//docs/examples:Path_IsCubicDegenerate_src",
+        "//docs/examples:Path_IsInverseFillType_src",
+        "//docs/examples:Path_IsLineDegenerate_src",
+        "//docs/examples:Path_IsQuadDegenerate_src",
+        "//docs/examples:Path_Iter_Iter_src",
+        "//docs/examples:Path_Iter_conicWeight_src",
+        "//docs/examples:Path_Iter_const_SkPath_src",
+        "//docs/examples:Path_Iter_isCloseLine_src",
+        "//docs/examples:Path_Iter_isClosedContour_src",
+        "//docs/examples:Path_Iter_next_src",
+        "//docs/examples:Path_Iter_setPath_src",
+        "//docs/examples:Path_Iter_src",
+        "//docs/examples:Path_SegmentMask_src",
+        "//docs/examples:Path_Verb_src",
+        "//docs/examples:Path_addArc_src",
+        "//docs/examples:Path_addCircle_src",
+        "//docs/examples:Path_addOval_2_src",
+        "//docs/examples:Path_addOval_src",
+        "//docs/examples:Path_addPath_2_src",
+        "//docs/examples:Path_addPath_3_src",
+        "//docs/examples:Path_addPath_src",
+        "//docs/examples:Path_addPoly_2_src",
+        "//docs/examples:Path_addPoly_src",
+        "//docs/examples:Path_addRRect_2_src",
+        "//docs/examples:Path_addRRect_src",
+        "//docs/examples:Path_addRect_2_src",
+        "//docs/examples:Path_addRect_3_src",
+        "//docs/examples:Path_addRect_src",
+        "//docs/examples:Path_addRoundRect_2_src",
+        "//docs/examples:Path_addRoundRect_src",
+        "//docs/examples:Path_arcTo_2_a_src",
+        "//docs/examples:Path_arcTo_2_b_src",
+        "//docs/examples:Path_arcTo_2_c_src",
+        "//docs/examples:Path_arcTo_3_src",
+        "//docs/examples:Path_arcTo_4_src",
+        "//docs/examples:Path_arcTo_src",
+        "//docs/examples:Path_close_src",
+        "//docs/examples:Path_computeTightBounds_src",
+        "//docs/examples:Path_conicTo_2_src",
+        "//docs/examples:Path_conicTo_src",
+        "//docs/examples:Path_conservativelyContainsRect_src",
+        "//docs/examples:Path_contains_src",
+        "//docs/examples:Path_copy_const_SkPath_src",
+        "//docs/examples:Path_copy_operator_src",
+        "//docs/examples:Path_countPoints_src",
+        "//docs/examples:Path_countVerbs_src",
+        "//docs/examples:Path_cubicTo_2_src",
+        "//docs/examples:Path_cubicTo_src",
+        "//docs/examples:Path_destructor_src",
+        "//docs/examples:Path_dumpHex_src",
+        "//docs/examples:Path_dump_2_src",
+        "//docs/examples:Path_dump_src",
+        "//docs/examples:Path_empty_constructor_src",
+        "//docs/examples:Path_equal_operator_src",
+        "//docs/examples:Path_getBounds_src",
+        "//docs/examples:Path_getFillType_src",
+        "//docs/examples:Path_getGenerationID_src",
+        "//docs/examples:Path_getLastPt_src",
+        "//docs/examples:Path_getPoint_src",
+        "//docs/examples:Path_getPoints_src",
+        "//docs/examples:Path_getSegmentMasks_src",
+        "//docs/examples:Path_getVerbs_src",
+        "//docs/examples:Path_incReserve_src",
+        "//docs/examples:Path_interpolate_src",
+        "//docs/examples:Path_isConvex_src",
+        "//docs/examples:Path_isEmpty_src",
+        "//docs/examples:Path_isFinite_src",
+        "//docs/examples:Path_isInterpolatable_src",
+        "//docs/examples:Path_isInverseFillType_2_src",
+        "//docs/examples:Path_isLastContourClosed_src",
+        "//docs/examples:Path_isLine_src",
+        "//docs/examples:Path_isOval_src",
+        "//docs/examples:Path_isRRect_src",
+        "//docs/examples:Path_isRect_src",
+        "//docs/examples:Path_isVolatile_src",
+        "//docs/examples:Path_lineTo_2_src",
+        "//docs/examples:Path_lineTo_src",
+        "//docs/examples:Path_moveTo_2_src",
+        "//docs/examples:Path_moveTo_src",
+        "//docs/examples:Path_offset_2_src",
+        "//docs/examples:Path_offset_src",
+        "//docs/examples:Path_quadTo_2_src",
+        "//docs/examples:Path_quadTo_src",
+        "//docs/examples:Path_rArcTo_src",
+        "//docs/examples:Path_rConicTo_src",
+        "//docs/examples:Path_rCubicTo_src",
+        "//docs/examples:Path_rLineTo_src",
+        "//docs/examples:Path_rMoveTo_src",
+        "//docs/examples:Path_rQuadTo_src",
+        "//docs/examples:Path_readFromMemory_src",
+        "//docs/examples:Path_reset_src",
+        "//docs/examples:Path_reverseAddPath_src",
+        "//docs/examples:Path_rewind_src",
+        "//docs/examples:Path_serialize_src",
+        "//docs/examples:Path_setFillType_src",
+        "//docs/examples:Path_setIsVolatile_src",
+        "//docs/examples:Path_setLastPt_2_src",
+        "//docs/examples:Path_setLastPt_src",
+        "//docs/examples:Path_swap_src",
+        "//docs/examples:Path_toggleInverseFillType_src",
+        "//docs/examples:Path_transform_2_src",
+        "//docs/examples:Path_transform_src",
+        "//docs/examples:Path_updateBoundsCache_src",
+        "//docs/examples:Path_writeToMemory_src",
+        "//docs/examples:Picture_008_src",
+        "//docs/examples:Picture_AbortCallback_abort_src",
+        "//docs/examples:Picture_MakeFromData_src",
+        "//docs/examples:Picture_MakeFromStream_src",
+        "//docs/examples:Picture_MakePlaceholder_src",
+        "//docs/examples:Picture_approximateBytesUsed_src",
+        "//docs/examples:Picture_approximateOpCount_src",
+        "//docs/examples:Picture_cullRect_src",
+        "//docs/examples:Picture_playback_src",
+        "//docs/examples:Picture_serialize_2_src",
+        "//docs/examples:Picture_serialize_src",
+        "//docs/examples:Picture_uniqueID_src",
+        "//docs/examples:Pixmap_addr16_2_src",
+        "//docs/examples:Pixmap_addr16_src",
+        "//docs/examples:Pixmap_addr32_2_src",
+        "//docs/examples:Pixmap_addr32_src",
+        "//docs/examples:Pixmap_addr64_2_src",
+        "//docs/examples:Pixmap_addr64_src",
+        "//docs/examples:Pixmap_addr8_2_src",
+        "//docs/examples:Pixmap_addr8_src",
+        "//docs/examples:Pixmap_addrF16_2_src",
+        "//docs/examples:Pixmap_addrF16_src",
+        "//docs/examples:Pixmap_addr_2_src",
+        "//docs/examples:Pixmap_addr_src",
+        "//docs/examples:Pixmap_alphaType_src",
+        "//docs/examples:Pixmap_bounds_src",
+        "//docs/examples:Pixmap_colorSpace_src",
+        "//docs/examples:Pixmap_colorType_src",
+        "//docs/examples:Pixmap_computeByteSize_src",
+        "//docs/examples:Pixmap_computeIsOpaque_src",
+        "//docs/examples:Pixmap_const_SkImageInfo_const_star_src",
+        "//docs/examples:Pixmap_empty_constructor_src",
+        "//docs/examples:Pixmap_erase_2_src",
+        "//docs/examples:Pixmap_erase_3_src",
+        "//docs/examples:Pixmap_erase_src",
+        "//docs/examples:Pixmap_extractSubset_src",
+        "//docs/examples:Pixmap_getColor_src",
+        "//docs/examples:Pixmap_height_src",
+        "//docs/examples:Pixmap_info_src",
+        "//docs/examples:Pixmap_isOpaque_src",
+        "//docs/examples:Pixmap_readPixels_2_src",
+        "//docs/examples:Pixmap_readPixels_3_src",
+        "//docs/examples:Pixmap_readPixels_4_src",
+        "//docs/examples:Pixmap_readPixels_src",
+        "//docs/examples:Pixmap_reset_2_src",
+        "//docs/examples:Pixmap_reset_src",
+        "//docs/examples:Pixmap_rowBytesAsPixels_src",
+        "//docs/examples:Pixmap_rowBytes_src",
+        "//docs/examples:Pixmap_scalePixels_src",
+        "//docs/examples:Pixmap_setColorSpace_src",
+        "//docs/examples:Pixmap_shiftPerPixel_src",
+        "//docs/examples:Pixmap_width_src",
+        "//docs/examples:Pixmap_writable_addr16_src",
+        "//docs/examples:Pixmap_writable_addr32_src",
+        "//docs/examples:Pixmap_writable_addr64_src",
+        "//docs/examples:Pixmap_writable_addr8_src",
+        "//docs/examples:Pixmap_writable_addrF16_src",
+        "//docs/examples:Pixmap_writable_addr_2_src",
+        "//docs/examples:Pixmap_writable_addr_src",
+        "//docs/examples:Plus_src",
+        "//docs/examples:Point_CrossProduct_src",
+        "//docs/examples:Point_Distance_src",
+        "//docs/examples:Point_DotProduct_src",
+        "//docs/examples:Point_Length_src",
+        "//docs/examples:Point_Make_src",
+        "//docs/examples:Point_Normalize_src",
+        "//docs/examples:Point_Offset_2_src",
+        "//docs/examples:Point_Offset_src",
+        "//docs/examples:Point_add_operator_src",
+        "//docs/examples:Point_addto_operator_src",
+        "//docs/examples:Point_cross_src",
+        "//docs/examples:Point_distanceToOrigin_src",
+        "//docs/examples:Point_dot_src",
+        "//docs/examples:Point_equal_operator_src",
+        "//docs/examples:Point_equals_src",
+        "//docs/examples:Point_isFinite_src",
+        "//docs/examples:Point_isZero_src",
+        "//docs/examples:Point_iset_2_src",
+        "//docs/examples:Point_iset_src",
+        "//docs/examples:Point_length_2_src",
+        "//docs/examples:Point_minus_operator_src",
+        "//docs/examples:Point_multiply_operator_src",
+        "//docs/examples:Point_multiplyby_operator_src",
+        "//docs/examples:Point_negate_src",
+        "//docs/examples:Point_normalize_2_src",
+        "//docs/examples:Point_notequal_operator_src",
+        "//docs/examples:Point_offset_3_src",
+        "//docs/examples:Point_scale_2_src",
+        "//docs/examples:Point_scale_src",
+        "//docs/examples:Point_setAbs_src",
+        "//docs/examples:Point_setLength_2_src",
+        "//docs/examples:Point_setLength_src",
+        "//docs/examples:Point_setNormalize_src",
+        "//docs/examples:Point_set_src",
+        "//docs/examples:Point_subtract_operator_src",
+        "//docs/examples:Point_subtractfrom_operator_src",
+        "//docs/examples:Point_x_src",
+        "//docs/examples:Point_y_src",
+        "//docs/examples:PreMultiplyARGB_src",
+        "//docs/examples:PreMultiplyColor_src",
+        "//docs/examples:Quad_a_src",
+        "//docs/examples:Quad_b_src",
+        "//docs/examples:RGBA4f_FromColor_src",
+        "//docs/examples:RGBA4f_equal1_operator_src",
+        "//docs/examples:RGBA4f_notequal1_operator_src",
+        "//docs/examples:RGBA4f_toSkColor_src",
+        "//docs/examples:RGBA4f_vec_2_src",
+        "//docs/examples:RGBA4f_vec_src",
+        "//docs/examples:RGBToHSV_src",
+        "//docs/examples:RRect_Corner_src",
+        "//docs/examples:RRect_MakeEmpty_src",
+        "//docs/examples:RRect_MakeOval_src",
+        "//docs/examples:RRect_MakeRectXY_src",
+        "//docs/examples:RRect_MakeRect_src",
+        "//docs/examples:RRect_Type_src",
+        "//docs/examples:RRect_contains_src",
+        "//docs/examples:RRect_copy_const_SkRRect_src",
+        "//docs/examples:RRect_copy_operator_src",
+        "//docs/examples:RRect_dumpHex_src",
+        "//docs/examples:RRect_dump_2_src",
+        "//docs/examples:RRect_dump_src",
+        "//docs/examples:RRect_empty_constructor_src",
+        "//docs/examples:RRect_equal_operator_src",
+        "//docs/examples:RRect_getBounds_src",
+        "//docs/examples:RRect_getSimpleRadii_src",
+        "//docs/examples:RRect_getType_src",
+        "//docs/examples:RRect_height_src",
+        "//docs/examples:RRect_inset_2_src",
+        "//docs/examples:RRect_inset_src",
+        "//docs/examples:RRect_isComplex_src",
+        "//docs/examples:RRect_isEmpty_src",
+        "//docs/examples:RRect_isNinePatch_src",
+        "//docs/examples:RRect_isOval_src",
+        "//docs/examples:RRect_isRect_src",
+        "//docs/examples:RRect_isSimple_src",
+        "//docs/examples:RRect_isValid_src",
+        "//docs/examples:RRect_makeOffset_src",
+        "//docs/examples:RRect_notequal_operator_src",
+        "//docs/examples:RRect_offset_src",
+        "//docs/examples:RRect_outset_2_src",
+        "//docs/examples:RRect_outset_src",
+        "//docs/examples:RRect_radii_src",
+        "//docs/examples:RRect_readFromMemory_src",
+        "//docs/examples:RRect_rect_src",
+        "//docs/examples:RRect_setEmpty_src",
+        "//docs/examples:RRect_setNinePatch_src",
+        "//docs/examples:RRect_setOval_src",
+        "//docs/examples:RRect_setRectRadii_src",
+        "//docs/examples:RRect_setRectXY_src",
+        "//docs/examples:RRect_setRect_src",
+        "//docs/examples:RRect_transform_src",
+        "//docs/examples:RRect_type_2_src",
+        "//docs/examples:RRect_width_src",
+        "//docs/examples:RRect_writeToMemory_src",
+        "//docs/examples:Rect_Intersects_src",
+        "//docs/examples:Rect_MakeEmpty_src",
+        "//docs/examples:Rect_MakeIWH_src",
+        "//docs/examples:Rect_MakeLTRB_src",
+        "//docs/examples:Rect_MakeSize_src",
+        "//docs/examples:Rect_MakeWH_src",
+        "//docs/examples:Rect_MakeXYWH_src",
+        "//docs/examples:Rect_Make_2_src",
+        "//docs/examples:Rect_Make_src",
+        "//docs/examples:Rect_asScalars_src",
+        "//docs/examples:Rect_bottom_src",
+        "//docs/examples:Rect_centerX_src",
+        "//docs/examples:Rect_centerY_src",
+        "//docs/examples:Rect_contains_2_src",
+        "//docs/examples:Rect_contains_3_src",
+        "//docs/examples:Rect_contains_src",
+        "//docs/examples:Rect_dumpHex_src",
+        "//docs/examples:Rect_dump_2_src",
+        "//docs/examples:Rect_dump_src",
+        "//docs/examples:Rect_equal_operator_src",
+        "//docs/examples:Rect_height_src",
+        "//docs/examples:Rect_inset_src",
+        "//docs/examples:Rect_intersect_2_src",
+        "//docs/examples:Rect_intersect_3_src",
+        "//docs/examples:Rect_intersect_src",
+        "//docs/examples:Rect_intersects_2_src",
+        "//docs/examples:Rect_intersects_3_src",
+        "//docs/examples:Rect_isEmpty_src",
+        "//docs/examples:Rect_isFinite_src",
+        "//docs/examples:Rect_isSorted_src",
+        "//docs/examples:Rect_joinNonEmptyArg_src",
+        "//docs/examples:Rect_joinPossiblyEmptyRect_src",
+        "//docs/examples:Rect_join_2_src",
+        "//docs/examples:Rect_join_src",
+        "//docs/examples:Rect_left_src",
+        "//docs/examples:Rect_makeInset_src",
+        "//docs/examples:Rect_makeOffset_src",
+        "//docs/examples:Rect_makeOutset_src",
+        "//docs/examples:Rect_makeSorted_src",
+        "//docs/examples:Rect_notequal_operator_src",
+        "//docs/examples:Rect_offsetTo_src",
+        "//docs/examples:Rect_offset_2_src",
+        "//docs/examples:Rect_offset_src",
+        "//docs/examples:Rect_outset_src",
+        "//docs/examples:Rect_right_src",
+        "//docs/examples:Rect_roundIn_src",
+        "//docs/examples:Rect_roundOut_2_src",
+        "//docs/examples:Rect_roundOut_3_src",
+        "//docs/examples:Rect_roundOut_src",
+        "//docs/examples:Rect_round_2_src",
+        "//docs/examples:Rect_round_src",
+        "//docs/examples:Rect_setBoundsCheck_src",
+        "//docs/examples:Rect_setBoundsNoCheck_src",
+        "//docs/examples:Rect_setBounds_src",
+        "//docs/examples:Rect_setEmpty_src",
+        "//docs/examples:Rect_setLTRB_src",
+        "//docs/examples:Rect_setWH_src",
+        "//docs/examples:Rect_setXYWH_src",
+        "//docs/examples:Rect_set_4_src",
+        "//docs/examples:Rect_set_src",
+        "//docs/examples:Rect_sort_src",
+        "//docs/examples:Rect_toQuad_src",
+        "//docs/examples:Rect_top_src",
+        "//docs/examples:Rect_width_src",
+        "//docs/examples:Rect_x_src",
+        "//docs/examples:Rect_y_src",
+        "//docs/examples:Region_Cliperator_const_SkRegion_const_SkIRect_src",
+        "//docs/examples:Region_Cliperator_done_src",
+        "//docs/examples:Region_Cliperator_next_src",
+        "//docs/examples:Region_Cliperator_rect_src",
+        "//docs/examples:Region_Iterator_Iterator_src",
+        "//docs/examples:Region_Iterator_copy_const_SkRegion_src",
+        "//docs/examples:Region_Iterator_done_src",
+        "//docs/examples:Region_Iterator_next_src",
+        "//docs/examples:Region_Iterator_rect_src",
+        "//docs/examples:Region_Iterator_reset_src",
+        "//docs/examples:Region_Iterator_rewind_src",
+        "//docs/examples:Region_Iterator_rgn_src",
+        "//docs/examples:Region_Op_src",
+        "//docs/examples:Region_Spanerator_const_SkRegion_int_int_int_src",
+        "//docs/examples:Region_Spanerator_next_src",
+        "//docs/examples:Region_computeRegionComplexity_src",
+        "//docs/examples:Region_contains_2_src",
+        "//docs/examples:Region_contains_3_src",
+        "//docs/examples:Region_contains_src",
+        "//docs/examples:Region_copy_const_SkIRect_src",
+        "//docs/examples:Region_copy_const_SkRegion_src",
+        "//docs/examples:Region_copy_operator_src",
+        "//docs/examples:Region_destructor_src",
+        "//docs/examples:Region_empty_constructor_src",
+        "//docs/examples:Region_equal1_operator_src",
+        "//docs/examples:Region_getBoundaryPath_src",
+        "//docs/examples:Region_getBounds_src",
+        "//docs/examples:Region_intersects_2_src",
+        "//docs/examples:Region_intersects_src",
+        "//docs/examples:Region_isComplex_src",
+        "//docs/examples:Region_isEmpty_src",
+        "//docs/examples:Region_isRect_src",
+        "//docs/examples:Region_notequal1_operator_src",
+        "//docs/examples:Region_op_1_src",
+        "//docs/examples:Region_op_2_src",
+        "//docs/examples:Region_op_3_src",
+        "//docs/examples:Region_op_4_src",
+        "//docs/examples:Region_op_5_src",
+        "//docs/examples:Region_op_6_src",
+        "//docs/examples:Region_quickContains_src",
+        "//docs/examples:Region_quickReject_2_src",
+        "//docs/examples:Region_quickReject_src",
+        "//docs/examples:Region_readFromMemory_src",
+        "//docs/examples:Region_setEmpty_src",
+        "//docs/examples:Region_setPath_src",
+        "//docs/examples:Region_setRect_src",
+        "//docs/examples:Region_setRects_src",
+        "//docs/examples:Region_setRegion_src",
+        "//docs/examples:Region_set_src",
+        "//docs/examples:Region_swap_src",
+        "//docs/examples:Region_translate_2_src",
+        "//docs/examples:Region_translate_src",
+        "//docs/examples:Region_writeToMemory_src",
+        "//docs/examples:SKIA_LOGO_ANIMATE_src",
+        "//docs/examples:SKIA_LOGO_src",
+        "//docs/examples:SKIA_LOGO_svg_src",
+        "//docs/examples:Saturation_src",
+        "//docs/examples:Screen_src",
+        "//docs/examples:Shader_Methods_a_src",
+        "//docs/examples:Shader_Methods_b_src",
+        "//docs/examples:SkFontMgr_example2_src",
+        "//docs/examples:SkFontMgr_example_src",
+        "//docs/examples:SkImage_to_PPM_ascii_src",
+        "//docs/examples:SkImage_to_PPM_binary_src",
+        "//docs/examples:SkParsePath_FromSVGString_src",
+        "//docs/examples:SkParsePath_ToSVGString_src",
+        "//docs/examples:SkPath_arcTo_example_src",
+        "//docs/examples:SkPath_arcto_conic_parametric2_src",
+        "//docs/examples:SkPath_arcto_conic_parametric_src",
+        "//docs/examples:SkPath_cubicTo_example_parametric_animated_src",
+        "//docs/examples:SkPath_cubicTo_example_parametric_src",
+        "//docs/examples:SkPath_cubicTo_example_src",
+        "//docs/examples:SkPath_quadTo_example_parametric_animated_src",
+        "//docs/examples:SkPath_quadTo_example_parametric_src",
+        "//docs/examples:SkPath_quadTo_example_src",
+        "//docs/examples:SmoothBezierSplineInterpolation_src",
+        "//docs/examples:Soft_Light_src",
+        "//docs/examples:Src_Atop_src",
+        "//docs/examples:Src_In_src",
+        "//docs/examples:Src_Out_src",
+        "//docs/examples:Src_Over_src",
+        "//docs/examples:Src_src",
+        "//docs/examples:State_Stack_a_src",
+        "//docs/examples:State_Stack_b_src",
+        "//docs/examples:Stroke_Width_src",
+        "//docs/examples:Surface_MakeFromBackendTexture_src",
+        "//docs/examples:Surface_MakeNull_src",
+        "//docs/examples:Surface_MakeRasterDirectReleaseProc_src",
+        "//docs/examples:Surface_MakeRasterDirect_src",
+        "//docs/examples:Surface_MakeRasterN32Premul_src",
+        "//docs/examples:Surface_MakeRaster_2_src",
+        "//docs/examples:Surface_MakeRaster_src",
+        "//docs/examples:Surface_MakeRenderTarget_2_src",
+        "//docs/examples:Surface_MakeRenderTarget_3_src",
+        "//docs/examples:Surface_MakeRenderTarget_src",
+        "//docs/examples:Surface_characterize_src",
+        "//docs/examples:Surface_draw_2_src",
+        "//docs/examples:Surface_draw_src",
+        "//docs/examples:Surface_getCanvas_src",
+        "//docs/examples:Surface_height_src",
+        "//docs/examples:Surface_makeImageSnapshot_2_src",
+        "//docs/examples:Surface_makeImageSnapshot_src",
+        "//docs/examples:Surface_makeSurface_src",
+        "//docs/examples:Surface_notifyContentWillChange_src",
+        "//docs/examples:Surface_peekPixels_src",
+        "//docs/examples:Surface_props_src",
+        "//docs/examples:Surface_readPixels_2_src",
+        "//docs/examples:Surface_readPixels_3_src",
+        "//docs/examples:Surface_readPixels_src",
+        "//docs/examples:Surface_width_src",
+        "//docs/examples:Surface_writePixels_2_src",
+        "//docs/examples:Surface_writePixels_src",
+        "//docs/examples:TextBlobBuilder_allocRunPosH_src",
+        "//docs/examples:TextBlobBuilder_allocRunPos_src",
+        "//docs/examples:TextBlobBuilder_allocRun_src",
+        "//docs/examples:TextBlobBuilder_empty_constructor_src",
+        "//docs/examples:TextBlobBuilder_make_src",
+        "//docs/examples:TextBlob_Deserialize_src",
+        "//docs/examples:TextBlob_MakeFromString_src",
+        "//docs/examples:TextBlob_MakeFromText_src",
+        "//docs/examples:TextBlob_bounds_src",
+        "//docs/examples:TextBlob_getIntercepts_src",
+        "//docs/examples:TextBlob_serialize_2_src",
+        "//docs/examples:TextBlob_serialize_src",
+        "//docs/examples:TextBlob_uniqueID_src",
+        "//docs/examples:Text_Encoding_src",
+        "//docs/examples:Text_Scale_X_src",
+        "//docs/examples:Text_Size_src",
+        "//docs/examples:Text_Skew_X_src",
+        "//docs/examples:Turtle_src",
+        "//docs/examples:Typeface_Methods_src",
+        "//docs/examples:UnicornPoop_src",
+        "//docs/examples:UnpremulBugs_src",
+        "//docs/examples:UnpremulGPU_src",
+        "//docs/examples:Xor_src",
+        "//docs/examples:alpha_bitmap_color_filter_mask_filter_src",
+        "//docs/examples:alphaimage_shader_colorfilter_src",
+        "//docs/examples:backdrop_blur_with_rrect_clip_src",
+        "//docs/examples:bezier_curves_src",
+        "//docs/examples:blur4444_src",
+        "//docs/examples:blur_alpha_img_src",
+        "//docs/examples:blurbug_src",
+        "//docs/examples:bug5252_src",
+        "//docs/examples:bug583299_src",
+        "//docs/examples:bug6495_src",
+        "//docs/examples:bug7573_1_src",
+        "//docs/examples:bug7573_src",
+        "//docs/examples:bug767834_src",
+        "//docs/examples:bugoftheday_src",
+        "//docs/examples:checker_board_src",
+        "//docs/examples:color_filter_vs_colorFilterImageFilter_saveLayer_src",
+        "//docs/examples:compose_path_src",
+        "//docs/examples:convex_overstroke_linear_approx_curve_src",
+        "//docs/examples:convex_overstroke_quad_src",
+        "//docs/examples:count_verbs_src",
+        "//docs/examples:crbug_663246_src",
+        "//docs/examples:crbug_918512_src",
+        "//docs/examples:cubics_are_horrible_src",
+        "//docs/examples:default2_src",
+        "//docs/examples:default3_src",
+        "//docs/examples:default_src",
+        "//docs/examples:discrete_path_src",
+        "//docs/examples:dither1_src",
+        "//docs/examples:draw_a8_bitmap_src",
+        "//docs/examples:draw_image_nine_blur_mask_src",
+        "//docs/examples:draw_patch_src",
+        "//docs/examples:draw_pixel_array_nocopy_src",
+        "//docs/examples:draw_pixel_array_src",
+        "//docs/examples:draw_pixel_array_with_copy_src",
+        "//docs/examples:draw_text_fails_src",
+        "//docs/examples:draw_vertices_src",
+        "//docs/examples:drawarcs_src",
+        "//docs/examples:example3ps_src",
+        "//docs/examples:f16_src",
+        "//docs/examples:f16to8888busted_src",
+        "//docs/examples:f16to8888drawImageBug_src",
+        "//docs/examples:failing_example_src",
+        "//docs/examples:fivearcs_src",
+        "//docs/examples:flag_us_1792_src",
+        "//docs/examples:flag_us_1960_src",
+        "//docs/examples:fluttershadow_src",
+        "//docs/examples:gamma_mask_filter_src",
+        "//docs/examples:getLocalBounds_broken_src",
+        "//docs/examples:getLocalBounds_working_src",
+        "//docs/examples:gpu4444diff_src",
+        "//docs/examples:gpu8888diff_src",
+        "//docs/examples:gpuconicbug_src",
+        "//docs/examples:homogeneous_src",
+        "//docs/examples:image_subsets_get_different_uids_src",
+        "//docs/examples:image_to_bitmap_does_not_preserve_genid_src",
+        "//docs/examples:incomplete_src",
+        "//docs/examples:inlinepixmapconstructor_src",
+        "//docs/examples:issue640176_src",
+        "//docs/examples:l_system_plant_src",
+        "//docs/examples:maddash_src",
+        "//docs/examples:makeRasterImage_fail_src",
+        "//docs/examples:mapradius_src",
+        "//docs/examples:massive_coordinates_svg_src",
+        "//docs/examples:measure_text_bounds_src",
+        "//docs/examples:no_gpu_blur_src",
+        "//docs/examples:not_path_gradient_src",
+        "//docs/examples:pathmeasure_src",
+        "//docs/examples:pathops_src",
+        "//docs/examples:persp_text_2_src",
+        "//docs/examples:picture_shader_src",
+        "//docs/examples:pong2_src",
+        "//docs/examples:pong_src",
+        "//docs/examples:purplestamp_src",
+        "//docs/examples:radial_gradient_shader_with_animated_color_src",
+        "//docs/examples:radial_gradient_test_src",
+        "//docs/examples:redwhiteonblue_src",
+        "//docs/examples:rotations_src",
+        "//docs/examples:setimagefilter_src",
+        "//docs/examples:shader_alphaimage_src",
+        "//docs/examples:shader_src",
+        "//docs/examples:shapes_src",
+        "//docs/examples:shapes_with_motion_src",
+        "//docs/examples:skbug6031_src",
+        "//docs/examples:skbug_237_drawImageRect_src",
+        "//docs/examples:skbug_237_drawImage_with_blur_src",
+        "//docs/examples:skbug_5648_src",
+        "//docs/examples:skbug_633528_src",
+        "//docs/examples:skcanvas_paint_src",
+        "//docs/examples:skcanvas_square_src",
+        "//docs/examples:skcanvas_star_src",
+        "//docs/examples:skew_x_animated_src",
+        "//docs/examples:skpaint_2pt_src",
+        "//docs/examples:skpaint_bitmap_shader_src",
+        "//docs/examples:skpaint_blur_mask_filter_2_src",
+        "//docs/examples:skpaint_blur_mask_filter_src",
+        "//docs/examples:skpaint_color_table_filter_src",
+        "//docs/examples:skpaint_compose_path_effect_src",
+        "//docs/examples:skpaint_compose_shader_src",
+        "//docs/examples:skpaint_compose_src",
+        "//docs/examples:skpaint_corner_path_effects_src",
+        "//docs/examples:skpaint_dash_path_effect_src",
+        "//docs/examples:skpaint_discrete_path_effect_src",
+        "//docs/examples:skpaint_line_2d_path_effect_src",
+        "//docs/examples:skpaint_matrix_color_filter_src",
+        "//docs/examples:skpaint_mix_src",
+        "//docs/examples:skpaint_path_1d_path_effect_src",
+        "//docs/examples:skpaint_path_2d_path_effect_src",
+        "//docs/examples:skpaint_perlin_src",
+        "//docs/examples:skpaint_radial_src",
+        "//docs/examples:skpaint_shader_src",
+        "//docs/examples:skpaint_skia_src",
+        "//docs/examples:skpaint_sum_path_effect_src",
+        "//docs/examples:skpaint_sweep_src",
+        "//docs/examples:skpaint_turb_src",
+        "//docs/examples:skpaint_xfer_src",
+        "//docs/examples:software_bitmap_w_perspective_src",
+        "//docs/examples:star2_src",
+        "//docs/examples:star_src",
+        "//docs/examples:stroke_closed_degenerate_path_src",
+        "//docs/examples:strokerect_gm_src",
+        "//docs/examples:subset_example_src",
+        "//docs/examples:sum_path_effect_src",
+        "//docs/examples:sweep_gradient_talk_1_src",
+        "//docs/examples:sweep_gradient_talk_2_src",
+        "//docs/examples:sweep_gradient_talk_4_src",
+        "//docs/examples:sweep_gradient_talk_lots_src",
+        "//docs/examples:text_only_src",
+        "//docs/examples:text_rendering_src",
+        "//docs/examples:text_shadow_src",
+        "//docs/examples:unexpected_setAlphaType_src",
+        "//docs/examples:upscale_checkerboard_src",
+        "//docs/examples:weird_RRect_bug_src",
+        "//docs/examples:zero_off_dashing_src",
+    ],
+)
+
+generated_cc_atom(
+    name = "draw_src",
+    srcs = ["draw.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":fiddle_main_hdr",
+        "//tools/gpu:ManagedBackendTexture_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "egl_context_src",
+    srcs = ["egl_context.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkRefCnt_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//include/gpu/gl:GrGLFunctions_hdr",
+        "//include/gpu/gl:GrGLInterface_hdr",
+        "//tools/gpu/gl:GLTestContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "examples_hdr",
+    hdrs = ["examples.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//tools:Registry_hdr"],
+)
+
+generated_cc_atom(
+    name = "examples_src",
+    srcs = ["examples.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [":examples_hdr"],
+)
+
+generated_cc_atom(
+    name = "fiddle_main_hdr",
+    hdrs = ["fiddle_main.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkDocument_hdr",
+        "//include/core:SkPictureRecorder_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//include/gpu/gl:GrGLAssembleInterface_hdr",
+        "//include/gpu/gl:GrGLInterface_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "fiddle_main_src",
+    srcs = ["fiddle_main.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":fiddle_main_hdr",
+        "//include/gpu:GrBackendSurface_hdr",
+        "//src/core:SkAutoPixmapStorage_hdr",
+        "//src/core:SkMipmap_hdr",
+        "//src/core:SkOpts_hdr",
+        "//src/gpu:GrDirectContextPriv_hdr",
+        "//src/gpu:GrGpu_hdr",
+        "//src/gpu:GrRenderTarget_hdr",
+        "//src/gpu:GrResourceProvider_hdr",
+        "//tools/flags:CommandLineFlags_hdr",
+        "//tools/gpu:ManagedBackendTexture_hdr",
+        "//tools/gpu/gl:GLTestContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "null_context_src",
+    srcs = ["null_context.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [":fiddle_main_hdr"],
+)
diff --git a/tools/flags/BUILD.bazel b/tools/flags/BUILD.bazel
new file mode 100644
index 0000000..d38bb0f
--- /dev/null
+++ b/tools/flags/BUILD.bazel
@@ -0,0 +1,105 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "CommandLineFlags_hdr",
+    hdrs = ["CommandLineFlags.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkString_hdr",
+        "//include/private:SkTArray_hdr",
+        "//include/private:SkTDArray_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "CommandLineFlags_src",
+    srcs = ["CommandLineFlags.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":CommandLineFlags_hdr",
+        "//include/private:SkTDArray_hdr",
+        "//src/core:SkTSort_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "CommonFlagsAA_src",
+    srcs = ["CommonFlagsAA.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":CommonFlags_hdr",
+        "//src/core:SkScan_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "CommonFlagsConfig_hdr",
+    hdrs = ["CommonFlagsConfig.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":CommandLineFlags_hdr",
+        "//tools/gpu:GrContextFactory_hdr",
+        "//tools/graphite:ContextFactory_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "CommonFlagsConfig_src",
+    srcs = ["CommonFlagsConfig.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":CommonFlagsConfig_hdr",
+        "//include/core:SkImageInfo_hdr",
+        "//include/core:SkStringView_hdr",
+        "//include/core:SkSurfaceProps_hdr",
+        "//include/private:SkTHash_hdr",
+        "//src/core:SkColorSpacePriv_hdr",
+        "//src/core:SkSurfacePriv_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "CommonFlagsFontMgr_src",
+    srcs = ["CommonFlagsFontMgr.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":CommandLineFlags_hdr",
+        ":CommonFlags_hdr",
+        "//include/ports:SkTypeface_win_hdr",
+        "//src/core:SkFontMgrPriv_hdr",
+        "//tools/fonts:TestFontMgr_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "CommonFlagsGpu_src",
+    srcs = ["CommonFlagsGpu.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":CommonFlags_hdr",
+        "//include/core:SkExecutor_hdr",
+        "//include/gpu:GrContextOptions_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "CommonFlagsImages_src",
+    srcs = ["CommonFlagsImages.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":CommonFlags_hdr",
+        "//src/core:SkOSFile_hdr",
+        "//src/utils:SkOSPath_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "CommonFlags_hdr",
+    hdrs = ["CommonFlags.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":CommandLineFlags_hdr",
+        "//include/core:SkString_hdr",
+        "//include/private:SkTArray_hdr",
+    ],
+)
diff --git a/tools/fm/BUILD.bazel b/tools/fm/BUILD.bazel
new file mode 100644
index 0000000..3366046
--- /dev/null
+++ b/tools/fm/BUILD.bazel
@@ -0,0 +1,42 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "fm_src",
+    srcs = ["fm.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//gm:gm_hdr",
+        "//include/codec:SkCodec_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkColorSpace_hdr",
+        "//include/core:SkGraphics_hdr",
+        "//include/core:SkPictureRecorder_hdr",
+        "//include/core:SkPicture_hdr",
+        "//include/docs:SkPDFDocument_hdr",
+        "//include/gpu:GrContextOptions_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//include/private:SkTHash_hdr",
+        "//modules/skottie/include:Skottie_hdr",
+        "//modules/skresources/include:SkResources_hdr",
+        "//modules/svg/include:SkSVGDOM_hdr",
+        "//modules/svg/include:SkSVGNode_hdr",
+        "//src/core:SkColorSpacePriv_hdr",
+        "//src/core:SkMD5_hdr",
+        "//src/core:SkOSFile_hdr",
+        "//src/core:SkTaskGroup_hdr",
+        "//src/gpu:GrDirectContextPriv_hdr",
+        "//src/gpu:GrGpu_hdr",
+        "//src/utils:SkOSPath_hdr",
+        "//tests:Test_hdr",
+        "//tools:AutoreleasePool_hdr",
+        "//tools:CrashHandler_hdr",
+        "//tools:HashAndEncode_hdr",
+        "//tools:ToolUtils_hdr",
+        "//tools/flags:CommandLineFlags_hdr",
+        "//tools/flags:CommonFlags_hdr",
+        "//tools/gpu:BackendSurfaceFactory_hdr",
+        "//tools/gpu:GrContextFactory_hdr",
+        "//tools/gpu:MemoryCache_hdr",
+        "//tools/trace:EventTracingPriv_hdr",
+    ],
+)
diff --git a/tools/fm/fm_bot/BUILD.bazel b/tools/fm/fm_bot/BUILD.bazel
new file mode 100644
index 0000000..7e2c034
--- /dev/null
+++ b/tools/fm/fm_bot/BUILD.bazel
@@ -0,0 +1,14 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
+
+go_library(
+    name = "fm_bot_lib",
+    srcs = ["fm_bot.go"],
+    importpath = "go.skia.org/skia/tools/fm/fm_bot",
+    visibility = ["//visibility:private"],
+)
+
+go_binary(
+    name = "fm_bot",
+    embed = [":fm_bot_lib"],
+    visibility = ["//visibility:public"],
+)
diff --git a/tools/fonts/BUILD.bazel b/tools/fonts/BUILD.bazel
new file mode 100644
index 0000000..fd87b3f
--- /dev/null
+++ b/tools/fonts/BUILD.bazel
@@ -0,0 +1,251 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "RandomScalerContext_hdr",
+    hdrs = ["RandomScalerContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkTypeface_hdr",
+        "//src/core:SkScalerContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "RandomScalerContext_src",
+    srcs = ["RandomScalerContext.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":RandomScalerContext_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkPath_hdr",
+        "//src/core:SkAdvancedTypefaceMetrics_hdr",
+        "//src/core:SkGlyph_hdr",
+        "//src/core:SkRectPriv_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "TestEmptyTypeface_hdr",
+    hdrs = ["TestEmptyTypeface.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkStream_hdr",
+        "//include/core:SkTypeface_hdr",
+        "//src/core:SkAdvancedTypefaceMetrics_hdr",
+        "//src/core:SkScalerContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "TestFontMgr_hdr",
+    hdrs = ["TestFontMgr.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//include/core:SkFontMgr_hdr"],
+)
+
+generated_cc_atom(
+    name = "TestFontMgr_src",
+    srcs = ["TestFontMgr.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":TestFontMgr_hdr",
+        ":TestSVGTypeface_hdr",
+        ":TestTypeface_hdr",
+        ":test_font_index_hdr",
+        ":test_font_monospace_hdr",
+        ":test_font_sans_serif_hdr",
+        ":test_font_serif_hdr",
+        "//src/core:SkFontDescriptor_hdr",
+        "//tools:ToolUtils_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "TestSVGTypeface_hdr",
+    hdrs = ["TestSVGTypeface.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkFontArguments_hdr",
+        "//include/core:SkFontMetrics_hdr",
+        "//include/core:SkPaint_hdr",
+        "//include/core:SkPoint_hdr",
+        "//include/core:SkRect_hdr",
+        "//include/core:SkRefCnt_hdr",
+        "//include/core:SkScalar_hdr",
+        "//include/core:SkSpan_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkString_hdr",
+        "//include/core:SkTypeface_hdr",
+        "//include/core:SkTypes_hdr",
+        "//include/pathops:SkPathOps_hdr",
+        "//include/private:SkMutex_hdr",
+        "//include/private:SkTArray_hdr",
+        "//include/private:SkTHash_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "TestSVGTypeface_src",
+    srcs = ["TestSVGTypeface.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":TestSVGTypeface_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkColor_hdr",
+        "//include/core:SkData_hdr",
+        "//include/core:SkEncodedImageFormat_hdr",
+        "//include/core:SkFontStyle_hdr",
+        "//include/core:SkImageInfo_hdr",
+        "//include/core:SkImage_hdr",
+        "//include/core:SkMatrix_hdr",
+        "//include/core:SkPathEffect_hdr",
+        "//include/core:SkPath_hdr",
+        "//include/core:SkPixmap_hdr",
+        "//include/core:SkRRect_hdr",
+        "//include/core:SkSize_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/pathops:SkPathOps_hdr",
+        "//include/private:SkTDArray_hdr",
+        "//include/private:SkTemplates_hdr",
+        "//include/utils:SkNoDrawCanvas_hdr",
+        "//modules/svg/include:SkSVGDOM_hdr",
+        "//modules/svg/include:SkSVGNode_hdr",
+        "//src/core:SkAdvancedTypefaceMetrics_hdr",
+        "//src/core:SkFontDescriptor_hdr",
+        "//src/core:SkFontPriv_hdr",
+        "//src/core:SkGeometry_hdr",
+        "//src/core:SkGlyph_hdr",
+        "//src/core:SkMask_hdr",
+        "//src/core:SkPaintPriv_hdr",
+        "//src/core:SkPathPriv_hdr",
+        "//src/core:SkPointPriv_hdr",
+        "//src/core:SkScalerContext_hdr",
+        "//src/core:SkUtils_hdr",
+        "//src/sfnt:SkOTUtils_hdr",
+        "//tools:Resources_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "TestTypeface_hdr",
+    hdrs = ["TestTypeface.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkFontArguments_hdr",
+        "//include/core:SkFontMetrics_hdr",
+        "//include/core:SkFontStyle_hdr",
+        "//include/core:SkPaint_hdr",
+        "//include/core:SkRefCnt_hdr",
+        "//include/core:SkScalar_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkTypeface_hdr",
+        "//include/core:SkTypes_hdr",
+        "//include/private:SkFixed_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "TestTypeface_src",
+    srcs = ["TestTypeface.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":TestTypeface_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkFontMetrics_hdr",
+        "//include/core:SkImageInfo_hdr",
+        "//include/core:SkMatrix_hdr",
+        "//include/core:SkPathBuilder_hdr",
+        "//include/core:SkPoint_hdr",
+        "//include/core:SkRect_hdr",
+        "//include/core:SkString_hdr",
+        "//include/private:SkTDArray_hdr",
+        "//include/private:SkTo_hdr",
+        "//src/core:SkAdvancedTypefaceMetrics_hdr",
+        "//src/core:SkFontDescriptor_hdr",
+        "//src/core:SkFontPriv_hdr",
+        "//src/core:SkGlyph_hdr",
+        "//src/core:SkPaintPriv_hdr",
+        "//src/core:SkScalerContext_hdr",
+        "//src/core:SkUtils_hdr",
+        "//src/sfnt:SkOTUtils_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ToolUtilsFont_src",
+    srcs = ["ToolUtilsFont.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":TestFontMgr_hdr",
+        "//include/core:SkFontMgr_hdr",
+        "//include/core:SkFontStyle_hdr",
+        "//include/core:SkTypeface_hdr",
+        "//include/private:SkMutex_hdr",
+        "//include/utils:SkCustomTypeface_hdr",
+        "//src/core:SkOSFile_hdr",
+        "//src/utils:SkUTF_hdr",
+        "//tools:Resources_hdr",
+        "//tools:ToolUtils_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "create_test_font_color_src",
+    srcs = ["create_test_font_color.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":TestSVGTypeface_hdr",
+        "//include/core:SkRefCnt_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkString_hdr",
+        "//tools/flags:CommandLineFlags_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "create_test_font_src",
+    srcs = ["create_test_font.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkFontMetrics_hdr",
+        "//include/core:SkFontStyle_hdr",
+        "//include/core:SkFont_hdr",
+        "//include/core:SkPath_hdr",
+        "//include/core:SkSpan_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkTypeface_hdr",
+        "//include/private:SkTArray_hdr",
+        "//src/core:SkOSFile_hdr",
+        "//src/core:SkPathPriv_hdr",
+        "//src/utils:SkOSPath_hdr",
+        "//src/utils:SkUTF_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "test_font_index_hdr",
+    hdrs = ["test_font_index.inc"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "test_font_monospace_hdr",
+    hdrs = ["test_font_monospace.inc"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "test_font_sans_serif_hdr",
+    hdrs = ["test_font_sans_serif.inc"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "test_font_serif_hdr",
+    hdrs = ["test_font_serif.inc"],
+    visibility = ["//:__subpackages__"],
+)
diff --git a/tools/fonts/TestFontMgr.cpp b/tools/fonts/TestFontMgr.cpp
index aba8e0e..e957c07 100644
--- a/tools/fonts/TestFontMgr.cpp
+++ b/tools/fonts/TestFontMgr.cpp
@@ -18,11 +18,11 @@
 
 namespace {
 
-#include "test_font_monospace.inc"
-#include "test_font_sans_serif.inc"
-#include "test_font_serif.inc"
+#include "tools/fonts/test_font_monospace.inc"
+#include "tools/fonts/test_font_sans_serif.inc"
+#include "tools/fonts/test_font_serif.inc"
 
-#include "test_font_index.inc"
+#include "tools/fonts/test_font_index.inc"
 
 class FontStyleSet final : public SkFontStyleSet {
 public:
diff --git a/tools/gpu/BUILD.bazel b/tools/gpu/BUILD.bazel
new file mode 100644
index 0000000..89cde21
--- /dev/null
+++ b/tools/gpu/BUILD.bazel
@@ -0,0 +1,326 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "BackendSurfaceFactory_hdr",
+    hdrs = ["BackendSurfaceFactory.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkImageInfo_hdr",
+        "//include/core:SkSize_hdr",
+        "//include/gpu:GrTypes_hdr",
+        "//include/private:SkColorData_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "BackendSurfaceFactory_src",
+    srcs = ["BackendSurfaceFactory.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":BackendSurfaceFactory_hdr",
+        ":ManagedBackendTexture_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//src/gpu:GrDirectContextPriv_hdr",
+        "//src/gpu:GrGpu_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "BackendTextureImageFactory_hdr",
+    hdrs = ["BackendTextureImageFactory.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkColor_hdr",
+        "//include/core:SkRefCnt_hdr",
+        "//include/gpu:GrTypes_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "BackendTextureImageFactory_src",
+    srcs = ["BackendTextureImageFactory.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":BackendTextureImageFactory_hdr",
+        ":ManagedBackendTexture_hdr",
+        "//include/core:SkImage_hdr",
+        "//include/core:SkPixmap_hdr",
+        "//include/gpu:GrBackendSurface_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//src/core:SkAutoPixmapStorage_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "FenceSync_hdr",
+    hdrs = ["FenceSync.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//include/core:SkTypes_hdr"],
+)
+
+generated_cc_atom(
+    name = "FlushFinishTracker_hdr",
+    hdrs = ["FlushFinishTracker.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//include/core:SkRefCnt_hdr"],
+)
+
+generated_cc_atom(
+    name = "FlushFinishTracker_src",
+    srcs = ["FlushFinishTracker.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":FlushFinishTracker_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//src/core:SkTraceEvent_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "GpuTimer_hdr",
+    hdrs = ["GpuTimer.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//include/core:SkTypes_hdr"],
+)
+
+generated_cc_atom(
+    name = "GrContextFactory_hdr",
+    hdrs = ["GrContextFactory.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/gpu:GrContextOptions_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//include/private:SkTArray_hdr",
+        "//tools/gpu/gl:GLTestContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "GrContextFactory_src",
+    srcs = ["GrContextFactory.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":GrContextFactory_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//src/gpu:GrCaps_hdr",
+        "//src/gpu:GrDirectContextPriv_hdr",
+        "//tools/gpu/d3d:D3DTestContext_hdr",
+        "//tools/gpu/dawn:DawnTestContext_hdr",
+        "//tools/gpu/gl:GLTestContext_hdr",
+        "//tools/gpu/gl/angle:GLTestContext_angle_hdr",
+        "//tools/gpu/gl/command_buffer:GLTestContext_command_buffer_hdr",
+        "//tools/gpu/mock:MockTestContext_hdr",
+        "//tools/gpu/mtl:MtlTestContext_hdr",
+        "//tools/gpu/vk:VkTestContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "GrTest_src",
+    srcs = ["GrTest.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkString_hdr",
+        "//include/gpu:GrBackendSurface_hdr",
+        "//include/gpu:GrContextOptions_hdr",
+        "//include/gpu:GrRecordingContext_hdr",
+        "//include/private:SkTo_hdr",
+        "//src/core:SkMathPriv_hdr",
+        "//src/gpu:GrClip_hdr",
+        "//src/gpu:GrDirectContextPriv_hdr",
+        "//src/gpu:GrDrawOpAtlas_hdr",
+        "//src/gpu:GrDrawingManager_hdr",
+        "//src/gpu:GrGpuResourceCacheAccess_hdr",
+        "//src/gpu:GrGpu_hdr",
+        "//src/gpu:GrMemoryPool_hdr",
+        "//src/gpu:GrRecordingContextPriv_hdr",
+        "//src/gpu:GrRenderTargetProxy_hdr",
+        "//src/gpu:GrResourceCache_hdr",
+        "//src/gpu:GrSemaphore_hdr",
+        "//src/gpu:GrTexture_hdr",
+        "//src/gpu:SkGr_hdr",
+        "//src/gpu/text:GrStrikeCache_hdr",
+        "//src/gpu/text:GrTextBlobCache_hdr",
+        "//src/gpu/v1:SurfaceDrawContext_v1_hdr",
+        "//src/image:SkImage_Gpu_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ManagedBackendTexture_hdr",
+    hdrs = ["ManagedBackendTexture.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkRefCnt_hdr",
+        "//include/core:SkYUVAInfo_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ManagedBackendTexture_src",
+    srcs = ["ManagedBackendTexture.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":ManagedBackendTexture_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkImageInfo_hdr",
+        "//include/private:GrTypesPriv_hdr",
+        "//src/core:SkMipmap_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "MemoryCache_hdr",
+    hdrs = ["MemoryCache.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkData_hdr",
+        "//include/gpu:GrContextOptions_hdr",
+        "//include/private:SkChecksum_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "MemoryCache_src",
+    srcs = ["MemoryCache.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":MemoryCache_hdr",
+        "//include/utils:SkBase64_hdr",
+        "//src/core:SkMD5_hdr",
+        "//src/core:SkReadBuffer_hdr",
+        "//src/gpu:GrPersistentCacheUtils_hdr",
+        "//src/gpu/vk:GrVkGpu_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ProxyUtils_hdr",
+    hdrs = ["ProxyUtils.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/private:GrTypesPriv_hdr",
+        "//src/gpu:GrImageInfo_hdr",
+        "//src/gpu:GrPipeline_hdr",
+        "//src/gpu:GrTextureProxy_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ProxyUtils_src",
+    srcs = ["ProxyUtils.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":ProxyUtils_hdr",
+        "//include/core:SkColor_hdr",
+        "//include/gpu:GrBackendSurface_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//include/private:GrImageContext_hdr",
+        "//src/gpu:GrDirectContextPriv_hdr",
+        "//src/gpu:GrDrawingManager_hdr",
+        "//src/gpu:GrGpu_hdr",
+        "//src/gpu:GrImageContextPriv_hdr",
+        "//src/gpu:GrPixmap_hdr",
+        "//src/gpu:GrProgramInfo_hdr",
+        "//src/gpu:GrProxyProvider_hdr",
+        "//src/gpu:SkGr_hdr",
+        "//src/gpu:SurfaceContext_hdr",
+        "//src/gpu/ops:GrSimpleMeshDrawOpHelper_hdr",
+        "//src/image:SkImage_Base_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "TestContext_hdr",
+    hdrs = ["TestContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":FenceSync_hdr",
+        "//include/core:SkRefCnt_hdr",
+        "//include/gpu:GrTypes_hdr",
+        "//include/private:SkNoncopyable_hdr",
+        "//include/private:SkTemplates_hdr",
+        "//src/core:SkScopeExit_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "TestContext_src",
+    srcs = ["TestContext.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":FlushFinishTracker_hdr",
+        ":GpuTimer_hdr",
+        ":TestContext_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//src/core:SkTraceEvent_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "TestOps_hdr",
+    hdrs = ["TestOps.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkRefCnt_hdr",
+        "//include/gpu:GrRecordingContext_hdr",
+        "//src/gpu:GrRecordingContextPriv_hdr",
+        "//src/gpu/ops:GrOp_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "TestOps_src",
+    srcs = ["TestOps.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":TestOps_hdr",
+        "//src/core:SkPointPriv_hdr",
+        "//src/gpu:BufferWriter_hdr",
+        "//src/gpu:GrCaps_hdr",
+        "//src/gpu:GrGeometryProcessor_hdr",
+        "//src/gpu:GrMemoryPool_hdr",
+        "//src/gpu:GrOpFlushState_hdr",
+        "//src/gpu:GrProgramInfo_hdr",
+        "//src/gpu/glsl:GrGLSLFragmentShaderBuilder_hdr",
+        "//src/gpu/glsl:GrGLSLVarying_hdr",
+        "//src/gpu/glsl:GrGLSLVertexGeoBuilder_hdr",
+        "//src/gpu/ops:GrSimpleMeshDrawOpHelper_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "YUVUtils_hdr",
+    hdrs = ["YUVUtils.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkImage_hdr",
+        "//include/core:SkYUVAPixmaps_hdr",
+        "//include/gpu:GrBackendSurface_hdr",
+        "//src/core:SkAutoMalloc_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "YUVUtils_src",
+    srcs = ["YUVUtils.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":ManagedBackendTexture_hdr",
+        ":YUVUtils_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkColorFilter_hdr",
+        "//include/core:SkColorPriv_hdr",
+        "//include/core:SkData_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/gpu:GrRecordingContext_hdr",
+        "//include/gpu:GrYUVABackendTextures_hdr",
+        "//src/codec:SkCodecImageGenerator_hdr",
+        "//src/core:SkYUVAInfoLocation_hdr",
+        "//src/core:SkYUVMath_hdr",
+        "//src/gpu:GrDirectContextPriv_hdr",
+        "//src/gpu:GrRecordingContextPriv_hdr",
+    ],
+)
diff --git a/tools/gpu/d3d/BUILD.bazel b/tools/gpu/d3d/BUILD.bazel
new file mode 100644
index 0000000..043d7f2
--- /dev/null
+++ b/tools/gpu/d3d/BUILD.bazel
@@ -0,0 +1,38 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "D3DTestContext_hdr",
+    hdrs = ["D3DTestContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/gpu/d3d:GrD3DBackendContext_hdr",
+        "//tools/gpu:TestContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "D3DTestContext_src",
+    srcs = ["D3DTestContext.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":D3DTestContext_hdr",
+        ":D3DTestUtils_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "D3DTestUtils_hdr",
+    hdrs = ["D3DTestUtils.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "D3DTestUtils_src",
+    srcs = ["D3DTestUtils.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":D3DTestUtils_hdr",
+        "//include/gpu/d3d:GrD3DBackendContext_hdr",
+    ],
+)
diff --git a/tools/gpu/dawn/BUILD.bazel b/tools/gpu/dawn/BUILD.bazel
new file mode 100644
index 0000000..a2e299a
--- /dev/null
+++ b/tools/gpu/dawn/BUILD.bazel
@@ -0,0 +1,23 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "DawnTestContext_hdr",
+    hdrs = ["DawnTestContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//tools/gpu:TestContext_hdr"],
+)
+
+generated_cc_atom(
+    name = "DawnTestContext_src",
+    srcs = ["DawnTestContext.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":DawnTestContext_hdr",
+        "//GL:glx_hdr",
+        "//dawn:dawn_proc_hdr",
+        "//dawn:webgpu_hdr",
+        "//dawn_native:OpenGLBackend_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//tools:AutoreleasePool_hdr",
+    ],
+)
diff --git a/tools/gpu/gl/BUILD.bazel b/tools/gpu/gl/BUILD.bazel
new file mode 100644
index 0000000..4a85813
--- /dev/null
+++ b/tools/gpu/gl/BUILD.bazel
@@ -0,0 +1,24 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "GLTestContext_hdr",
+    hdrs = ["GLTestContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/gpu/gl:GrGLInterface_hdr",
+        "//src/gpu/gl:GrGLUtil_hdr",
+        "//tools/gpu:TestContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "GLTestContext_src",
+    srcs = ["GLTestContext.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":GLTestContext_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//src/gpu/gl:GrGLUtil_hdr",
+        "//tools/gpu:GpuTimer_hdr",
+    ],
+)
diff --git a/tools/gpu/gl/angle/BUILD.bazel b/tools/gpu/gl/angle/BUILD.bazel
new file mode 100644
index 0000000..4af4915
--- /dev/null
+++ b/tools/gpu/gl/angle/BUILD.bazel
@@ -0,0 +1,25 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "GLTestContext_angle_hdr",
+    hdrs = ["GLTestContext_angle.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//tools/gpu/gl:GLTestContext_hdr"],
+)
+
+generated_cc_atom(
+    name = "GLTestContext_angle_src",
+    srcs = ["GLTestContext_angle.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":GLTestContext_angle_hdr",
+        "//include/core:SkTime_hdr",
+        "//include/gpu/gl:GrGLAssembleInterface_hdr",
+        "//include/gpu/gl:GrGLInterface_hdr",
+        "//src/core:SkTraceEvent_hdr",
+        "//src/gpu/gl:GrGLDefines_hdr",
+        "//src/gpu/gl:GrGLUtil_hdr",
+        "//src/ports:SkOSLibrary_hdr",
+        "//third_party/externals/angle2/include/platform:Platform_hdr",
+    ],
+)
diff --git a/tools/gpu/gl/command_buffer/BUILD.bazel b/tools/gpu/gl/command_buffer/BUILD.bazel
new file mode 100644
index 0000000..8b6656b
--- /dev/null
+++ b/tools/gpu/gl/command_buffer/BUILD.bazel
@@ -0,0 +1,22 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "GLTestContext_command_buffer_hdr",
+    hdrs = ["GLTestContext_command_buffer.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//tools/gpu/gl:GLTestContext_hdr"],
+)
+
+generated_cc_atom(
+    name = "GLTestContext_command_buffer_src",
+    srcs = ["GLTestContext_command_buffer.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":GLTestContext_command_buffer_hdr",
+        "//include/gpu/gl:GrGLAssembleInterface_hdr",
+        "//include/gpu/gl:GrGLInterface_hdr",
+        "//include/private:SkMutex_hdr",
+        "//include/private:SkOnce_hdr",
+        "//src/ports:SkOSLibrary_hdr",
+    ],
+)
diff --git a/tools/gpu/gl/egl/BUILD.bazel b/tools/gpu/gl/egl/BUILD.bazel
new file mode 100644
index 0000000..68d4c32
--- /dev/null
+++ b/tools/gpu/gl/egl/BUILD.bazel
@@ -0,0 +1,12 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "CreatePlatformGLTestContext_egl_src",
+    srcs = ["CreatePlatformGLTestContext_egl.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//src/gpu/gl:GrGLDefines_hdr",
+        "//src/gpu/gl:GrGLUtil_hdr",
+        "//tools/gpu/gl:GLTestContext_hdr",
+    ],
+)
diff --git a/tools/gpu/gl/glx/BUILD.bazel b/tools/gpu/gl/glx/BUILD.bazel
new file mode 100644
index 0000000..f07e4d7
--- /dev/null
+++ b/tools/gpu/gl/glx/BUILD.bazel
@@ -0,0 +1,11 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "CreatePlatformGLTestContext_glx_src",
+    srcs = ["CreatePlatformGLTestContext_glx.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/private:SkOnce_hdr",
+        "//tools/gpu/gl:GLTestContext_hdr",
+    ],
+)
diff --git a/tools/gpu/gl/interface/BUILD.bazel b/tools/gpu/gl/interface/BUILD.bazel
new file mode 100644
index 0000000..de3ccab
--- /dev/null
+++ b/tools/gpu/gl/interface/BUILD.bazel
@@ -0,0 +1,18 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
+
+go_library(
+    name = "interface_lib",
+    srcs = [
+        "gen_interface.go",
+        "templates.go",
+    ],
+    importpath = "go.skia.org/skia/tools/gpu/gl/interface",
+    visibility = ["//visibility:private"],
+    deps = ["@com_github_flynn_json5//:json5"],
+)
+
+go_binary(
+    name = "interface",
+    embed = [":interface_lib"],
+    visibility = ["//visibility:public"],
+)
diff --git a/tools/gpu/gl/mac/BUILD.bazel b/tools/gpu/gl/mac/BUILD.bazel
new file mode 100644
index 0000000..c797825
--- /dev/null
+++ b/tools/gpu/gl/mac/BUILD.bazel
@@ -0,0 +1,11 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "CreatePlatformGLTestContext_mac_src",
+    srcs = ["CreatePlatformGLTestContext_mac.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkTypes_hdr",
+        "//tools/gpu/gl:GLTestContext_hdr",
+    ],
+)
diff --git a/tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp b/tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp
index e5ff2fa..6362383 100644
--- a/tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp
+++ b/tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp
@@ -8,8 +8,8 @@
 #include "include/core/SkTypes.h"
 
 #include "tools/gpu/gl/GLTestContext.h"
-#include "AvailabilityMacros.h"
 
+#include <AvailabilityMacros.h>
 #include <OpenGL/OpenGL.h>
 #include <dlfcn.h>
 
diff --git a/tools/gpu/gl/none/BUILD.bazel b/tools/gpu/gl/none/BUILD.bazel
new file mode 100644
index 0000000..49098b3
--- /dev/null
+++ b/tools/gpu/gl/none/BUILD.bazel
@@ -0,0 +1,8 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "CreatePlatformGLTestContext_none_src",
+    srcs = ["CreatePlatformGLTestContext_none.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//tools/gpu/gl:GLTestContext_hdr"],
+)
diff --git a/tools/gpu/gl/win/BUILD.bazel b/tools/gpu/gl/win/BUILD.bazel
new file mode 100644
index 0000000..3254e1d
--- /dev/null
+++ b/tools/gpu/gl/win/BUILD.bazel
@@ -0,0 +1,11 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "CreatePlatformGLTestContext_win_src",
+    srcs = ["CreatePlatformGLTestContext_win.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//src/utils/win:SkWGL_hdr",
+        "//tools/gpu/gl:GLTestContext_hdr",
+    ],
+)
diff --git a/tools/gpu/mock/BUILD.bazel b/tools/gpu/mock/BUILD.bazel
new file mode 100644
index 0000000..d0ccc1b
--- /dev/null
+++ b/tools/gpu/mock/BUILD.bazel
@@ -0,0 +1,18 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "MockTestContext_hdr",
+    hdrs = ["MockTestContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//tools/gpu:TestContext_hdr"],
+)
+
+generated_cc_atom(
+    name = "MockTestContext_src",
+    srcs = ["MockTestContext.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":MockTestContext_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+    ],
+)
diff --git a/tools/gpu/mtl/BUILD.bazel b/tools/gpu/mtl/BUILD.bazel
new file mode 100644
index 0000000..df9925c
--- /dev/null
+++ b/tools/gpu/mtl/BUILD.bazel
@@ -0,0 +1,11 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "MtlTestContext_hdr",
+    hdrs = ["MtlTestContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/gpu/mtl:GrMtlBackendContext_hdr",
+        "//tools/gpu:TestContext_hdr",
+    ],
+)
diff --git a/tools/gpu/vk/BUILD.bazel b/tools/gpu/vk/BUILD.bazel
new file mode 100644
index 0000000..b82e254
--- /dev/null
+++ b/tools/gpu/vk/BUILD.bazel
@@ -0,0 +1,103 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "GrVulkanDefines_hdr",
+    hdrs = ["GrVulkanDefines.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//include/core:SkTypes_hdr"],
+)
+
+generated_cc_atom(
+    name = "VkTestContext_hdr",
+    hdrs = ["VkTestContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":GrVulkanDefines_hdr",
+        "//include/gpu/vk:GrVkBackendContext_hdr",
+        "//tools/gpu:TestContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "VkTestContext_src",
+    srcs = ["VkTestContext.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":VkTestContext_hdr",
+        ":VkTestUtils_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//include/gpu/vk:GrVkExtensions_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "VkTestHelper_hdr",
+    hdrs = ["VkTestHelper.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkRefCnt_hdr",
+        "//include/core:SkTypes_hdr",
+        "//include/gpu/vk:GrVkBackendContext_hdr",
+        "//include/gpu/vk:GrVkExtensions_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "VkTestHelper_src",
+    srcs = ["VkTestHelper.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":VkTestHelper_hdr",
+        ":VkTestUtils_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "VkTestUtils_hdr",
+    hdrs = ["VkTestUtils.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":GrVulkanDefines_hdr",
+        "//include/core:SkTypes_hdr",
+        "//include/gpu/vk:GrVkBackendContext_hdr",
+        "//include/gpu/vk:GrVkTypes_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "VkTestUtils_src",
+    srcs = ["VkTestUtils.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":VkTestUtils_hdr",
+        "//include/gpu/vk:GrVkBackendContext_hdr",
+        "//include/gpu/vk:GrVkExtensions_hdr",
+        "//src/core:SkAutoMalloc_hdr",
+        "//src/ports:SkOSLibrary_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "VkYcbcrSamplerHelper_hdr",
+    hdrs = ["VkYcbcrSamplerHelper.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkTypes_hdr",
+        "//include/gpu:GrBackendSurface_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "VkYcbcrSamplerHelper_src",
+    srcs = ["VkYcbcrSamplerHelper.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":VkYcbcrSamplerHelper_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//src/gpu:GrDirectContextPriv_hdr",
+        "//src/gpu/vk:GrVkGpu_hdr",
+        "//src/gpu/vk:GrVkUtil_hdr",
+    ],
+)
diff --git a/tools/graphite/BUILD.bazel b/tools/graphite/BUILD.bazel
new file mode 100644
index 0000000..be9fd3a
--- /dev/null
+++ b/tools/graphite/BUILD.bazel
@@ -0,0 +1,40 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "ContextFactory_hdr",
+    hdrs = ["ContextFactory.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":GraphiteTestContext_hdr",
+        "//experimental/graphite/include:GraphiteTypes_hdr",
+        "//include/core:SkRefCnt_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ContextFactory_src",
+    srcs = ["ContextFactory.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":ContextFactory_hdr",
+        "//experimental/graphite/include:Context_hdr",
+        "//tools/graphite/mtl:GraphiteMtlTestContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "GraphiteTestContext_hdr",
+    hdrs = ["GraphiteTestContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//experimental/graphite/include:GraphiteTypes_hdr",
+        "//include/core:SkRefCnt_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "GraphiteTestContext_src",
+    srcs = ["GraphiteTestContext.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [":GraphiteTestContext_hdr"],
+)
diff --git a/tools/graphite/mtl/BUILD.bazel b/tools/graphite/mtl/BUILD.bazel
new file mode 100644
index 0000000..280790a
--- /dev/null
+++ b/tools/graphite/mtl/BUILD.bazel
@@ -0,0 +1,11 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "GraphiteMtlTestContext_hdr",
+    hdrs = ["GraphiteMtlTestContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//experimental/graphite/include/mtl:MtlBackendContext_hdr",
+        "//tools/graphite:GraphiteTestContext_hdr",
+    ],
+)
diff --git a/tools/mdbviz/BUILD.bazel b/tools/mdbviz/BUILD.bazel
new file mode 100644
index 0000000..c91733b
--- /dev/null
+++ b/tools/mdbviz/BUILD.bazel
@@ -0,0 +1,45 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "Model_hdr",
+    hdrs = ["Model.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkBitmap_hdr",
+        "//include/private:SkTDArray_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "Model_src",
+    srcs = ["Model.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Model_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkPicture_hdr",
+        "//include/core:SkStream_hdr",
+        "//tools/debugger:DebugCanvas_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "main_src",
+    srcs = ["main.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [":mainwindow_hdr"],
+)
+
+generated_cc_atom(
+    name = "mainwindow_hdr",
+    hdrs = ["mainwindow.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [":Model_hdr"],
+)
+
+generated_cc_atom(
+    name = "mainwindow_src",
+    srcs = ["mainwindow.cpp"],
+    visibility = ["//:__subpackages__"],
+)
diff --git a/tools/sk_app/BUILD.bazel b/tools/sk_app/BUILD.bazel
new file mode 100644
index 0000000..d977eb7
--- /dev/null
+++ b/tools/sk_app/BUILD.bazel
@@ -0,0 +1,210 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "Application_hdr",
+    hdrs = ["Application.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "CommandSet_hdr",
+    hdrs = ["CommandSet.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Window_hdr",
+        "//include/core:SkString_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "CommandSet_src",
+    srcs = ["CommandSet.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":CommandSet_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkFont_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "DawnWindowContext_hdr",
+    hdrs = ["DawnWindowContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContext_hdr",
+        "//dawn:dawn_wsi_hdr",
+        "//dawn_native:DawnNative_hdr",
+        "//include/core:SkRefCnt_hdr",
+        "//include/core:SkSurface_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "DawnWindowContext_src",
+    srcs = ["DawnWindowContext.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":DawnWindowContext_hdr",
+        "//dawn:dawn_proc_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/gpu:GrBackendSurface_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//src/core:SkAutoMalloc_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "DisplayParams_hdr",
+    hdrs = ["DisplayParams.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkImageInfo_hdr",
+        "//include/core:SkSurfaceProps_hdr",
+        "//include/gpu:GrContextOptions_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "GLWindowContext_hdr",
+    hdrs = ["GLWindowContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContext_hdr",
+        "//include/core:SkRefCnt_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/gpu/gl:GrGLInterface_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "GLWindowContext_src",
+    srcs = ["GLWindowContext.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":GLWindowContext_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/gpu:GrBackendSurface_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//src/core:SkMathPriv_hdr",
+        "//src/gpu:GrCaps_hdr",
+        "//src/gpu:GrDirectContextPriv_hdr",
+        "//src/gpu/gl:GrGLDefines_hdr",
+        "//src/gpu/gl:GrGLUtil_hdr",
+        "//src/image:SkImage_Base_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "GraphiteMetalWindowContext_hdr",
+    hdrs = ["GraphiteMetalWindowContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContext_hdr",
+        "//include/core:SkRefCnt_hdr",
+        "//include/ports:SkCFObject_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "MetalWindowContext_hdr",
+    hdrs = ["MetalWindowContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContext_hdr",
+        "//include/core:SkRefCnt_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/ports:SkCFObject_hdr",
+        "//include/private:GrMtlTypesPriv_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "RasterWindowContext_hdr",
+    hdrs = ["RasterWindowContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [":WindowContext_hdr"],
+)
+
+generated_cc_atom(
+    name = "VulkanWindowContext_hdr",
+    hdrs = ["VulkanWindowContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContext_hdr",
+        "//include/core:SkTypes_hdr",
+        "//include/gpu/vk:GrVkBackendContext_hdr",
+        "//include/gpu/vk:GrVkVulkan_hdr",
+        "//src/gpu/vk:GrVkInterface_hdr",
+        "//tools/gpu/vk:VkTestUtils_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "VulkanWindowContext_src",
+    srcs = ["VulkanWindowContext.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":VulkanWindowContext_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/gpu:GrBackendSemaphore_hdr",
+        "//include/gpu:GrBackendSurface_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//include/gpu/vk:GrVkExtensions_hdr",
+        "//include/gpu/vk:GrVkTypes_hdr",
+        "//src/core:SkAutoMalloc_hdr",
+        "//src/gpu/vk:GrVkImage_hdr",
+        "//src/gpu/vk:GrVkUtil_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "WindowContext_hdr",
+    hdrs = ["WindowContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":DisplayParams_hdr",
+        "//include/core:SkRefCnt_hdr",
+        "//include/core:SkSurfaceProps_hdr",
+        "//include/gpu:GrTypes_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "WindowContext_src",
+    srcs = ["WindowContext.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContext_hdr",
+        "//experimental/graphite/include:Context_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "Window_hdr",
+    hdrs = ["Window.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":DisplayParams_hdr",
+        "//include/core:SkRect_hdr",
+        "//include/core:SkTypes_hdr",
+        "//include/private:SkTDArray_hdr",
+        "//tools/skui:InputState_hdr",
+        "//tools/skui:Key_hdr",
+        "//tools/skui:ModifierKey_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "Window_src",
+    srcs = ["Window.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContext_hdr",
+        ":Window_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkSurface_hdr",
+    ],
+)
diff --git a/tools/sk_app/android/BUILD.bazel b/tools/sk_app/android/BUILD.bazel
new file mode 100644
index 0000000..131e717
--- /dev/null
+++ b/tools/sk_app/android/BUILD.bazel
@@ -0,0 +1,99 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "GLWindowContext_android_src",
+    srcs = ["GLWindowContext_android.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_android_hdr",
+        "//include/gpu/gl:GrGLInterface_hdr",
+        "//tools/sk_app:GLWindowContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "RasterWindowContext_android_src",
+    srcs = ["RasterWindowContext_android.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_android_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/core:SkTypes_hdr",
+        "//tools/sk_app:RasterWindowContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "VulkanWindowContext_android_src",
+    srcs = ["VulkanWindowContext_android.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_android_hdr",
+        "//include/gpu/vk:GrVkVulkan_hdr",
+        "//tools/gpu/vk:VkTestUtils_hdr",
+        "//tools/sk_app:VulkanWindowContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "WindowContextFactory_android_hdr",
+    hdrs = ["WindowContextFactory_android.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "Window_android_hdr",
+    hdrs = ["Window_android.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":surface_glue_android_hdr",
+        "//tools/sk_app:Window_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "Window_android_src",
+    srcs = ["Window_android.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_android_hdr",
+        ":Window_android_hdr",
+        "//tools/sk_app:WindowContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "main_android_src",
+    srcs = ["main_android.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//tools/sk_app:Application_hdr",
+        "//tools/timer:Timer_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "surface_glue_android_hdr",
+    hdrs = ["surface_glue_android.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkString_hdr",
+        "//tools/sk_app:Application_hdr",
+        "//tools/sk_app:Window_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "surface_glue_android_src",
+    srcs = ["surface_glue_android.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Window_android_hdr",
+        ":surface_glue_android_hdr",
+        "//include/core:SkTypes_hdr",
+        "//include/private:SkTo_hdr",
+        "//src/utils:SkUTF_hdr",
+        "//tools:ResourceFactory_hdr",
+        "//tools/sk_app:Application_hdr",
+    ],
+)
diff --git a/tools/sk_app/ios/BUILD.bazel b/tools/sk_app/ios/BUILD.bazel
new file mode 100644
index 0000000..cc3cee1
--- /dev/null
+++ b/tools/sk_app/ios/BUILD.bazel
@@ -0,0 +1,22 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "WindowContextFactory_ios_hdr",
+    hdrs = ["WindowContextFactory_ios.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Window_ios_hdr",
+        "//tools/sk_app:WindowContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "Window_ios_hdr",
+    hdrs = ["Window_ios.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/private:SkChecksum_hdr",
+        "//src/core:SkTDynamicHash_hdr",
+        "//tools/sk_app:Window_hdr",
+    ],
+)
diff --git a/tools/sk_app/mac/BUILD.bazel b/tools/sk_app/mac/BUILD.bazel
new file mode 100644
index 0000000..8b92d5e
--- /dev/null
+++ b/tools/sk_app/mac/BUILD.bazel
@@ -0,0 +1,18 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "WindowContextFactory_mac_hdr",
+    hdrs = ["WindowContextFactory_mac.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//tools/sk_app:WindowContext_hdr"],
+)
+
+generated_cc_atom(
+    name = "Window_mac_hdr",
+    hdrs = ["Window_mac.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//src/core:SkTDynamicHash_hdr",
+        "//tools/sk_app:Window_hdr",
+    ],
+)
diff --git a/tools/sk_app/unix/BUILD.bazel b/tools/sk_app/unix/BUILD.bazel
new file mode 100644
index 0000000..a0eb1fc
--- /dev/null
+++ b/tools/sk_app/unix/BUILD.bazel
@@ -0,0 +1,109 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "DawnVulkanWindowContext_unix_src",
+    srcs = ["DawnVulkanWindowContext_unix.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_unix_hdr",
+        "//dawn_native:DawnNative_hdr",
+        "//dawn_native:VulkanBackend_hdr",
+        "//src/ports:SkOSLibrary_hdr",
+        "//tools/gpu/vk:VkTestUtils_hdr",
+        "//tools/sk_app:DawnWindowContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "GLWindowContext_unix_src",
+    srcs = ["GLWindowContext_unix.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_unix_hdr",
+        "//include/gpu/gl:GrGLInterface_hdr",
+        "//tools/sk_app:GLWindowContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "RasterWindowContext_unix_src",
+    srcs = ["RasterWindowContext_unix.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_unix_hdr",
+        "//include/core:SkSurface_hdr",
+        "//tools/sk_app:RasterWindowContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "VulkanWindowContext_unix_src",
+    srcs = ["VulkanWindowContext_unix.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_unix_hdr",
+        "//include/gpu/vk:GrVkVulkan_hdr",
+        "//src/gpu/vk:GrVkInterface_hdr",
+        "//src/gpu/vk:GrVkUtil_hdr",
+        "//tools/gpu/vk:VkTestUtils_hdr",
+        "//tools/sk_app:VulkanWindowContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "WindowContextFactory_unix_hdr",
+    hdrs = ["WindowContextFactory_unix.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "Window_unix_hdr",
+    hdrs = ["Window_unix.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/private:SkChecksum_hdr",
+        "//src/core:SkTDynamicHash_hdr",
+        "//tools/sk_app:Window_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "Window_unix_src",
+    srcs = ["Window_unix.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_unix_hdr",
+        ":Window_unix_hdr",
+        ":keysym2ucs_hdr",
+        "//src/utils:SkUTF_hdr",
+        "//tools/sk_app:GLWindowContext_hdr",
+        "//tools/skui:ModifierKey_hdr",
+        "//tools/timer:Timer_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "keysym2ucs_hdr",
+    hdrs = ["keysym2ucs.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "keysym2ucs_src",
+    srcs = ["keysym2ucs.c"],
+    visibility = ["//:__subpackages__"],
+    deps = [":keysym2ucs_hdr"],
+)
+
+generated_cc_atom(
+    name = "main_unix_src",
+    srcs = ["main_unix.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Window_unix_hdr",
+        "//include/core:SkTypes_hdr",
+        "//include/private:SkTHash_hdr",
+        "//tools/sk_app:Application_hdr",
+        "//tools/timer:Timer_hdr",
+    ],
+)
diff --git a/tools/sk_app/win/BUILD.bazel b/tools/sk_app/win/BUILD.bazel
new file mode 100644
index 0000000..b72417e
--- /dev/null
+++ b/tools/sk_app/win/BUILD.bazel
@@ -0,0 +1,119 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "ANGLEWindowContext_win_src",
+    srcs = ["ANGLEWindowContext_win.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_win_hdr",
+        "//include/gpu/gl:GrGLAssembleInterface_hdr",
+        "//src/gpu/gl:GrGLDefines_hdr",
+        "//tools/sk_app:GLWindowContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "D3D12WindowContext_win_src",
+    srcs = ["D3D12WindowContext_win.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_win_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//include/gpu/d3d:GrD3DBackendContext_hdr",
+        "//tools/gpu/d3d:D3DTestUtils_hdr",
+        "//tools/sk_app:WindowContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "DawnD3D12WindowContext_win_src",
+    srcs = ["DawnD3D12WindowContext_win.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_win_hdr",
+        "//dawn:dawn_wsi_hdr",
+        "//dawn_native:D3D12Backend_hdr",
+        "//dawn_native:DawnNative_hdr",
+        "//tools/sk_app:DawnWindowContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "GLWindowContext_win_src",
+    srcs = ["GLWindowContext_win.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_win_hdr",
+        "//include/gpu/gl:GrGLInterface_hdr",
+        "//src/utils/win:SkWGL_hdr",
+        "//tools/sk_app:GLWindowContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "RasterWindowContext_win_src",
+    srcs = ["RasterWindowContext_win.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_win_hdr",
+        "//include/core:SkSurface_hdr",
+        "//src/core:SkAutoMalloc_hdr",
+        "//tools/sk_app:RasterWindowContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "VulkanWindowContext_win_src",
+    srcs = ["VulkanWindowContext_win.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_win_hdr",
+        ":Window_win_hdr",
+        "//include/gpu/vk:GrVkVulkan_hdr",
+        "//src/gpu/vk:GrVkInterface_hdr",
+        "//src/gpu/vk:GrVkUtil_hdr",
+        "//tools/gpu/vk:VkTestUtils_hdr",
+        "//tools/sk_app:VulkanWindowContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "WindowContextFactory_win_hdr",
+    hdrs = ["WindowContextFactory_win.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "Window_win_hdr",
+    hdrs = ["Window_win.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//tools/sk_app:Window_hdr"],
+)
+
+generated_cc_atom(
+    name = "Window_win_src",
+    srcs = ["Window_win.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":WindowContextFactory_win_hdr",
+        ":Window_win_hdr",
+        "//include/gpu/vk:GrVkVulkan_hdr",
+        "//src/utils:SkUTF_hdr",
+        "//tools/sk_app:VulkanWindowContext_hdr",
+        "//tools/sk_app:WindowContext_hdr",
+        "//tools/skui:ModifierKey_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "main_win_src",
+    srcs = ["main_win.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Window_win_hdr",
+        "//include/core:SkTypes_hdr",
+        "//tools/sk_app:Application_hdr",
+        "//tools/timer:Timer_hdr",
+    ],
+)
diff --git a/tools/skdiff/BUILD.bazel b/tools/skdiff/BUILD.bazel
new file mode 100644
index 0000000..a7fe13b
--- /dev/null
+++ b/tools/skdiff/BUILD.bazel
@@ -0,0 +1,110 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+cc_binary(
+    name = "skdiff",
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":skdiff_html_src",
+        ":skdiff_main_src",
+        ":skdiff_src",
+        ":skdiff_utils_src",
+        "//:skia_core",
+        "//third_party:musl_compat",
+        "//third_party:skcms",
+        "//tools:Resources_src",
+        "//tools:ToolUtils_src",
+        "//tools/flags:CommandLineFlags_src",
+        "//tools/fonts:TestFontMgr_src",
+        "//tools/fonts:TestTypeface_src",
+        "//tools/fonts:ToolUtilsFont_src",
+    ],
+)
+
+generated_cc_atom(
+    name = "skdiff_hdr",
+    hdrs = ["skdiff.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkColorPriv_hdr",
+        "//include/core:SkColor_hdr",
+        "//include/core:SkString_hdr",
+        "//include/private:SkTArray_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "skdiff_html_hdr",
+    hdrs = ["skdiff_html.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [":skdiff_hdr"],
+)
+
+generated_cc_atom(
+    name = "skdiff_html_src",
+    srcs = ["skdiff_html.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":skdiff_hdr",
+        ":skdiff_html_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkTime_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "skdiff_main_src",
+    srcs = ["skdiff_main.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":skdiff_hdr",
+        ":skdiff_html_hdr",
+        ":skdiff_utils_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkData_hdr",
+        "//include/core:SkImageEncoder_hdr",
+        "//include/core:SkPixelRef_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/private:SkTDArray_hdr",
+        "//src/core:SkOSFile_hdr",
+        "//src/core:SkTSearch_hdr",
+        "//src/utils:SkOSPath_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "skdiff_src",
+    srcs = ["skdiff.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":skdiff_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkColorPriv_hdr",
+        "//include/core:SkColor_hdr",
+        "//include/core:SkTypes_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "skdiff_utils_hdr",
+    hdrs = ["skdiff_utils.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [":skdiff_hdr"],
+)
+
+generated_cc_atom(
+    name = "skdiff_utils_src",
+    srcs = ["skdiff_utils.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":skdiff_hdr",
+        ":skdiff_utils_hdr",
+        "//include/codec:SkCodec_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkData_hdr",
+        "//include/core:SkImageEncoder_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkTypes_hdr",
+        "//tools:ToolUtils_hdr",
+    ],
+)
diff --git a/tools/skiaserve/BUILD.bazel b/tools/skiaserve/BUILD.bazel
new file mode 100644
index 0000000..fcf7e9f
--- /dev/null
+++ b/tools/skiaserve/BUILD.bazel
@@ -0,0 +1,61 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "Request_hdr",
+    hdrs = ["Request.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkPicture_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/core:SkTypes_hdr",
+        "//tools:UrlDataManager_hdr",
+        "//tools/debugger:DebugCanvas_hdr",
+        "//tools/gpu:GrContextFactory_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "Request_src",
+    srcs = ["Request.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Request_hdr",
+        "//include/core:SkPictureRecorder_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//src/utils:SkJSONWriter_hdr",
+        "//tools:ToolUtils_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "Response_hdr",
+    hdrs = ["Response.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "Response_src",
+    srcs = ["Response.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Request_hdr",
+        ":Response_hdr",
+        "//include/core:SkData_hdr",
+        "//include/core:SkString_hdr",
+        "//tools/flags:CommandLineFlags_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "skiaserve_src",
+    srcs = ["skiaserve.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Request_hdr",
+        ":Response_hdr",
+        "//include/core:SkGraphics_hdr",
+        "//tools/flags:CommandLineFlags_hdr",
+        "//tools/skiaserve/urlhandlers:UrlHandler_hdr",
+    ],
+)
diff --git a/tools/skiaserve/urlhandlers/BUILD.bazel b/tools/skiaserve/urlhandlers/BUILD.bazel
new file mode 100644
index 0000000..0fa36cc
--- /dev/null
+++ b/tools/skiaserve/urlhandlers/BUILD.bazel
@@ -0,0 +1,173 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "BreakHandler_src",
+    srcs = ["BreakHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":UrlHandler_hdr",
+        "//tools/skiaserve:Request_hdr",
+        "//tools/skiaserve:Response_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ClipAlphaHandler_src",
+    srcs = ["ClipAlphaHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":UrlHandler_hdr",
+        "//tools/skiaserve:Request_hdr",
+        "//tools/skiaserve:Response_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "CmdHandler_src",
+    srcs = ["CmdHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":UrlHandler_hdr",
+        "//tools/skiaserve:Request_hdr",
+        "//tools/skiaserve:Response_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ColorModeHandler_src",
+    srcs = ["ColorModeHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":UrlHandler_hdr",
+        "//tools/skiaserve:Request_hdr",
+        "//tools/skiaserve:Response_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "DataHandler_src",
+    srcs = ["DataHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":UrlHandler_hdr",
+        "//tools/skiaserve:Request_hdr",
+        "//tools/skiaserve:Response_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "DownloadHandler_src",
+    srcs = ["DownloadHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":UrlHandler_hdr",
+        "//tools/skiaserve:Request_hdr",
+        "//tools/skiaserve:Response_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "EnableGPUHandler_src",
+    srcs = ["EnableGPUHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":UrlHandler_hdr",
+        "//tools/skiaserve:Request_hdr",
+        "//tools/skiaserve:Response_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ImgHandler_src",
+    srcs = ["ImgHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":UrlHandler_hdr",
+        "//tools/skiaserve:Request_hdr",
+        "//tools/skiaserve:Response_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "InfoHandler_src",
+    srcs = ["InfoHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":UrlHandler_hdr",
+        "//tools/skiaserve:Request_hdr",
+        "//tools/skiaserve:Response_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "OpBoundsHandler_src",
+    srcs = ["OpBoundsHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":UrlHandler_hdr",
+        "//tools/skiaserve:Request_hdr",
+        "//tools/skiaserve:Response_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "OpsHandler_src",
+    srcs = ["OpsHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":UrlHandler_hdr",
+        "//tools/skiaserve:Request_hdr",
+        "//tools/skiaserve:Response_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "OverdrawHandler_src",
+    srcs = ["OverdrawHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":UrlHandler_hdr",
+        "//tools/skiaserve:Request_hdr",
+        "//tools/skiaserve:Response_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "PostHandler_src",
+    srcs = ["PostHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":UrlHandler_hdr",
+        "//tools/skiaserve:Request_hdr",
+        "//tools/skiaserve:Response_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "QuitHandler_src",
+    srcs = ["QuitHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":UrlHandler_hdr",
+        "//tools/skiaserve:Request_hdr",
+        "//tools/skiaserve:Response_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "RootHandler_src",
+    srcs = ["RootHandler.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":UrlHandler_hdr",
+        "//tools/skiaserve:Request_hdr",
+        "//tools/skiaserve:Response_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "UrlHandler_hdr",
+    hdrs = ["UrlHandler.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//include/core:SkColor_hdr"],
+)
diff --git a/tools/skottie_ios_app/BUILD.bazel b/tools/skottie_ios_app/BUILD.bazel
new file mode 100644
index 0000000..b101a56
--- /dev/null
+++ b/tools/skottie_ios_app/BUILD.bazel
@@ -0,0 +1,34 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "GrContextHolder_hdr",
+    hdrs = ["GrContextHolder.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "SkMetalViewBridge_hdr",
+    hdrs = ["SkMetalViewBridge.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [":GrContextHolder_hdr"],
+)
+
+generated_cc_atom(
+    name = "SkiaContext_hdr",
+    hdrs = ["SkiaContext.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [":SkottieViewController_hdr"],
+)
+
+generated_cc_atom(
+    name = "SkiaViewController_hdr",
+    hdrs = ["SkiaViewController.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "SkottieViewController_hdr",
+    hdrs = ["SkottieViewController.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [":SkiaViewController_hdr"],
+)
diff --git a/tools/skpbench/BUILD.bazel b/tools/skpbench/BUILD.bazel
new file mode 100644
index 0000000..87ad965
--- /dev/null
+++ b/tools/skpbench/BUILD.bazel
@@ -0,0 +1,39 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "skpbench_src",
+    srcs = ["skpbench.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//bench:BigPath_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkDeferredDisplayList_hdr",
+        "//include/core:SkGraphics_hdr",
+        "//include/core:SkPictureRecorder_hdr",
+        "//include/core:SkPicture_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkSurfaceProps_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/effects:SkPerlinNoiseShader_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//modules/svg/include:SkSVGDOM_hdr",
+        "//src/core:SkOSFile_hdr",
+        "//src/core:SkTaskGroup_hdr",
+        "//src/gpu:GrCaps_hdr",
+        "//src/gpu:GrDirectContextPriv_hdr",
+        "//src/gpu:SkGr_hdr",
+        "//src/utils:SkMultiPictureDocument_hdr",
+        "//src/utils:SkOSPath_hdr",
+        "//src/xml:SkDOM_hdr",
+        "//tools:DDLPromiseImageHelper_hdr",
+        "//tools:DDLTileHelper_hdr",
+        "//tools:SkSharingProc_hdr",
+        "//tools:ToolUtils_hdr",
+        "//tools/flags:CommandLineFlags_hdr",
+        "//tools/flags:CommonFlagsConfig_hdr",
+        "//tools/flags:CommonFlags_hdr",
+        "//tools/gpu:FlushFinishTracker_hdr",
+        "//tools/gpu:GpuTimer_hdr",
+        "//tools/gpu:GrContextFactory_hdr",
+    ],
+)
diff --git a/tools/skqp/BUILD.bazel b/tools/skqp/BUILD.bazel
new file mode 100644
index 0000000..761272d
--- /dev/null
+++ b/tools/skqp/BUILD.bazel
@@ -0,0 +1,34 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "jitter_gms_src",
+    srcs = ["jitter_gms.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//gm:gm_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkColor_hdr",
+        "//include/core:SkExecutor_hdr",
+        "//include/core:SkGraphics_hdr",
+        "//include/core:SkPoint_hdr",
+        "//include/core:SkSize_hdr",
+        "//include/core:SkTypes_hdr",
+        "//include/private:SkSemaphore_hdr",
+        "//tools:Registry_hdr",
+        "//tools/skqp/src:skqp_hdr",
+        "//tools/skqp/src:skqp_model_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "make_skqp_model_src",
+    srcs = ["make_skqp_model.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/codec:SkCodec_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/encode:SkPngEncoder_hdr",
+        "//src/core:SkOSFile_hdr",
+    ],
+)
diff --git a/tools/skqp/src/BUILD.bazel b/tools/skqp/src/BUILD.bazel
new file mode 100644
index 0000000..52d08c4
--- /dev/null
+++ b/tools/skqp/src/BUILD.bazel
@@ -0,0 +1,82 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "jni_skqp_src",
+    srcs = ["jni_skqp.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":skqp_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/private:SkTo_hdr",
+        "//tools:ResourceFactory_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "skqp_hdr",
+    hdrs = ["skqp.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "skqp_main_src",
+    srcs = ["skqp_main.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":skqp_hdr",
+        "//include/core:SkData_hdr",
+        "//src/core:SkOSFile_hdr",
+        "//tools:Resources_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "skqp_model_hdr",
+    hdrs = ["skqp_model.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":skqp_hdr",
+        "//include/core:SkBitmap_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "skqp_model_src",
+    srcs = ["skqp_model.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":skqp_hdr",
+        ":skqp_model_hdr",
+        "//include/codec:SkCodec_hdr",
+        "//include/core:SkBitmap_hdr",
+        "//include/core:SkStream_hdr",
+        "//src/utils:SkOSPath_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "skqp_src",
+    srcs = ["skqp.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":skqp_hdr",
+        ":skqp_model_hdr",
+        "//gm:gm_hdr",
+        "//include/core:SkFontStyle_hdr",
+        "//include/core:SkGraphics_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/encode:SkPngEncoder_hdr",
+        "//include/gpu:GrContextOptions_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//include/private:SkImageInfoPriv_hdr",
+        "//src/core:SkFontMgrPriv_hdr",
+        "//src/core:SkOSFile_hdr",
+        "//src/core:SkStreamPriv_hdr",
+        "//src/utils:SkOSPath_hdr",
+        "//tests:Test_hdr",
+        "//tools/fonts:TestFontMgr_hdr",
+        "//tools/gpu/gl:GLTestContext_hdr",
+        "//tools/gpu/vk:VkTestContext_hdr",
+    ],
+)
diff --git a/tools/skui/BUILD.bazel b/tools/skui/BUILD.bazel
new file mode 100644
index 0000000..d4e9404
--- /dev/null
+++ b/tools/skui/BUILD.bazel
@@ -0,0 +1,20 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "InputState_hdr",
+    hdrs = ["InputState.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "Key_hdr",
+    hdrs = ["Key.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+generated_cc_atom(
+    name = "ModifierKey_hdr",
+    hdrs = ["ModifierKey.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//include/private:SkBitmaskEnum_hdr"],
+)
diff --git a/tools/timer/BUILD.bazel b/tools/timer/BUILD.bazel
new file mode 100644
index 0000000..a09e159
--- /dev/null
+++ b/tools/timer/BUILD.bazel
@@ -0,0 +1,25 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "TimeUtils_hdr",
+    hdrs = ["TimeUtils.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkTypes_hdr",
+        "//include/private:SkFloatingPoint_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "Timer_hdr",
+    hdrs = ["Timer.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//include/core:SkString_hdr"],
+)
+
+generated_cc_atom(
+    name = "Timer_src",
+    srcs = ["Timer.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [":Timer_hdr"],
+)
diff --git a/tools/trace/BUILD.bazel b/tools/trace/BUILD.bazel
new file mode 100644
index 0000000..158ac27
--- /dev/null
+++ b/tools/trace/BUILD.bazel
@@ -0,0 +1,72 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "ChromeTracingTracer_hdr",
+    hdrs = ["ChromeTracingTracer.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":EventTracingPriv_hdr",
+        "//include/core:SkString_hdr",
+        "//include/private:SkSpinlock_hdr",
+        "//include/private:SkTHash_hdr",
+        "//include/utils:SkEventTracer_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ChromeTracingTracer_src",
+    srcs = ["ChromeTracingTracer.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":ChromeTracingTracer_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/private:SkThreadID_hdr",
+        "//src/core:SkOSFile_hdr",
+        "//src/core:SkTraceEvent_hdr",
+        "//src/utils:SkJSONWriter_hdr",
+        "//src/utils:SkOSPath_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "EventTracingPriv_hdr",
+    hdrs = ["EventTracingPriv.h"],
+    visibility = ["//:__subpackages__"],
+    deps = ["//include/private:SkMutex_hdr"],
+)
+
+generated_cc_atom(
+    name = "EventTracingPriv_src",
+    srcs = ["EventTracingPriv.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":ChromeTracingTracer_hdr",
+        ":EventTracingPriv_hdr",
+        ":SkDebugfTracer_hdr",
+        "//include/utils:SkEventTracer_hdr",
+        "//src/core:SkATrace_hdr",
+        "//src/core:SkTraceEvent_hdr",
+        "//tools/flags:CommandLineFlags_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SkDebugfTracer_hdr",
+    hdrs = ["SkDebugfTracer.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":EventTracingPriv_hdr",
+        "//include/core:SkString_hdr",
+        "//include/utils:SkEventTracer_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SkDebugfTracer_src",
+    srcs = ["SkDebugfTracer.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":SkDebugfTracer_hdr",
+        "//src/core:SkTraceEvent_hdr",
+    ],
+)
diff --git a/tools/viewer/BUILD.bazel b/tools/viewer/BUILD.bazel
new file mode 100644
index 0000000..1e6809f
--- /dev/null
+++ b/tools/viewer/BUILD.bazel
@@ -0,0 +1,481 @@
+load("//bazel:macros.bzl", "generated_cc_atom")
+
+generated_cc_atom(
+    name = "AnimTimer_hdr",
+    hdrs = ["AnimTimer.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkScalar_hdr",
+        "//include/core:SkTime_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "BisectSlide_hdr",
+    hdrs = ["BisectSlide.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Slide_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkPath_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "BisectSlide_src",
+    srcs = ["BisectSlide.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":BisectSlide_hdr",
+        "//include/core:SkStream_hdr",
+        "//src/utils:SkOSPath_hdr",
+        "//tools:ToolUtils_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "GMSlide_hdr",
+    hdrs = ["GMSlide.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Slide_hdr",
+        "//gm:gm_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "GMSlide_src",
+    srcs = ["GMSlide.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":GMSlide_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//include/gpu:GrRecordingContext_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ImGuiLayer_hdr",
+    hdrs = ["ImGuiLayer.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkPaint_hdr",
+        "//include/private:SkTArray_hdr",
+        "//include/private:SkTPin_hdr",
+        "//tools/sk_app:Window_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ImGuiLayer_src",
+    srcs = ["ImGuiLayer.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":ImGuiLayer_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkImage_hdr",
+        "//include/core:SkPixmap_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/core:SkSwizzle_hdr",
+        "//include/core:SkTime_hdr",
+        "//include/core:SkVertices_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ImageSlide_hdr",
+    hdrs = ["ImageSlide.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Slide_hdr",
+        "//include/core:SkImage_hdr",
+        "//include/core:SkPicture_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ImageSlide_src",
+    srcs = ["ImageSlide.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":ImageSlide_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkData_hdr",
+        "//include/core:SkImage_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "MSKPSlide_hdr",
+    hdrs = ["MSKPSlide.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Slide_hdr",
+        "//tools:MSKPPlayer_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "MSKPSlide_src",
+    srcs = ["MSKPSlide.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":MSKPSlide_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/private:SkTPin_hdr",
+        "//src/core:SkOSFile_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ParticlesSlide_hdr",
+    hdrs = ["ParticlesSlide.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Slide_hdr",
+        "//include/core:SkPath_hdr",
+        "//include/private:SkTArray_hdr",
+        "//include/utils:SkRandom_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "ParticlesSlide_src",
+    srcs = ["ParticlesSlide.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":ImGuiLayer_hdr",
+        ":ParticlesSlide_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//modules/particles/include:SkParticleEffect_hdr",
+        "//modules/particles/include:SkParticleSerialization_hdr",
+        "//modules/particles/include:SkReflected_hdr",
+        "//modules/skresources/include:SkResources_hdr",
+        "//src/core:SkOSFile_hdr",
+        "//src/sksl/codegen:SkSLVMCodeGenerator_hdr",
+        "//src/utils:SkOSPath_hdr",
+        "//tools:Resources_hdr",
+        "//tools:ToolUtils_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SKPSlide_hdr",
+    hdrs = ["SKPSlide.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Slide_hdr",
+        "//include/core:SkPicture_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SKPSlide_src",
+    srcs = ["SKPSlide.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":SKPSlide_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkStream_hdr",
+        "//src/core:SkOSFile_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SampleSlide_hdr",
+    hdrs = ["SampleSlide.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Slide_hdr",
+        "//samplecode:Sample_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SampleSlide_src",
+    srcs = ["SampleSlide.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":SampleSlide_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkStream_hdr",
+        "//src/core:SkOSFile_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SkRiveSlide_hdr",
+    hdrs = ["SkRiveSlide.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Slide_hdr",
+        "//experimental/skrive/include:SkRive_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SkRiveSlide_src",
+    srcs = ["SkRiveSlide.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":SkRiveSlide_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkStream_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SkSLSlide_hdr",
+    hdrs = ["SkSLSlide.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Slide_hdr",
+        "//include/core:SkM44_hdr",
+        "//include/effects:SkRuntimeEffect_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SkSLSlide_src",
+    srcs = ["SkSLSlide.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":SkSLSlide_hdr",
+        ":Viewer_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkFont_hdr",
+        "//include/effects:SkGradientShader_hdr",
+        "//include/effects:SkPerlinNoiseShader_hdr",
+        "//src/core:SkEnumerate_hdr",
+        "//tools:Resources_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SkottieSlide_hdr",
+    hdrs = ["SkottieSlide.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Slide_hdr",
+        "//modules/skottie/include:Skottie_hdr",
+        "//modules/sksg/include:SkSGInvalidationController_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SkottieSlide_src",
+    srcs = ["SkottieSlide.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":SkottieSlide_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkFont_hdr",
+        "//include/core:SkTime_hdr",
+        "//include/private:SkTPin_hdr",
+        "//modules/audioplayer:SkAudioPlayer_hdr",
+        "//modules/skottie/include:Skottie_hdr",
+        "//modules/skottie/utils:SkottieUtils_hdr",
+        "//modules/skresources/include:SkResources_hdr",
+        "//src/utils:SkOSPath_hdr",
+        "//tools/timer:TimeUtils_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SlideDir_hdr",
+    hdrs = ["SlideDir.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":Slide_hdr",
+        "//include/private:SkTArray_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SlideDir_src",
+    srcs = ["SlideDir.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":SlideDir_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkCubicMap_hdr",
+        "//include/core:SkTypeface_hdr",
+        "//include/private:SkTPin_hdr",
+        "//modules/sksg/include:SkSGDraw_hdr",
+        "//modules/sksg/include:SkSGGroup_hdr",
+        "//modules/sksg/include:SkSGPaint_hdr",
+        "//modules/sksg/include:SkSGPlane_hdr",
+        "//modules/sksg/include:SkSGRect_hdr",
+        "//modules/sksg/include:SkSGRenderNode_hdr",
+        "//modules/sksg/include:SkSGScene_hdr",
+        "//modules/sksg/include:SkSGText_hdr",
+        "//modules/sksg/include:SkSGTransform_hdr",
+        "//tools/timer:TimeUtils_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "Slide_hdr",
+    hdrs = ["Slide.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkRefCnt_hdr",
+        "//include/core:SkSize_hdr",
+        "//include/core:SkString_hdr",
+        "//tools/sk_app:Window_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "StatsLayer_hdr",
+    hdrs = ["StatsLayer.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkColor_hdr",
+        "//include/core:SkString_hdr",
+        "//tools/sk_app:Window_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "StatsLayer_src",
+    srcs = ["StatsLayer.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":StatsLayer_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkFont_hdr",
+        "//include/core:SkString_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/core:SkTime_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "SvgSlide_hdr",
+    hdrs = ["SvgSlide.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [":Slide_hdr"],
+)
+
+generated_cc_atom(
+    name = "SvgSlide_src",
+    srcs = ["SvgSlide.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":SvgSlide_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkStream_hdr",
+        "//modules/skresources/include:SkResources_hdr",
+        "//modules/svg/include:SkSVGDOM_hdr",
+        "//modules/svg/include:SkSVGNode_hdr",
+        "//src/utils:SkOSPath_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "TouchGesture_hdr",
+    hdrs = ["TouchGesture.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//include/core:SkMatrix_hdr",
+        "//include/private:SkTDArray_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "TouchGesture_src",
+    srcs = ["TouchGesture.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":TouchGesture_hdr",
+        "//include/core:SkMatrix_hdr",
+        "//include/core:SkTime_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "Viewer_hdr",
+    hdrs = ["Viewer.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":AnimTimer_hdr",
+        ":ImGuiLayer_hdr",
+        ":Slide_hdr",
+        ":StatsLayer_hdr",
+        ":TouchGesture_hdr",
+        "//gm:gm_hdr",
+        "//include/core:SkExecutor_hdr",
+        "//include/core:SkFont_hdr",
+        "//include/gpu:GrContextOptions_hdr",
+        "//include/private:SkSLString_hdr",
+        "//src/core:SkScan_hdr",
+        "//src/core:SkVMBlitter_hdr",
+        "//src/sksl/ir:SkSLProgram_hdr",
+        "//tools/gpu:MemoryCache_hdr",
+        "//tools/sk_app:Application_hdr",
+        "//tools/sk_app:CommandSet_hdr",
+        "//tools/sk_app:Window_hdr",
+    ],
+)
+
+generated_cc_atom(
+    name = "Viewer_src",
+    srcs = ["Viewer.cpp"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        ":BisectSlide_hdr",
+        ":GMSlide_hdr",
+        ":ImageSlide_hdr",
+        ":MSKPSlide_hdr",
+        ":ParticlesSlide_hdr",
+        ":SKPSlide_hdr",
+        ":SampleSlide_hdr",
+        ":SkRiveSlide_hdr",
+        ":SkSLSlide_hdr",
+        ":SkottieSlide_hdr",
+        ":SlideDir_hdr",
+        ":SvgSlide_hdr",
+        ":Viewer_hdr",
+        "//include/core:SkCanvas_hdr",
+        "//include/core:SkData_hdr",
+        "//include/core:SkGraphics_hdr",
+        "//include/core:SkPictureRecorder_hdr",
+        "//include/core:SkStream_hdr",
+        "//include/core:SkSurface_hdr",
+        "//include/gpu:GrDirectContext_hdr",
+        "//include/private:SkTPin_hdr",
+        "//include/private:SkTo_hdr",
+        "//include/utils:SkPaintFilterCanvas_hdr",
+        "//misc/cpp:imgui_stdlib_hdr",
+        "//src/core:SkColorSpacePriv_hdr",
+        "//src/core:SkImagePriv_hdr",
+        "//src/core:SkMD5_hdr",
+        "//src/core:SkOSFile_hdr",
+        "//src/core:SkReadBuffer_hdr",
+        "//src/core:SkScan_hdr",
+        "//src/core:SkSurfacePriv_hdr",
+        "//src/core:SkTSort_hdr",
+        "//src/core:SkTaskGroup_hdr",
+        "//src/core:SkTextBlobPriv_hdr",
+        "//src/core:SkVMBlitter_hdr",
+        "//src/gpu:GrDirectContextPriv_hdr",
+        "//src/gpu:GrGpu_hdr",
+        "//src/gpu:GrPersistentCacheUtils_hdr",
+        "//src/gpu:GrShaderUtils_hdr",
+        "//src/gpu/ops:AtlasPathRenderer_hdr",
+        "//src/gpu/ops:TessellationPathRenderer_hdr",
+        "//src/image:SkImage_Base_hdr",
+        "//src/sksl:SkSLCompiler_hdr",
+        "//src/utils:SkJSONWriter_hdr",
+        "//src/utils:SkOSPath_hdr",
+        "//tools:Resources_hdr",
+        "//tools:RuntimeBlendUtils_hdr",
+        "//tools:ToolUtils_hdr",
+        "//tools/flags:CommandLineFlags_hdr",
+        "//tools/flags:CommonFlags_hdr",
+        "//tools/trace:EventTracingPriv_hdr",
+    ],
+)