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

import("../../gn/skia.gni")

declare_args() {
  skia_enable_skottie = true
}

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

component("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",
      "../skshaper",
    ]
  }
}

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",
      ]
    }
  }

  if (skia_enable_tools) {
    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",
        ]
      }
    }
  }
}