Coverage Report

Created: 2026-03-30 06:34

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
#endif
42
43
#ifdef HB_TINY
44
#define HB_LEAN
45
#define HB_MINI
46
#define HB_NO_SVG
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_BEYOND_64K
95
#define HB_NO_CUBIC_GLYF
96
#define HB_NO_VAR_COMPOSITES
97
#define HB_NO_VAR_HVF
98
#endif
99
100
#ifdef __OPTIMIZE_SIZE__
101
#ifndef HB_OPTIMIZE_SIZE
102
#define HB_OPTIMIZE_SIZE
103
#endif
104
#endif
105
106
#if defined(HAVE_CONFIG_OVERRIDE_H) || defined(HB_CONFIG_OVERRIDE_H)
107
#ifndef HB_CONFIG_OVERRIDE_H
108
#define HB_CONFIG_OVERRIDE_H "config-override.h"
109
#endif
110
#include HB_CONFIG_OVERRIDE_H
111
#endif
112
113
/* Closure of options. */
114
115
#ifdef HB_NO_VAR
116
#define HB_NO_VAR_COMPOSITES
117
#endif
118
119
#ifdef HB_DISABLE_DEPRECATED
120
#define HB_IF_NOT_DEPRECATED(x)
121
#else
122
470k
#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
122
123k
#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
123
#endif
124
125
#ifdef HB_NO_SHAPER
126
#define HB_NO_OT_SHAPE
127
#define HB_NO_AAT_SHAPE
128
#endif
129
130
#ifdef HB_NO_AAT
131
#define HB_NO_OT_NAME_LANGUAGE_AAT
132
#define HB_NO_AAT_SHAPE
133
#endif
134
135
#ifdef HB_NO_BITMAP
136
#define HB_NO_OT_FONT_BITMAP
137
#endif
138
139
#ifdef HB_NO_CFF
140
#define HB_NO_OT_FONT_CFF
141
#define HB_NO_SUBSET_CFF
142
#endif
143
144
#ifdef HB_NO_DRAW
145
#define HB_NO_OUTLINE
146
#define HB_NO_PAINT
147
#endif
148
149
#ifdef HB_NO_LEGACY
150
#define HB_NO_CMAP_LEGACY_SUBTABLES
151
#define HB_NO_FALLBACK_SHAPE
152
#define HB_NO_OT_KERN
153
#define HB_NO_OT_LAYOUT_BLOCKLIST
154
#define HB_NO_AAT_LAYOUT_BLOCKLIST
155
#define HB_NO_OT_SHAPE_FALLBACK
156
#endif
157
158
#ifdef HB_NO_NAME
159
#define HB_NO_OT_NAME_LANGUAGE
160
#endif
161
162
#ifdef HB_NO_OT
163
#define HB_NO_OT_FONT
164
#define HB_NO_OT_LAYOUT
165
#define HB_NO_OT_TAG
166
#define HB_NO_OT_SHAPE
167
#endif
168
169
#ifdef HB_NO_OT_SHAPE
170
#define HB_NO_AAT_SHAPE
171
#endif
172
173
#ifdef HB_NO_OT_SHAPE_FALLBACK
174
#define HB_NO_OT_SHAPER_ARABIC_FALLBACK
175
#define HB_NO_OT_SHAPER_HEBREW_FALLBACK
176
#define HB_NO_OT_SHAPER_THAI_FALLBACK
177
#define HB_NO_OT_SHAPER_VOWEL_CONSTRAINTS
178
#define HB_NO_OT_SHAPER_MYANMAR_ZAWGYI
179
#endif
180
181
#ifdef HB_OPTIMIZE_SIZE_MORE
182
#define HB_NO_OT_RULESETS_FAST_PATH
183
#endif
184
185
#ifdef HB_MINIMIZE_MEMORY_USAGE
186
#define HB_NO_GDEF_CACHE
187
#define HB_NO_OT_LAYOUT_LOOKUP_CACHE
188
#define HB_NO_OT_FONT_CMAP_CACHE
189
#endif
190
191
#ifdef HB_OPTIMIZE_SIZE
192
#define HB_OPTIMIZE_SIZE_VAL 1
193
#else
194
0
#define HB_OPTIMIZE_SIZE_VAL 0
195
#endif
196
197
#ifdef HB_MINIMIZE_MEMORY_USAGE
198
#define HB_MINIMIZE_MEMORY_USAGE_VAL 1
199
#else
200
#define HB_MINIMIZE_MEMORY_USAGE_VAL 0
201
#endif
202
203
#endif /* HB_CONFIG_HH */