# DO NOT EDIT: This is a generated file.
# See //bazel/exporter_tool/README.md for more information.
#
# The sources of truth are:
#   //include/utils/BUILD.bazel
#   //include/utils/mac/BUILD.bazel
#   //src/utils/BUILD.bazel
#   //src/utils/mac/BUILD.bazel
#   //src/utils/win/BUILD.bazel

# To update this file, run make -C bazel generate_gni

_src = get_path_info("../src", "abspath")
_include = get_path_info("../include", "abspath")

# List generated by Bazel rules:
#  //include/utils:public_hdrs
#  //include/utils/mac:public_hdrs
skia_utils_public = [
  "$_include/utils/SkAnimCodecPlayer.h",
  "$_include/utils/SkBase64.h",
  "$_include/utils/SkCamera.h",
  "$_include/utils/SkCanvasStateUtils.h",
  "$_include/utils/SkCustomTypeface.h",
  "$_include/utils/SkEventTracer.h",
  "$_include/utils/SkNWayCanvas.h",
  "$_include/utils/SkNoDrawCanvas.h",
  "$_include/utils/SkNullCanvas.h",
  "$_include/utils/SkOrderedFontMgr.h",
  "$_include/utils/SkPaintFilterCanvas.h",
  "$_include/utils/SkParse.h",
  "$_include/utils/SkParsePath.h",
  "$_include/utils/SkShadowUtils.h",
  "$_include/utils/SkTextUtils.h",
  "$_include/utils/SkTraceEventPhase.h",
  "$_include/utils/mac/SkCGUtils.h",
]

# Generated by Bazel rule //src/utils:chromium_hdrs
skia_utils_chromium = [ "$_src/utils/SkMultiPictureDocument.h" ]

# List generated by Bazel rules:
#  //src/utils:core_hdrs
#  //src/utils:core_skslc_hdrs
#  //src/utils:core_skslc_srcs
#  //src/utils:core_srcs
#  //src/utils:json_hdrs
#  //src/utils:json_srcs
#  //src/utils:sksl_hdrs
#  //src/utils:sksl_srcs
#  //src/utils/mac:core_hdrs
#  //src/utils/mac:core_srcs
#  //src/utils/win:core_hdrs
#  //src/utils/win:core_srcs
skia_utils_private = [
  "$_src/utils/SkAnimCodecPlayer.cpp",
  "$_src/utils/SkBase64.cpp",
  "$_src/utils/SkBitSet.h",
  "$_src/utils/SkBlitterTrace.h",
  "$_src/utils/SkBlitterTraceCommon.h",
  "$_src/utils/SkCallableTraits.h",
  "$_src/utils/SkCamera.cpp",
  "$_src/utils/SkCanvasStack.cpp",
  "$_src/utils/SkCanvasStack.h",
  "$_src/utils/SkCanvasStateUtils.cpp",
  "$_src/utils/SkCharToGlyphCache.cpp",
  "$_src/utils/SkCharToGlyphCache.h",
  "$_src/utils/SkClipStackUtils.cpp",
  "$_src/utils/SkClipStackUtils.h",
  "$_src/utils/SkCustomTypeface.cpp",
  "$_src/utils/SkCycles.h",
  "$_src/utils/SkDashPath.cpp",
  "$_src/utils/SkDashPathPriv.h",
  "$_src/utils/SkEventTracer.cpp",
  "$_src/utils/SkFloatToDecimal.cpp",
  "$_src/utils/SkFloatToDecimal.h",
  "$_src/utils/SkFloatUtils.h",
  "$_src/utils/SkGaussianColorFilter.cpp",
  "$_src/utils/SkJSON.cpp",
  "$_src/utils/SkJSON.h",
  "$_src/utils/SkJSONWriter.cpp",
  "$_src/utils/SkJSONWriter.h",
  "$_src/utils/SkMatrix22.cpp",
  "$_src/utils/SkMatrix22.h",
  "$_src/utils/SkMultiPictureDocument.cpp",
  "$_src/utils/SkMultiPictureDocumentPriv.h",
  "$_src/utils/SkNWayCanvas.cpp",
  "$_src/utils/SkNullCanvas.cpp",
  "$_src/utils/SkOSPath.cpp",
  "$_src/utils/SkOSPath.h",
  "$_src/utils/SkOrderedFontMgr.cpp",
  "$_src/utils/SkPaintFilterCanvas.cpp",
  "$_src/utils/SkParse.cpp",
  "$_src/utils/SkParseColor.cpp",
  "$_src/utils/SkParsePath.cpp",
  "$_src/utils/SkPatchUtils.cpp",
  "$_src/utils/SkPatchUtils.h",
  "$_src/utils/SkPolyUtils.cpp",
  "$_src/utils/SkPolyUtils.h",
  "$_src/utils/SkShaderUtils.cpp",
  "$_src/utils/SkShaderUtils.h",
  "$_src/utils/SkShadowTessellator.cpp",
  "$_src/utils/SkShadowTessellator.h",
  "$_src/utils/SkShadowUtils.cpp",
  "$_src/utils/SkTestCanvas.h",
  "$_src/utils/SkTextUtils.cpp",
  "$_src/utils/SkVMVisualizer.cpp",
  "$_src/utils/SkVMVisualizer.h",
  "$_src/utils/mac/SkCGBase.h",
  "$_src/utils/mac/SkCGGeometry.h",
  "$_src/utils/mac/SkCTFont.cpp",
  "$_src/utils/mac/SkCTFont.h",
  "$_src/utils/mac/SkCreateCGImageRef.cpp",
  "$_src/utils/mac/SkUniqueCFRef.h",
  "$_src/utils/win/SkAutoCoInitialize.cpp",
  "$_src/utils/win/SkAutoCoInitialize.h",
  "$_src/utils/win/SkDWrite.cpp",
  "$_src/utils/win/SkDWrite.h",
  "$_src/utils/win/SkDWriteFontFileStream.cpp",
  "$_src/utils/win/SkDWriteFontFileStream.h",
  "$_src/utils/win/SkDWriteGeometrySink.cpp",
  "$_src/utils/win/SkDWriteGeometrySink.h",
  "$_src/utils/win/SkDWriteNTDDI_VERSION.h",
  "$_src/utils/win/SkHRESULT.cpp",
  "$_src/utils/win/SkHRESULT.h",
  "$_src/utils/win/SkIStream.cpp",
  "$_src/utils/win/SkIStream.h",
  "$_src/utils/win/SkObjBase.h",
  "$_src/utils/win/SkTScopedComPtr.h",
  "$_src/utils/win/SkWGL.h",
  "$_src/utils/win/SkWGL_win.cpp",
]

# TODO(kjlubick) Update pdfium to use the individual target
# instead of the monolithic ones.
skia_utils_sources = skia_utils_private + skia_utils_chromium
