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

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

declare_args() {
  skia_use_system_harfbuzz = is_official_build
}

if (skia_use_system_harfbuzz) {
  system("harfbuzz") {
    include_dirs = [ "/usr/include/harfbuzz" ]
    libs = [ "harfbuzz" ]
  }
} else {
  third_party("harfbuzz") {
    _src = "../externals/harfbuzz/src"
    public_include_dirs = [
      ".",
      _src,
    ]
    defines = [
      #"HAVE_ICU",
      #"HAVE_ICU_BUILTIN",
      "HAVE_INTEL_ATOMIC_PRIMITIVES",
      "HAVE_OT",
    ]
    public = [
      "$_src/hb-blob.h",
      "$_src/hb-buffer.h",
      "$_src/hb-common.h",
      "$_src/hb-deprecated.h",
      "$_src/hb-face.h",
      "$_src/hb-font.h",
      "$_src/hb-map.h",
      "$_src/hb-ot-font.h",
      "$_src/hb-ot-layout.h",
      "$_src/hb-ot-math.h",
      "$_src/hb-ot-shape.h",
      "$_src/hb-ot-var.h",
      "$_src/hb-ot.h",
      "$_src/hb-set.h",
      "$_src/hb-shape-plan.h",
      "$_src/hb-shape.h",
      "$_src/hb-subset.h",
      "$_src/hb-unicode.h",
      "$_src/hb-version.h",
      "$_src/hb.h",
    ]
    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-common.hh",
      "$_src/hb-aat-layout-feat-table.hh",
      "$_src/hb-aat-layout-just-table.hh",
      "$_src/hb-aat-layout-kerx-table.hh",
      "$_src/hb-aat-layout-lcar-table.hh",
      "$_src/hb-aat-layout-morx-table.hh",
      "$_src/hb-aat-layout-opbd-table.hh",
      "$_src/hb-aat-layout-trak-table.hh",
      "$_src/hb-aat-layout.cc",
      "$_src/hb-aat-layout.hh",
      "$_src/hb-aat-ltag-table.hh",
      "$_src/hb-aat-map.cc",
      "$_src/hb-aat-map.hh",
      "$_src/hb-algs.hh",
      "$_src/hb-array.hh",
      "$_src/hb-atomic.hh",
      "$_src/hb-bimap.hh",
      "$_src/hb-blob.cc",
      "$_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.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-config.hh",
      "$_src/hb-coretext.cc",
      "$_src/hb-debug.hh",
      "$_src/hb-directwrite.cc",
      "$_src/hb-dispatch.hh",
      "$_src/hb-face.cc",
      "$_src/hb-face.hh",
      "$_src/hb-fallback-shape.cc",
      "$_src/hb-font.cc",
      "$_src/hb-font.hh",
      "$_src/hb-ft.cc",
      "$_src/hb-gdi.cc",
      "$_src/hb-glib.cc",
      "$_src/hb-gobject-structs.cc",
      "$_src/hb-graphite2.cc",
      "$_src/hb-iter.hh",
      "$_src/hb-kern.hh",
      "$_src/hb-machinery.hh",
      "$_src/hb-map.cc",
      "$_src/hb-map.hh",
      "$_src/hb-meta.hh",
      "$_src/hb-mutex.hh",
      "$_src/hb-null.hh",
      "$_src/hb-number-parser.hh",
      "$_src/hb-number.cc",
      "$_src/hb-number.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-cmap-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-color-sbix-table.hh",
      "$_src/hb-ot-color-svg-table.hh",
      "$_src/hb-ot-color.cc",
      "$_src/hb-ot-face-table-list.hh",
      "$_src/hb-ot-face.cc",
      "$_src/hb-ot-face.hh",
      "$_src/hb-ot-font.cc",
      "$_src/hb-ot-gasp-table.hh",
      "$_src/hb-ot-glyf-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-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-jstf-table.hh",
      "$_src/hb-ot-layout.cc",
      "$_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-maxp-table.hh",
      "$_src/hb-ot-meta-table.hh",
      "$_src/hb-ot-meta.cc",
      "$_src/hb-ot-metrics.cc",
      "$_src/hb-ot-metrics.hh",
      "$_src/hb-ot-name-language-static.hh",
      "$_src/hb-ot-name-language.hh",
      "$_src/hb-ot-name-table.hh",
      "$_src/hb-ot-name.cc",
      "$_src/hb-ot-os2-table.hh",
      "$_src/hb-ot-os2-unicode-ranges.hh",
      "$_src/hb-ot-post-macroman.hh",
      "$_src/hb-ot-post-table.hh",
      "$_src/hb-ot-shape-complex-arabic-fallback.hh",
      "$_src/hb-ot-shape-complex-arabic-table.hh",
      "$_src/hb-ot-shape-complex-arabic-win1256.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.hh",
      "$_src/hb-ot-stat-table.hh",
      "$_src/hb-ot-tag-table.hh",
      "$_src/hb-ot-tag.cc",
      "$_src/hb-ot-var-avar-table.hh",
      "$_src/hb-ot-var-fvar-table.hh",
      "$_src/hb-ot-var-gvar-table.hh",
      "$_src/hb-ot-var-hvar-table.hh",
      "$_src/hb-ot-var-mvar-table.hh",
      "$_src/hb-ot-var.cc",
      "$_src/hb-ot-vorg-table.hh",
      "$_src/hb-pool.hh",
      "$_src/hb-sanitize.hh",
      "$_src/hb-serialize.hh",
      "$_src/hb-set-digest.hh",
      "$_src/hb-set.cc",
      "$_src/hb-set.hh",
      "$_src/hb-shape-plan.cc",
      "$_src/hb-shape-plan.hh",
      "$_src/hb-shape.cc",
      "$_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-cff1.hh",
      "$_src/hb-subset-cff2.cc",
      "$_src/hb-subset-cff2.hh",
      "$_src/hb-subset-input.cc",
      "$_src/hb-subset-input.hh",
      "$_src/hb-subset-plan.cc",
      "$_src/hb-subset-plan.hh",
      "$_src/hb-subset.cc",
      "$_src/hb-subset.hh",
      "$_src/hb-ucd-table.hh",
      "$_src/hb-ucd.cc",
      "$_src/hb-unicode-emoji-table.hh",
      "$_src/hb-unicode.cc",
      "$_src/hb-unicode.hh",
      "$_src/hb-uniscribe.cc",
      "$_src/hb-utf.hh",
      "$_src/hb-vector.hh",
      "$_src/hb.hh",
    ]
  }
}
