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

declare_args() {
  skia_enable_skshaper = true
}

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

source_set("skshaper") {
  if (skia_enable_skshaper) {
    import("skshaper.gni")
    public_configs = [ ":public_config" ]
    public = skia_shaper_public
    deps = [
      "../..:skia",
    ]
    if (target_cpu == "wasm") {
      sources = skia_shaper_primitive_sources
    } else {
      sources = skia_shaper_harfbuzz_sources
      deps += [
        "//third_party/harfbuzz",
        "//third_party/icu",
      ]
    }
    configs += [ "../../:skia_private" ]
  }
}
