# 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" ]
    if (skia_pdf_subset_harfbuzz) {
      libs += [ "harfbuzz-subset" ]
    }
  }
} else {
  third_party("harfbuzz") {
    _src = "../externals/harfbuzz/src"
    public_include_dirs = [
      ".",
      _src,
    ]
    defines = [
      #"HAVE_ICU",
      #"HAVE_ICU_BUILTIN",
      "HAVE_OT",
      "HAVE_CONFIG_OVERRIDE_H",
    ]
    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-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-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-syllabic.cc",
      "$_src/hb-ot-shape-complex-syllabic.hh",
      "$_src/hb-ot-shape-complex-thai.cc",
      "$_src/hb-ot-shape-complex-use-machine.hh",
      "$_src/hb-ot-shape-complex-use.cc",
      "$_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",
      "config-override.h",
    ]
  }
}
