1# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
2# vim: set filetype=python:
3# This Source Code Form is subject to the terms of the Mozilla Public
4# License, v. 2.0. If a copy of the MPL was not distributed with this
5# file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7FILES_PER_UNIFIED_FILE = 100
8
9EXPORTS.harfbuzz += [
10    'hb-aat-layout.h',
11    'hb-aat.h',
12    'hb-blob.h',
13    'hb-buffer.h',
14    'hb-common.h',
15    'hb-deprecated.h',
16    'hb-draw.h',
17    'hb-face.h',
18    'hb-font.h',
19    'hb-map.h',
20    'hb-ot-color.h',
21    'hb-ot-deprecated.h',
22    'hb-ot-font.h',
23    'hb-ot-layout.h',
24    'hb-ot-math.h',
25    'hb-ot-meta.h',
26    'hb-ot-metrics.h',
27    'hb-ot-name.h',
28    'hb-ot-shape.h',
29    'hb-ot-var.h',
30    'hb-ot.h',
31    'hb-set.h',
32    'hb-shape-plan.h',
33    'hb-shape.h',
34    'hb-style.h',
35    'hb-unicode.h',
36    'hb-version.h',
37    'hb.h',
38]
39
40UNIFIED_SOURCES += [
41    'hb-aat-layout.cc',
42    'hb-aat-map.cc',
43    'hb-blob.cc',
44    'hb-buffer.cc',
45    'hb-common.cc',
46    'hb-draw.cc',
47    'hb-face.cc',
48    'hb-font.cc',
49    'hb-number.cc',
50    'hb-ot-cff1-table.cc',
51    'hb-ot-cff2-table.cc',
52    'hb-ot-color.cc',
53    'hb-ot-face.cc',
54    'hb-ot-font.cc',
55    'hb-ot-layout.cc',
56    'hb-ot-map.cc',
57    'hb-ot-math.cc',
58    'hb-ot-meta.cc',
59    'hb-ot-metrics.cc',
60    'hb-ot-name.cc',
61    'hb-ot-shape-complex-arabic.cc',
62    'hb-ot-shape-complex-default.cc',
63    'hb-ot-shape-complex-hangul.cc',
64    'hb-ot-shape-complex-hebrew.cc',
65    'hb-ot-shape-complex-indic-table.cc',
66    'hb-ot-shape-complex-indic.cc',
67    'hb-ot-shape-complex-khmer.cc',
68    'hb-ot-shape-complex-myanmar.cc',
69    'hb-ot-shape-complex-syllabic.cc',
70    'hb-ot-shape-complex-thai.cc',
71    'hb-ot-shape-complex-use.cc',
72    'hb-ot-shape-complex-vowel-constraints.cc',
73    'hb-ot-shape-fallback.cc',
74    'hb-ot-shape-normalize.cc',
75    'hb-ot-shape.cc',
76    'hb-ot-tag.cc',
77    'hb-ot-var.cc',
78    'hb-set.cc',
79    'hb-shape-plan.cc',
80    'hb-shape.cc',
81    'hb-shaper.cc',
82    'hb-static.cc',
83    'hb-style.cc',
84    'hb-subset-cff-common.cc',
85    'hb-subset-cff1.cc',
86    'hb-subset-cff2.cc',
87    'hb-unicode.cc',
88]
89
90if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
91    EXPORTS.harfbuzz += [
92        'hb-glib.h',
93    ]
94    UNIFIED_SOURCES += [
95        'hb-glib.cc',
96    ]
97    CXXFLAGS += CONFIG['GLIB_CFLAGS']
98
99# We allow warnings for third-party code that can be updated from upstream.
100AllowCompilerWarnings()
101
102if CONFIG['CC_TYPE'] == 'clang-cl':
103    CXXFLAGS += ['-Wno-unused-variable']
104
105FINAL_LIBRARY = 'gkmedias'
106
107DEFINES['PACKAGE_VERSION'] = '"moz"'
108DEFINES['PACKAGE_BUGREPORT'] = '"http://bugzilla.mozilla.org/"'
109DEFINES['HAVE_OT'] = 1
110DEFINES['HAVE_ROUND'] = 1
111DEFINES['HB_NO_FALLBACK_SHAPE'] = True
112DEFINES['HB_NO_MT'] = True
113DEFINES['HB_NO_UCD'] = True
114DEFINES['HB_NO_UNICODE_FUNCS'] = True
115# Cancel the effect of the -DDEBUG macro if present,
116# because harfbuzz uses that name for its own purposes
117DEFINES['DEBUG'] = False
118
119# On Android, we want to use harfbuzz's mmap support for file access,
120# so we need to set the appropriate configuration flags as we're not
121# running harfbuzz's own configure script.
122if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
123    DEFINES['HAVE_MMAP'] = 1
124    DEFINES['HAVE_SYS_MMAN_H'] = 1
125
126if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
127    DEFINES['UNICODE'] = True
128