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

declare_args() {
  skia_enable_particles = !(is_win && is_component_build)
}

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

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

static_library("particles") {
  if (skia_enable_particles) {
    import("particles.gni")
    public_configs = [ ":public_config" ]
    include_dirs = [ "../../tools/timer" ]
    deps = [
      "../..:skia",
    ]
    sources = skia_particle_sources
    sources += [ "../../src/utils/SkTextUtils.cpp" ]
    configs += [ "../../:skia_private" ]
  }
}
