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

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

_modules = get_path_info("../../modules", "abspath")

# Generated by Bazel rule //modules/skshaper/include:hdrs
skia_shaper_public = [ "$_modules/skshaper/include/SkShaper.h" ]

# Generated by Bazel rule //modules/skshaper/src:base_srcs
skia_shaper_primitive_sources = [
  "$_modules/skshaper/src/SkShaper.cpp",
  "$_modules/skshaper/src/SkShaper_primitive.cpp",
]

# Generated by Bazel rule //modules/skshaper/src:harfbuzz_srcs
skia_shaper_harfbuzz_sources =
    [ "$_modules/skshaper/src/SkShaper_harfbuzz.cpp" ]

# Generated by Bazel rule //modules/skshaper/src:coretext_srcs
skia_shaper_coretext_sources =
    [ "$_modules/skshaper/src/SkShaper_coretext.cpp" ]

# Generated by Bazel rule //modules/skshaper/tests:tests_srcs
skia_shaper_tests = [ "$_modules/skshaper/tests/ShaperTest.cpp" ]

declare_args() {
  skia_enable_skshaper = true
}
declare_args() {
  skia_enable_skshaper_tests = skia_enable_skshaper
}
