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

declare_args() {
  skia_enable_skottie = true
}

config("public_config") {
  if (skia_enable_skottie) {
    defines = [ "SK_ENABLE_SKOTTIE" ]
    include_dirs = [ "include" ]
  }
}

source_set("skottie") {
  if (skia_enable_skottie) {
    import("skottie.gni")
    public_configs = [ ":public_config" ]
    public = skia_skottie_public
    sources = skia_skottie_sources
    configs += [ "../../:skia_private" ]
    deps = [
      "../..:skia",
      "../sksg",
    ]
  }
}

if (defined(is_skia_standalone)) {
  config("utils_config") {
    include_dirs = [ "utils" ]
  }
  source_set("utils") {
    if (skia_enable_skottie) {
      testonly = true

      public_configs = [ ":utils_config" ]
      configs += [ "../../:skia_private" ]
      sources = [
        "utils/SkottieUtils.cpp",
      ]
      deps = [
        ":skottie",
        "../..:skia",
      ]
    }
  }

  source_set("tests") {
    if (skia_enable_skottie) {
      testonly = true

      configs += [
        "../..:skia_private",
        "../..:tests_config",
      ]
      sources = [
        "src/SkottieTest.cpp",
      ]

      deps = [
        ":skottie",
        "../..:gpu_tool_utils",
        "../..:skia",
      ]
    }
  }

  source_set("fuzz") {
    if (skia_enable_skottie) {
      testonly = true

      configs += [ "../..:skia_private" ]
      include_dirs = [
        "../../tools",
        "../../tools/flags",
        "../../tools/fonts",
      ]
      sources = [
        "../../tools/Resources.cpp",
        "../../tools/fonts/SkTestFontMgr.cpp",
        "../../tools/fonts/SkTestSVGTypeface.cpp",
        "../../tools/fonts/SkTestTypeface.cpp",
        "fuzz/FuzzSkottieJSON.cpp",
      ]

      deps = [
        "../..:experimental_svg_model",
        "../..:skia",
      ]

      public_deps = [
        ":skottie",
      ]
    }
  }

  source_set("tool") {
    testonly = true

    configs += [ "../..:skia_private" ]
    sources = [
      "src/SkottieTool.cpp",
    ]

    deps = [
      "../..:flags",
      "../..:skia",
    ]

    public_deps = [
      ":skottie",
      ":utils",
    ]
  }

  source_set("gm") {
    if (skia_enable_skottie) {
      testonly = true

      # would be nice to have a gm_config
      include_dirs = [ "../../gm" ]

      configs += [ "../..:skia_private" ]
      sources = [
        "gm/SkottieGM.cpp",
      ]

      deps = [
        ":skottie",
        ":utils",
        "../..:gpu_tool_utils",
        "../..:skia",
        "../..:tool_utils",
      ]
    }
  }
}