# Copyright 2020 Google Inc.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Things are easiest for everyone if these source paths are absolute.
_src = get_path_info("src", "abspath")
_include = get_path_info("include", "abspath")

skia_svg_public = [
  "$_include/SkSVGAttribute.h",
  "$_include/SkSVGAttributeParser.h",
  "$_include/SkSVGCircle.h",
  "$_include/SkSVGClipPath.h",
  "$_include/SkSVGContainer.h",
  "$_include/SkSVGDefs.h",
  "$_include/SkSVGDOM.h",
  "$_include/SkSVGEllipse.h",
  "$_include/SkSVGFe.h",
  "$_include/SkSVGFeBlend.h",
  "$_include/SkSVGFeColorMatrix.h",
  "$_include/SkSVGFeComposite.h",
  "$_include/SkSVGFeDisplacementMap.h",
  "$_include/SkSVGFeFlood.h",
  "$_include/SkSVGFeGaussianBlur.h",
  "$_include/SkSVGFeImage.h",
  "$_include/SkSVGFeLightSource.h",
  "$_include/SkSVGFeLighting.h",
  "$_include/SkSVGFeMorphology.h",
  "$_include/SkSVGFeOffset.h",
  "$_include/SkSVGFeTurbulence.h",
  "$_include/SkSVGFilter.h",
  "$_include/SkSVGFilterContext.h",
  "$_include/SkSVGG.h",
  "$_include/SkSVGGradient.h",
  "$_include/SkSVGHiddenContainer.h",
  "$_include/SkSVGIDMapper.h",
  "$_include/SkSVGImage.h",
  "$_include/SkSVGLinearGradient.h",
  "$_include/SkSVGLine.h",
  "$_include/SkSVGMask.h",
  "$_include/SkSVGNode.h",
  "$_include/SkSVGPath.h",
  "$_include/SkSVGPattern.h",
  "$_include/SkSVGPoly.h",
  "$_include/SkSVGRadialGradient.h",
  "$_include/SkSVGRect.h",
  "$_include/SkSVGRenderContext.h",
  "$_include/SkSVGShape.h",
  "$_include/SkSVGStop.h",
  "$_include/SkSVGSVG.h",
  "$_include/SkSVGText.h",
  "$_include/SkSVGTransformableNode.h",
  "$_include/SkSVGTypes.h",
  "$_include/SkSVGUse.h",
  "$_include/SkSVGValue.h",
]

skia_svg_sources = [
  "$_src/SkSVGAttribute.cpp",
  "$_src/SkSVGAttributeParser.cpp",
  "$_src/SkSVGCircle.cpp",
  "$_src/SkSVGClipPath.cpp",
  "$_src/SkSVGContainer.cpp",
  "$_src/SkSVGDOM.cpp",
  "$_src/SkSVGEllipse.cpp",
  "$_src/SkSVGFe.cpp",
  "$_src/SkSVGFeBlend.cpp",
  "$_src/SkSVGFeColorMatrix.cpp",
  "$_src/SkSVGFeComposite.cpp",
  "$_src/SkSVGFeDisplacementMap.cpp",
  "$_src/SkSVGFeFlood.cpp",
  "$_src/SkSVGFeGaussianBlur.cpp",
  "$_src/SkSVGFeImage.cpp",
  "$_src/SkSVGFeLightSource.cpp",
  "$_src/SkSVGFeLighting.cpp",
  "$_src/SkSVGFeMorphology.cpp",
  "$_src/SkSVGFeOffset.cpp",
  "$_src/SkSVGFeTurbulence.cpp",
  "$_src/SkSVGFilter.cpp",
  "$_src/SkSVGFilterContext.cpp",
  "$_src/SkSVGGradient.cpp",
  "$_src/SkSVGImage.cpp",
  "$_src/SkSVGLine.cpp",
  "$_src/SkSVGLinearGradient.cpp",
  "$_src/SkSVGMask.cpp",
  "$_src/SkSVGNode.cpp",
  "$_src/SkSVGPath.cpp",
  "$_src/SkSVGPattern.cpp",
  "$_src/SkSVGPoly.cpp",
  "$_src/SkSVGRadialGradient.cpp",
  "$_src/SkSVGRect.cpp",
  "$_src/SkSVGRenderContext.cpp",
  "$_src/SkSVGSVG.cpp",
  "$_src/SkSVGShape.cpp",
  "$_src/SkSVGStop.cpp",
  "$_src/SkSVGText.cpp",
  "$_src/SkSVGTextPriv.h",
  "$_src/SkSVGTransformableNode.cpp",
  "$_src/SkSVGUse.cpp",
  "$_src/SkSVGValue.cpp",
]
