• 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_VAR_COMPOSITES
41 #endif
42 
43 #ifdef HB_TINY
44 #define HB_LEAN
45 #define HB_MINI
46 #define HB_NO_MT
47 #define HB_NO_UCD_UNASSIGNED
48 #ifndef NDEBUG
49 #define NDEBUG
50 #endif
51 #ifndef __OPTIMIZE_SIZE__
52 #define __OPTIMIZE_SIZE__
53 #endif
54 #endif
55 
56 #ifdef HB_LEAN
57 #define HB_DISABLE_DEPRECATED
58 #define HB_NDEBUG
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_LANGUAGE_LONG
72 #define HB_NO_LANGUAGE_PRIVATE_SUBTAG
73 #define HB_NO_LAYOUT_FEATURE_PARAMS
74 #define HB_NO_LAYOUT_COLLECT_GLYPHS
75 #define HB_NO_LAYOUT_RARELY_USED
76 #define HB_NO_LAYOUT_UNUSED
77 #define HB_NO_MATH
78 #define HB_NO_META
79 #define HB_NO_METRICS
80 #define HB_NO_MMAP
81 #define HB_NO_NAME
82 #define HB_NO_OPEN
83 #define HB_NO_SETLOCALE
84 #define HB_NO_OT_FONT_GLYPH_NAMES
85 #define HB_NO_OT_SHAPE_FRACTIONS
86 #define HB_NO_STYLE
87 #define HB_NO_SUBSET_LAYOUT
88 #define HB_NO_VERTICAL
89 #define HB_NO_VAR
90 #endif
91 
92 #ifdef HB_MINI
93 #define HB_NO_AAT
94 #define HB_NO_LEGACY
95 #define HB_NO_BORING_EXPANSION
96 #endif
97 
98 #if defined(HAVE_CONFIG_OVERRIDE_H) || defined(HB_CONFIG_OVERRIDE_H)
99 #ifndef HB_CONFIG_OVERRIDE_H
100 #define HB_CONFIG_OVERRIDE_H "config-override.h"
101 #endif
102 #include HB_CONFIG_OVERRIDE_H
103 #endif
104 
105 /* Closure of options. */
106 
107 #ifdef HB_NO_BORING_EXPANSION
108 #define HB_NO_BEYOND_64K
109 #define HB_NO_AVAR2
110 #endif
111 
112 #ifdef HB_DISABLE_DEPRECATED
113 #define HB_IF_NOT_DEPRECATED(x)
114 #else
115 #define HB_IF_NOT_DEPRECATED(x) x
116 #endif
117 
118 #ifdef HB_NO_SHAPER
119 #define HB_NO_OT_SHAPE
120 #define HB_NO_AAT_SHAPE
121 #endif
122 
123 #ifdef HB_NO_AAT
124 #define HB_NO_OT_NAME_LANGUAGE_AAT
125 #define HB_NO_AAT_SHAPE
126 #endif
127 
128 #ifdef HB_NO_BITMAP
129 #define HB_NO_OT_FONT_BITMAP
130 #endif
131 
132 #ifdef HB_NO_CFF
133 #define HB_NO_OT_FONT_CFF
134 #define HB_NO_SUBSET_CFF
135 #endif
136 
137 #ifdef HB_NO_GETENV
138 #define HB_NO_UNISCRIBE_BUG_COMPATIBLE
139 #endif
140 
141 #ifdef HB_NO_LEGACY
142 #define HB_NO_CMAP_LEGACY_SUBTABLES
143 #define HB_NO_FALLBACK_SHAPE
144 #define HB_NO_OT_KERN
145 #define HB_NO_OT_LAYOUT_BLOCKLIST
146 #define HB_NO_OT_SHAPE_FALLBACK
147 #endif
148 
149 #ifdef HB_NO_NAME
150 #define HB_NO_OT_NAME_LANGUAGE
151 #endif
152 
153 #ifdef HB_NO_OT
154 #define HB_NO_OT_FONT
155 #define HB_NO_OT_LAYOUT
156 #define HB_NO_OT_TAG
157 #define HB_NO_OT_SHAPE
158 #endif
159 
160 #ifdef HB_NO_OT_SHAPE
161 #define HB_NO_AAT_SHAPE
162 #endif
163 
164 #ifdef HB_NO_OT_SHAPE_FALLBACK
165 #define HB_NO_OT_SHAPER_ARABIC_FALLBACK
166 #define HB_NO_OT_SHAPER_HEBREW_FALLBACK
167 #define HB_NO_OT_SHAPER_THAI_FALLBACK
168 #define HB_NO_OT_SHAPER_VOWEL_CONSTRAINTS
169 #define HB_NO_OT_SHAPER_MYANMAR_ZAWGYI
170 #endif
171 
172 #ifdef NDEBUG
173 #ifndef HB_NDEBUG
174 #define HB_NDEBUG
175 #endif
176 #endif
177 
178 #ifdef __OPTIMIZE_SIZE__
179 #ifndef HB_OPTIMIZE_SIZE
180 #define HB_OPTIMIZE_SIZE
181 #endif
182 #endif
183 
184 #ifdef HB_OPTIMIZE_SIZE
185 #define HB_NO_OT_LAYOUT_LOOKUP_CACHE
186 #endif
187 
188 
189 #endif /* HB_CONFIG_HH */
190