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

config("public_config") {
  include_dirs = [ "include" ]
}

component("sksg") {
  import("sksg.gni")
  public_configs = [ ":public_config" ]
  sources = skia_sksg_sources
  configs += [ "../../:skia_private" ]
  deps = [
    "../..:skia",
  ]
}

source_set("tests") {
  testonly = true

  configs += [
    "../..:skia_private",
    "../..:tests_config",  # TODO: refactor to make this nicer
  ]
  sources = [
    "tests/SGTest.cpp",
  ]
  deps = [
    ":sksg",
    "../..:gpu_tool_utils",  # TODO: refactor to make this nicer
    "../..:skia",
  ]
}

source_set("samples") {
  if (target_cpu != "wasm") {  # TODO: clean up wasm test
    testonly = true

    configs += [
      "../..:skia_private",
      "../..:samples_config",  # TODO: refactor to make this nicer
    ]
    sources = [
      "samples/SampleSVGPong.cpp",
    ]
    deps = [
      ":sksg",
      "../..:skia",
      "../..:samples",
    ]
  }
}
