Coverage Report

Created: 2026-08-31 07:00

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/harfbuzz/src/hb-config.hh
Line
Count
Source
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_SUBSET_DEPEND
42
#endif
43
44
#ifdef HB_TINY
45
#define HB_LEAN
46
#define HB_MINI
47
#define HB_NO_SVG
48
#define HB_OPTIMIZE_SIZE
49
#define HB_OPTIMIZE_SIZE_MORE
50
#define HB_MINIMIZE_MEMORY_USAGE
51
#define HB_NO_MT
52
#define HB_NO_UCD_UNASSIGNED
53
#ifndef NDEBUG
54
#define NDEBUG
55
#endif
56
#endif
57
58
#ifdef HB_LEAN
59
#define HB_DISABLE_DEPRECATED
60
#define HB_NO_ATEXIT
61
#define HB_NO_BUFFER_MESSAGE
62
#define HB_NO_BUFFER_SERIALIZE
63
#define HB_NO_BUFFER_VERIFY
64
#define HB_NO_BITMAP
65
#define HB_NO_ERRNO
66
#define HB_NO_FACE_COLLECT_UNICODES
67
#define HB_NO_GETENV
68
#define HB_NO_HINTING
69
#define HB_NO_LAYOUT_FEATURE_PARAMS
70
#define HB_NO_LAYOUT_COLLECT_GLYPHS
71
#define HB_NO_LAYOUT_RARELY_USED
72
#define HB_NO_LAYOUT_UNUSED
73
#define HB_NO_MATH
74
#define HB_NO_META
75
#define HB_NO_METRICS
76
#define HB_NO_MMAP
77
#define HB_NO_NAME
78
#define HB_NO_OPEN
79
#define HB_NO_OT_FETCH
80
#define HB_NO_OT_FONT_GLYPH_NAMES
81
#define HB_NO_SETLOCALE
82
#define HB_NO_STYLE
83
#define HB_NO_SUBSET_DEPEND
84
#define HB_NO_VERTICAL
85
#define HB_NO_VAR
86
87
#if !(defined(HB_HAS_CAIRO) || defined(HB_HAS_RASTER) || defined(HB_HAS_VECTOR) || defined(HB_HAS_GPU))
88
#define HB_NO_COLOR
89
#define HB_NO_DRAW
90
#define HB_NO_PAINT
91
#endif
92
93
#endif
94
95
#ifdef HB_MINI
96
#define HB_NO_AAT
97
#define HB_NO_LEGACY
98
#define HB_NO_BEYOND_64K
99
#define HB_NO_CUBIC_GLYF
100
#endif
101
102
#ifdef __OPTIMIZE_SIZE__
103
#ifndef HB_OPTIMIZE_SIZE
104
#define HB_OPTIMIZE_SIZE
105
#endif
106
#endif
107
108
#if defined(HAVE_CONFIG_OVERRIDE_H) || defined(HB_CONFIG_OVERRIDE_H)
109
#ifndef HB_CONFIG_OVERRIDE_H
110
#define HB_CONFIG_OVERRIDE_H "config-override.h"
111
#endif
112
#include HB_CONFIG_OVERRIDE_H
113
#endif
114
115
/* Closure of options. */
116
117
#ifdef HB_NO_VAR
118
#define HB_NO_VAR_COMPOSITES
119
#endif
120
121
#ifdef HB_DISABLE_DEPRECATED
122
#define HB_IF_NOT_DEPRECATED(x)
123
#else
124
262k
#define HB_IF_NOT_DEPRECATED(x) x
Unexecuted instantiation: hb_unicode_funcs_t::eastasian_width(unsigned int)
Unexecuted instantiation: hb_font_t::has_glyph_v_kerning_func()
Unexecuted instantiation: hb_font_t::has_glyph_v_kerning_func_set()
hb_font_funcs_set_glyph_v_kerning_func
Line
Count
Source
124
133k
#define HB_IF_NOT_DEPRECATED(x) x
Unexecuted instantiation: hb_unicode_funcs_set_eastasian_width_func
Unexecuted instantiation: hb_unicode_funcs_set_decompose_compatibility_func
Unexecuted instantiation: hb_unicode_eastasian_width
Unexecuted instantiation: hb-unicode.cc:hb_unicode_funcs_set_eastasian_width_func::$_0::operator()() const
Unexecuted instantiation: hb-unicode.cc:hb_unicode_funcs_set_decompose_compatibility_func::$_0::operator()() const
125
#endif
126
127
#ifdef HB_NO_SHAPER
128
#define HB_NO_OT_SHAPE
129
#define HB_NO_AAT_SHAPE
130
#endif
131
132
#ifdef HB_NO_AAT
133
#define HB_NO_OT_NAME_LANGUAGE_AAT
134
#define HB_NO_AAT_SHAPE
135
#endif
136
137
#ifdef HB_NO_BITMAP
138
#define HB_NO_OT_FONT_BITMAP
139
#endif
140
141
#ifdef HB_NO_DRAW
142
#define HB_NO_OT_FONT_CFF
143
#define HB_NO_OUTLINE
144
#define HB_NO_PAINT
145
#endif
146
147
#ifdef HB_NO_CFF
148
#define HB_NO_OT_FONT_CFF
149
#define HB_NO_SUBSET_CFF
150
#endif
151
152
#ifdef HB_NO_LEGACY
153
#define HB_NO_CMAP_LEGACY_SUBTABLES
154
#define HB_NO_FALLBACK_SHAPE
155
#define HB_NO_OT_KERN
156
#define HB_NO_OT_LAYOUT_BLOCKLIST
157
#define HB_NO_AAT_LAYOUT_BLOCKLIST
158
#define HB_NO_OT_SHAPE_FALLBACK
159
#endif
160
161
#ifdef HB_NO_NAME
162
#define HB_NO_OT_NAME_LANGUAGE
163
#endif
164
165
#ifdef HB_NO_OT
166
#define HB_NO_OT_FONT
167
#define HB_NO_OT_LAYOUT
168
#define HB_NO_OT_TAG
169
#define HB_NO_OT_SHAPE
170
#endif
171
172
#ifdef HB_NO_OT_SHAPE
173
#define HB_NO_AAT_SHAPE
174
#endif
175
176
#ifdef HB_NO_OT_SHAPE_FALLBACK
177
#define HB_NO_OT_SHAPER_ARABIC_FALLBACK
178
#define HB_NO_OT_SHAPER_HEBREW_FALLBACK
179
#define HB_NO_OT_SHAPER_THAI_FALLBACK
180
#define HB_NO_OT_SHAPER_VOWEL_CONSTRAINTS
181
#define HB_NO_OT_SHAPER_MYANMAR_ZAWGYI
182
#endif
183
184
#ifdef HB_OPTIMIZE_SIZE_MORE
185
#define HB_NO_OT_RULESETS_FAST_PATH
186
#endif
187
188
#ifdef HB_MINIMIZE_MEMORY_USAGE
189
#define HB_NO_GDEF_CACHE
190
#define HB_NO_OT_LAYOUT_LOOKUP_CACHE
191
#define HB_NO_OT_FONT_CMAP_CACHE
192
#endif
193
194
#if defined(HAVE_CONFIG_OVERRIDE_LAST_H) || defined(HB_CONFIG_OVERRIDE_LAST_H)
195
#ifndef HB_CONFIG_OVERRIDE_LAST_H
196
#define HB_CONFIG_OVERRIDE_LAST_H "config-override-last.h"
197
#endif
198
#include HB_CONFIG_OVERRIDE_LAST_H
199
#endif
200
201
#ifdef HB_OPTIMIZE_SIZE
202
#define HB_OPTIMIZE_SIZE_VAL 1
203
#else
204
0
#define HB_OPTIMIZE_SIZE_VAL 0
205
#endif
206
207
#ifdef HB_MINIMIZE_MEMORY_USAGE
208
#define HB_MINIMIZE_MEMORY_USAGE_VAL 1
209
#else
210
#define HB_MINIMIZE_MEMORY_USAGE_VAL 0
211
#endif
212
213
#endif /* HB_CONFIG_HH */