• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright © 2019  Facebook, Inc.
3  *
4  *  This is part of HarfBuzz, a text shaping library.
5  *
6  * Permission is hereby granted, without written agreement and without
7  * license or royalty fees, to use, copy, modify, and distribute this
8  * software and its documentation for any purpose, provided that the
9  * above copyright notice and the following two paragraphs appear in
10  * all copies of this software.
11  *
12  * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
13  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
14  * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
15  * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
16  * DAMAGE.
17  *
18  * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
19  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20  * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
21  * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
22  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
23  *
24  * Facebook Author(s): Behdad Esfahbod
25  */
26 
27 #ifndef HB_CONFIG_HH
28 #define HB_CONFIG_HH
29 
30 #if 0 /* Make test happy. */
31 #include "hb.hh"
32 #endif
33 
34 #ifdef HAVE_CONFIG_H
35 #include "config.h"
36 #endif
37 
38 #ifndef HB_EXPERIMENTAL_API
39 #define HB_NO_BEYOND_64K
40 #define HB_NO_CUBIC_GLYF
41 #define HB_NO_VAR_COMPOSITES
42 #endif
43 
44 #ifdef HB_TINY
45 #define HB_LEAN
46 #define HB_MINI
47 #define HB_OPTIMIZE_SIZE
48 #define HB_OPTIMIZE_SIZE_MORE
49 #define HB_MINIMIZE_MEMORY_USAGE
50 #define HB_NO_MT
51 #define HB_NO_UCD_UNASSIGNED
52 #ifndef NDEBUG
53 #define NDEBUG
54 #endif
55 #endif
56 
57 #ifdef HB_LEAN
58 #define HB_DISABLE_DEPRECATED
59 #define HB_NO_ATEXIT
60 #define HB_NO_BUFFER_MESSAGE
61 #define HB_NO_BUFFER_SERIALIZE
62 #define HB_NO_BUFFER_VERIFY
63 #define HB_NO_BITMAP
64 #define HB_NO_CFF
65 #define HB_NO_COLOR
66 #define HB_NO_DRAW
67 #define HB_NO_ERRNO
68 #define HB_NO_FACE_COLLECT_UNICODES
69 #define HB_NO_GETENV
70 #define HB_NO_HINTING
71 #define HB_NO_LAYOUT_FEATURE_PARAMS
72 #define HB_NO_LAYOUT_COLLECT_GLYPHS
73 #define HB_NO_LAYOUT_RARELY_USED
74 #define HB_NO_LAYOUT_UNUSED
75 #define HB_NO_MATH
76 #define HB_NO_META
77 #define HB_NO_METRICS
78 #define HB_NO_MMAP
79 #define HB_NO_NAME
80 #define HB_NO_OPEN
81 #define HB_NO_OT_FONT_GLYPH_NAMES
82 #define HB_NO_OT_SHAPE_FRACTIONS
83 #define HB_NO_PAINT
84 #define HB_NO_SETLOCALE
85 #define HB_NO_STYLE
86 #define HB_NO_SUBSET_LAYOUT
87 #define HB_NO_VERTICAL
88 #define HB_NO_VAR
89 #endif
90 
91 #ifdef HB_MINI
92 #define HB_NO_AAT
93 #define HB_NO_LEGACY
94 #define HB_NO_BORING_EXPANSION
95 #endif
96 
97 #ifdef __OPTIMIZE_SIZE__
98 #ifndef HB_OPTIMIZE_SIZE
99 #define HB_OPTIMIZE_SIZE
100 #endif
101 #endif
102 
103 #if defined(HAVE_CONFIG_OVERRIDE_H) || defined(HB_CONFIG_OVERRIDE_H)
104 #ifndef HB_CONFIG_OVERRIDE_H
105 #define HB_CONFIG_OVERRIDE_H "config-override.h"
106 #endif
107 #include HB_CONFIG_OVERRIDE_H
108 #endif
109 
110 /* Closure of options. */
111 
112 #ifdef HB_NO_BORING_EXPANSION
113 #define HB_NO_BEYOND_64K
114 #define HB_NO_CUBIC_GLYF
115 #define HB_NO_VAR_COMPOSITES
116 #endif
117 
118 #ifdef HB_NO_VAR
119 #define HB_NO_VAR_COMPOSITES
120 #endif
121 
122 #ifdef HB_DISABLE_DEPRECATED
123 #define HB_IF_NOT_DEPRECATED(x)
124 #else
125 #define HB_IF_NOT_DEPRECATED(x) x
126 #endif
127 
128 #ifdef HB_NO_SHAPER
129 #define HB_NO_OT_SHAPE
130 #define HB_NO_AAT_SHAPE
131 #endif
132 
133 #ifdef HB_NO_AAT
134 #define HB_NO_OT_NAME_LANGUAGE_AAT
135 #define HB_NO_AAT_SHAPE
136 #endif
137 
138 #ifdef HB_NO_BITMAP
139 #define HB_NO_OT_FONT_BITMAP
140 #endif
141 
142 #ifdef HB_NO_CFF
143 #define HB_NO_OT_FONT_CFF
144 #define HB_NO_SUBSET_CFF
145 #endif
146 
147 #ifdef HB_NO_DRAW
148 #define HB_NO_OUTLINE
149 #endif
150 
151 #ifdef HB_NO_GETENV
152 #define HB_NO_UNISCRIBE_BUG_COMPATIBLE
153 #endif
154 
155 #ifdef HB_NO_LEGACY
156 #define HB_NO_CMAP_LEGACY_SUBTABLES
157 #define HB_NO_FALLBACK_SHAPE
158 #define HB_NO_OT_KERN
159 #define HB_NO_OT_LAYOUT_BLOCKLIST
160 #define HB_NO_OT_SHAPE_FALLBACK
161 #endif
162 
163 #ifdef HB_NO_NAME
164 #define HB_NO_OT_NAME_LANGUAGE
165 #endif
166 
167 #ifdef HB_NO_OT
168 #define HB_NO_OT_FONT
169 #define HB_NO_OT_LAYOUT
170 #define HB_NO_OT_TAG
171 #define HB_NO_OT_SHAPE
172 #endif
173 
174 #ifdef HB_NO_OT_SHAPE
175 #define HB_NO_AAT_SHAPE
176 #endif
177 
178 #ifdef HB_NO_OT_SHAPE_FALLBACK
179 #define HB_NO_OT_SHAPER_ARABIC_FALLBACK
180 #define HB_NO_OT_SHAPER_HEBREW_FALLBACK
181 #define HB_NO_OT_SHAPER_THAI_FALLBACK
182 #define HB_NO_OT_SHAPER_VOWEL_CONSTRAINTS
183 #define HB_NO_OT_SHAPER_MYANMAR_ZAWGYI
184 #endif
185 
186 #ifdef HB_OPTIMIZE_SIZE_MORE
187 #define HB_NO_OT_RULESETS_FAST_PATH
188 #endif
189 
190 #ifdef HB_MINIMIZE_MEMORY_USAGE
191 #define HB_NO_GDEF_CACHE
192 #define HB_NO_OT_LAYOUT_LOOKUP_CACHE
193 #define HB_NO_OT_FONT_ADVANCE_CACHE
194 #define HB_NO_OT_FONT_CMAP_CACHE
195 #endif
196 
197 #ifdef HB_OPTIMIZE_SIZE
198 #define HB_OPTIMIZE_SIZE_VAL 1
199 #else
200 #define HB_OPTIMIZE_SIZE_VAL 0
201 #endif
202 
203 #ifdef HB_MINIMIZE_MEMORY_USAGE
204 #define HB_MINIMIZE_MEMORY_USAGE_VAL 1
205 #else
206 #define HB_MINIMIZE_MEMORY_USAGE_VAL 0
207 #endif
208 
209 #endif /* HB_CONFIG_HH */
210