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

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

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

# Generated by Bazel rule //include/effects:public_imagefilters_hdrs
skia_effects_imagefilter_public = [ "$_include/effects/SkImageFilters.h" ]

# Generated by Bazel rule //src/effects/imagefilters:imagefilters_srcs
skia_effects_imagefilter_sources = [
  "$_src/effects/imagefilters/SkAlphaThresholdImageFilter.cpp",
  "$_src/effects/imagefilters/SkArithmeticImageFilter.cpp",
  "$_src/effects/imagefilters/SkBlendImageFilter.cpp",
  "$_src/effects/imagefilters/SkBlurImageFilter.cpp",
  "$_src/effects/imagefilters/SkColorFilterImageFilter.cpp",
  "$_src/effects/imagefilters/SkComposeImageFilter.cpp",
  "$_src/effects/imagefilters/SkCropImageFilter.cpp",
  "$_src/effects/imagefilters/SkDisplacementMapImageFilter.cpp",
  "$_src/effects/imagefilters/SkDropShadowImageFilter.cpp",
  "$_src/effects/imagefilters/SkImageImageFilter.cpp",
  "$_src/effects/imagefilters/SkLightingImageFilter.cpp",
  "$_src/effects/imagefilters/SkMagnifierImageFilter.cpp",
  "$_src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp",
  "$_src/effects/imagefilters/SkMatrixTransformImageFilter.cpp",
  "$_src/effects/imagefilters/SkMergeImageFilter.cpp",
  "$_src/effects/imagefilters/SkMorphologyImageFilter.cpp",
  "$_src/effects/imagefilters/SkPictureImageFilter.cpp",
  "$_src/effects/imagefilters/SkRuntimeImageFilter.cpp",
  "$_src/effects/imagefilters/SkShaderImageFilter.cpp",
  "$_src/effects/imagefilters/SkTileImageFilter.cpp",
]
