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

declare_args() {
}

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

if (skia_use_icu) {
  third_party("harfbuzz") {
    _src = "../externals/harfbuzz/src"
    public_include_dirs = [
      ".",
      _src,
    ]
    defines = [
      "HAVE_ICU",
      "HAVE_ICU_BUILTIN",
      "HAVE_OT",
      "HB_NO_MT",
    ]
    deps = [
      "//third_party/icu",
    ]
    sources = [
      "$_src/hb-aat-fdsc-table.hh",
      "$_src/hb-aat-layout-ankr-table.hh",
      "$_src/hb-aat-layout-bsln-table.hh",
      "$_src/hb-aat-layout-feat-table.hh",
      "$_src/hb-aat-layout-kerx-table.hh",
      "$_src/hb-aat-layout-morx-table.hh",
      "$_src/hb-aat-layout-trak-table.hh",
      "$_src/hb-aat-layout.cc",
      "$_src/hb-aat-ltag-table.hh",
      "$_src/hb-aat-map.cc",
      "$_src/hb-aat-map.hh",
      "$_src/hb-array.hh",
      "$_src/hb-atomic.hh",
      "$_src/hb-blob.cc",
      "$_src/hb-blob.h",
      "$_src/hb-blob.hh",
      "$_src/hb-buffer-deserialize-json.hh",
      "$_src/hb-buffer-deserialize-text.hh",
      "$_src/hb-buffer-serialize.cc",
      "$_src/hb-buffer.cc",
      "$_src/hb-buffer.h",
      "$_src/hb-buffer.hh",
      "$_src/hb-cache.hh",
      "$_src/hb-cff-interp-common.hh",
      "$_src/hb-cff-interp-cs-common.hh",
      "$_src/hb-cff-interp-dict-common.hh",
      "$_src/hb-cff1-interp-cs.hh",
      "$_src/hb-cff2-interp-cs.hh",
      "$_src/hb-common.cc",
      "$_src/hb-common.h",
      "$_src/hb-debug.hh",
      "$_src/hb-deprecated.h",
      "$_src/hb-dsalgs.hh",
      "$_src/hb-face.cc",
      "$_src/hb-face.h",
      "$_src/hb-face.hh",
      "$_src/hb-font.cc",
      "$_src/hb-font.h",
      "$_src/hb-font.hh",
      "$_src/hb-icu.cc",
      "$_src/hb-icu.h",
      "$_src/hb-mutex.hh",
      "$_src/hb-object.hh",
      "$_src/hb-open-file.hh",
      "$_src/hb-open-type.hh",
      "$_src/hb-ot-cff-common.hh",
      "$_src/hb-ot-cff1-table.cc",
      "$_src/hb-ot-cff1-table.hh",
      "$_src/hb-ot-cff2-table.cc",
      "$_src/hb-ot-cff2-table.hh",
      "$_src/hb-ot-color-cbdt-table.hh",
      "$_src/hb-ot-color-colr-table.hh",
      "$_src/hb-ot-color-cpal-table.hh",
      "$_src/hb-ot-deprecated.h",
      "$_src/hb-ot-face.cc",
      "$_src/hb-ot-face.hh",
      "$_src/hb-ot-font.cc",
      "$_src/hb-ot-font.h",
      "$_src/hb-ot-gasp-table.hh",
      "$_src/hb-ot-hdmx-table.hh",
      "$_src/hb-ot-head-table.hh",
      "$_src/hb-ot-hhea-table.hh",
      "$_src/hb-ot-hmtx-table.hh",
      "$_src/hb-ot-kern-table.hh",
      "$_src/hb-ot-layout-base-table.hh",
      "$_src/hb-ot-layout-base-table.hh",
      "$_src/hb-ot-layout-common.hh",
      "$_src/hb-ot-layout-gdef-table.hh",
      "$_src/hb-ot-layout-gpos-table.hh",
      "$_src/hb-ot-layout-gsub-table.hh",
      "$_src/hb-ot-layout-gsubgpos.hh",
      "$_src/hb-ot-layout.cc",
      "$_src/hb-ot-layout.h",
      "$_src/hb-ot-layout.hh",
      "$_src/hb-ot-map.cc",
      "$_src/hb-ot-map.hh",
      "$_src/hb-ot-math-table.hh",
      "$_src/hb-ot-math.cc",
      "$_src/hb-ot-math.h",
      "$_src/hb-ot-maxp-table.hh",
      "$_src/hb-ot-name-language.cc",
      "$_src/hb-ot-name-language.hh",
      "$_src/hb-ot-name-table.hh",
      "$_src/hb-ot-name.cc",
      "$_src/hb-ot-os2-unicode-ranges.hh",
      "$_src/hb-ot-post-macroman.hh",
      "$_src/hb-ot-shape-complex-arabic-fallback.hh",
      "$_src/hb-ot-shape-complex-arabic-table.hh",
      "$_src/hb-ot-shape-complex-arabic.cc",
      "$_src/hb-ot-shape-complex-arabic.hh",
      "$_src/hb-ot-shape-complex-default.cc",
      "$_src/hb-ot-shape-complex-hangul.cc",
      "$_src/hb-ot-shape-complex-hebrew.cc",
      "$_src/hb-ot-shape-complex-indic-machine.hh",
      "$_src/hb-ot-shape-complex-indic-table.cc",
      "$_src/hb-ot-shape-complex-indic.cc",
      "$_src/hb-ot-shape-complex-indic.hh",
      "$_src/hb-ot-shape-complex-khmer-machine.hh",
      "$_src/hb-ot-shape-complex-khmer.cc",
      "$_src/hb-ot-shape-complex-khmer.hh",
      "$_src/hb-ot-shape-complex-myanmar-machine.hh",
      "$_src/hb-ot-shape-complex-myanmar.cc",
      "$_src/hb-ot-shape-complex-myanmar.hh",
      "$_src/hb-ot-shape-complex-thai.cc",
      "$_src/hb-ot-shape-complex-use-machine.hh",
      "$_src/hb-ot-shape-complex-use-table.cc",
      "$_src/hb-ot-shape-complex-use.cc",
      "$_src/hb-ot-shape-complex-use.hh",
      "$_src/hb-ot-shape-complex-vowel-constraints.cc",
      "$_src/hb-ot-shape-complex-vowel-constraints.hh",
      "$_src/hb-ot-shape-complex.hh",
      "$_src/hb-ot-shape-fallback.cc",
      "$_src/hb-ot-shape-fallback.hh",
      "$_src/hb-ot-shape-normalize.cc",
      "$_src/hb-ot-shape-normalize.hh",
      "$_src/hb-ot-shape.cc",
      "$_src/hb-ot-shape.h",
      "$_src/hb-ot-shape.hh",
      "$_src/hb-ot-tag.cc",
      "$_src/hb-ot-var-avar-table.hh",
      "$_src/hb-ot-var-fvar-table.hh",
      "$_src/hb-ot-var-hvar-table.hh",
      "$_src/hb-ot-var-mvar-table.hh",
      "$_src/hb-ot-var.cc",
      "$_src/hb-ot-var.h",
      "$_src/hb-ot.h",
      "$_src/hb-set-digest.hh",
      "$_src/hb-set.cc",
      "$_src/hb-set.h",
      "$_src/hb-set.hh",
      "$_src/hb-shape-plan.cc",
      "$_src/hb-shape-plan.h",
      "$_src/hb-shape-plan.hh",
      "$_src/hb-shape.cc",
      "$_src/hb-shape.h",
      "$_src/hb-shaper-impl.hh",
      "$_src/hb-shaper-list.hh",
      "$_src/hb-shaper.cc",
      "$_src/hb-shaper.hh",
      "$_src/hb-static.cc",
      "$_src/hb-string-array.hh",
      "$_src/hb-subset-cff-common.cc",
      "$_src/hb-subset-cff-common.hh",
      "$_src/hb-subset-cff1.cc",
      "$_src/hb-subset-cff2.cc",
      "$_src/hb-subset-glyf.hh",
      "$_src/hb-subset-plan.hh",
      "$_src/hb-subset.h",
      "$_src/hb-subset.hh",
      "$_src/hb-unicode-emoji-table.hh",
      "$_src/hb-unicode.cc",
      "$_src/hb-unicode.h",
      "$_src/hb-unicode.hh",
      "$_src/hb-utf.hh",
      "$_src/hb-version.h",
      "$_src/hb-warning.cc",
      "$_src/hb.h",
      "$_src/hb.hh",
    ]
  }
}
