# 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 = [
      "include/editor.h",
      "include/stringslice.h",
      "include/stringview.h",
    ]
    sources = [
      "src/editor.cpp",
      "src/stringslice.cpp",
    ]
    public_deps = [ "../..:skia" ]
    deps = [ ":shape" ]
  }

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

  source_set("word_boundaries") {
    include_dirs = [ "../.." ]
    public = [ "src/word_boundaries.h" ]
    sources = [ "src/word_boundaries.cpp" ]
    configs += [ "../../third_party/icu/config:no_cxx" ]
    deps = [ "//third_party/icu" ]
  }

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