# Copyright 2013 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//flutter/impeller/tools/impeller.gni")
import("//flutter/testing/testing.gni")

if (enable_unittests) {
  group("shaders") {
    testonly = true
    deps = [
      ":fixtures",
      "//flutter/lib/ui/fixtures/shaders/general_shaders",
      "//flutter/lib/ui/fixtures/shaders/supported_glsl_op_shaders",
      "//flutter/lib/ui/fixtures/shaders/supported_op_shaders",
    ]
  }

  impellerc("ink_sparkle") {
    shaders = [ "//flutter/impeller/fixtures/ink_sparkle.frag" ]
    shader_target_flag = "--sksl"
    intermediates_subdir = "iplr"
    sl_file_extension = "iplr"
    iplr = true
  }

  impellerc("ink_sparkle_web") {
    shaders = [ "//flutter/impeller/fixtures/ink_sparkle.frag" ]
    shader_target_flag = "--sksl"
    intermediates_subdir = "iplr-json"
    sl_file_extension = "iplr"
    iplr = true
    json = true
  }

  test_fixtures("fixtures") {
    deps = [
      ":ink_sparkle",
      ":ink_sparkle_web",
    ]
    fixtures = get_target_outputs(":ink_sparkle")
    dest = "$root_gen_dir/flutter/lib/ui"
  }
}
