# 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")

if (skia_use_icu && skia_use_harfbuzz) {
  source_set("editor_lib") {
    include_dirs = [ "../.." ]
    public = [
      "editor.h",
      "stringslice.h",
      "stringview.h",
    ]
    sources = [
      "editor.cpp",
      "stringslice.cpp",
    ]
    public_deps = [
      "../..:skia",
    ]
    deps = [
      ":shape",
    ]
  }

  source_set("shape") {
    include_dirs = [ "../.." ]
    public = [
      "shape.h",
    ]
    sources = [
      "shape.cpp",
    ]
    public_deps = [
      "../..:skia",
    ]
    deps = [
      ":word_boundaries",
      "../../modules/skshaper",
    ]
  }

  source_set("word_boundaries") {
    include_dirs = [ "../.." ]
    public = [
      "word_boundaries.h",
    ]
    sources = [
      "word_boundaries.cpp",
    ]
    deps = [
      "../../third_party/icu",
    ]
  }

  source_set("editor_app") {
    testonly = true
    sources = [
      "editor_application.cpp",
    ]
    public_deps = [
      "../..:sk_app",
    ]
    deps = [
      ":editor_lib",
    ]
  }
}
