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

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

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

static_library("skresources") {
  import("skresources.gni")
  public_configs = [ ":public_config" ]
  public = skia_skresources_public
  sources = skia_skresources_sources
  configs += [ "../../:skia_private" ]
  deps = [
    "../..:skia",
  ]
}
