1# Copyright 2016 Google Inc.
2#
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6import("../../gn/skia.gni")
7import("../third_party.gni")
8
9declare_args() {
10  skia_use_system_harfbuzz = is_official_build
11}
12
13if (skia_use_system_harfbuzz) {
14  system("harfbuzz") {
15    include_dirs = [ "/usr/include/harfbuzz" ]
16    libs = [ "harfbuzz" ]
17  }
18} else {
19  third_party("harfbuzz") {
20    _src = "../externals/harfbuzz/src"
21    public_include_dirs = [
22      ".",
23      _src,
24    ]
25    defines = [
26      "HAVE_ICU",
27      "HAVE_ICU_BUILTIN",
28      "HAVE_OT",
29      "HB_NO_MT",
30    ]
31    deps = [
32      "//third_party/icu",
33    ]
34    sources = [
35      "$_src/hb-aat-fdsc-table.hh",
36      "$_src/hb-aat-layout-ankr-table.hh",
37      "$_src/hb-aat-layout-bsln-table.hh",
38      "$_src/hb-aat-layout-feat-table.hh",
39      "$_src/hb-aat-layout-kerx-table.hh",
40      "$_src/hb-aat-layout-morx-table.hh",
41      "$_src/hb-aat-layout-trak-table.hh",
42      "$_src/hb-aat-layout.cc",
43      "$_src/hb-aat-ltag-table.hh",
44      "$_src/hb-aat-map.cc",
45      "$_src/hb-aat-map.hh",
46      "$_src/hb-array.hh",
47      "$_src/hb-atomic.hh",
48      "$_src/hb-blob.cc",
49      "$_src/hb-blob.h",
50      "$_src/hb-blob.hh",
51      "$_src/hb-buffer-deserialize-json.hh",
52      "$_src/hb-buffer-deserialize-text.hh",
53      "$_src/hb-buffer-serialize.cc",
54      "$_src/hb-buffer.cc",
55      "$_src/hb-buffer.h",
56      "$_src/hb-buffer.hh",
57      "$_src/hb-cache.hh",
58      "$_src/hb-cff-interp-common.hh",
59      "$_src/hb-cff-interp-cs-common.hh",
60      "$_src/hb-cff-interp-dict-common.hh",
61      "$_src/hb-cff1-interp-cs.hh",
62      "$_src/hb-cff2-interp-cs.hh",
63      "$_src/hb-common.cc",
64      "$_src/hb-common.h",
65      "$_src/hb-debug.hh",
66      "$_src/hb-deprecated.h",
67      "$_src/hb-dsalgs.hh",
68      "$_src/hb-face.cc",
69      "$_src/hb-face.h",
70      "$_src/hb-face.hh",
71      "$_src/hb-font.cc",
72      "$_src/hb-font.h",
73      "$_src/hb-font.hh",
74      "$_src/hb-icu.cc",
75      "$_src/hb-icu.h",
76      "$_src/hb-map.cc",
77      "$_src/hb-mutex.hh",
78      "$_src/hb-object.hh",
79      "$_src/hb-open-file.hh",
80      "$_src/hb-open-type.hh",
81      "$_src/hb-ot-cff-common.hh",
82      "$_src/hb-ot-cff1-table.cc",
83      "$_src/hb-ot-cff1-table.hh",
84      "$_src/hb-ot-cff2-table.cc",
85      "$_src/hb-ot-cff2-table.hh",
86      "$_src/hb-ot-color-cbdt-table.hh",
87      "$_src/hb-ot-color-colr-table.hh",
88      "$_src/hb-ot-color-cpal-table.hh",
89      "$_src/hb-ot-deprecated.h",
90      "$_src/hb-ot-face.cc",
91      "$_src/hb-ot-face.hh",
92      "$_src/hb-ot-font.cc",
93      "$_src/hb-ot-font.h",
94      "$_src/hb-ot-gasp-table.hh",
95      "$_src/hb-ot-hdmx-table.hh",
96      "$_src/hb-ot-head-table.hh",
97      "$_src/hb-ot-hhea-table.hh",
98      "$_src/hb-ot-hmtx-table.hh",
99      "$_src/hb-ot-kern-table.hh",
100      "$_src/hb-ot-layout-base-table.hh",
101      "$_src/hb-ot-layout-common.hh",
102      "$_src/hb-ot-layout-gdef-table.hh",
103      "$_src/hb-ot-layout-gpos-table.hh",
104      "$_src/hb-ot-layout-gsub-table.hh",
105      "$_src/hb-ot-layout-gsubgpos.hh",
106      "$_src/hb-ot-layout.cc",
107      "$_src/hb-ot-layout.h",
108      "$_src/hb-ot-layout.hh",
109      "$_src/hb-ot-map.cc",
110      "$_src/hb-ot-map.hh",
111      "$_src/hb-ot-math-table.hh",
112      "$_src/hb-ot-math.cc",
113      "$_src/hb-ot-math.h",
114      "$_src/hb-ot-maxp-table.hh",
115      "$_src/hb-ot-name-language.cc",
116      "$_src/hb-ot-name-language.hh",
117      "$_src/hb-ot-name-table.hh",
118      "$_src/hb-ot-name.cc",
119      "$_src/hb-ot-os2-unicode-ranges.hh",
120      "$_src/hb-ot-post-macroman.hh",
121      "$_src/hb-ot-shape-complex-arabic-fallback.hh",
122      "$_src/hb-ot-shape-complex-arabic-table.hh",
123      "$_src/hb-ot-shape-complex-arabic.cc",
124      "$_src/hb-ot-shape-complex-arabic.hh",
125      "$_src/hb-ot-shape-complex-default.cc",
126      "$_src/hb-ot-shape-complex-hangul.cc",
127      "$_src/hb-ot-shape-complex-hebrew.cc",
128      "$_src/hb-ot-shape-complex-indic-machine.hh",
129      "$_src/hb-ot-shape-complex-indic-table.cc",
130      "$_src/hb-ot-shape-complex-indic.cc",
131      "$_src/hb-ot-shape-complex-indic.hh",
132      "$_src/hb-ot-shape-complex-khmer-machine.hh",
133      "$_src/hb-ot-shape-complex-khmer.cc",
134      "$_src/hb-ot-shape-complex-khmer.hh",
135      "$_src/hb-ot-shape-complex-myanmar-machine.hh",
136      "$_src/hb-ot-shape-complex-myanmar.cc",
137      "$_src/hb-ot-shape-complex-myanmar.hh",
138      "$_src/hb-ot-shape-complex-thai.cc",
139      "$_src/hb-ot-shape-complex-use-machine.hh",
140      "$_src/hb-ot-shape-complex-use-table.cc",
141      "$_src/hb-ot-shape-complex-use.cc",
142      "$_src/hb-ot-shape-complex-use.hh",
143      "$_src/hb-ot-shape-complex-vowel-constraints.cc",
144      "$_src/hb-ot-shape-complex-vowel-constraints.hh",
145      "$_src/hb-ot-shape-complex.hh",
146      "$_src/hb-ot-shape-fallback.cc",
147      "$_src/hb-ot-shape-fallback.hh",
148      "$_src/hb-ot-shape-normalize.cc",
149      "$_src/hb-ot-shape-normalize.hh",
150      "$_src/hb-ot-shape.cc",
151      "$_src/hb-ot-shape.h",
152      "$_src/hb-ot-shape.hh",
153      "$_src/hb-ot-tag.cc",
154      "$_src/hb-ot-var-avar-table.hh",
155      "$_src/hb-ot-var-fvar-table.hh",
156      "$_src/hb-ot-var-hvar-table.hh",
157      "$_src/hb-ot-var-mvar-table.hh",
158      "$_src/hb-ot-var.cc",
159      "$_src/hb-ot-var.h",
160      "$_src/hb-ot.h",
161      "$_src/hb-set-digest.hh",
162      "$_src/hb-set.cc",
163      "$_src/hb-set.h",
164      "$_src/hb-set.hh",
165      "$_src/hb-shape-plan.cc",
166      "$_src/hb-shape-plan.h",
167      "$_src/hb-shape-plan.hh",
168      "$_src/hb-shape.cc",
169      "$_src/hb-shape.h",
170      "$_src/hb-shaper-impl.hh",
171      "$_src/hb-shaper-list.hh",
172      "$_src/hb-shaper.cc",
173      "$_src/hb-shaper.hh",
174      "$_src/hb-static.cc",
175      "$_src/hb-string-array.hh",
176      "$_src/hb-subset-cff-common.cc",
177      "$_src/hb-subset-cff-common.hh",
178      "$_src/hb-subset-cff1.cc",
179      "$_src/hb-subset-cff2.cc",
180      "$_src/hb-subset-glyf.cc",
181      "$_src/hb-subset-glyf.hh",
182      "$_src/hb-subset-input.cc",
183      "$_src/hb-subset-plan.cc",
184      "$_src/hb-subset-plan.hh",
185      "$_src/hb-subset.cc",
186      "$_src/hb-subset.h",
187      "$_src/hb-subset.hh",
188      "$_src/hb-unicode-emoji-table.hh",
189      "$_src/hb-unicode.cc",
190      "$_src/hb-unicode.h",
191      "$_src/hb-unicode.hh",
192      "$_src/hb-utf.hh",
193      "$_src/hb-version.h",
194      "$_src/hb-warning.cc",
195      "$_src/hb.h",
196      "$_src/hb.hh",
197    ]
198  }
199}
200