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
39#ifdef HB_TINY
40#define HB_LEAN
41#define HB_MINI
42#define HB_NO_MT
43#define HB_NO_UCD_UNASSIGNED
44#ifndef NDEBUG
45#define NDEBUG
46#endif
47#ifndef __OPTIMIZE_SIZE__
48#define __OPTIMIZE_SIZE__
49#endif
50#endif
51
52#ifdef HB_LEAN
53#define HB_DISABLE_DEPRECATED
54#define HB_NDEBUG
55#define HB_NO_ATEXIT
56#define HB_NO_BUFFER_MESSAGE
57#define HB_NO_BUFFER_SERIALIZE
58#define HB_NO_BITMAP
59#define HB_NO_CFF
60#define HB_NO_COLOR
61#define HB_NO_ERRNO
62#define HB_NO_FACE_COLLECT_UNICODES
63#define HB_NO_GETENV
64#define HB_NO_HINTING
65#define HB_NO_LANGUAGE_PRIVATE_SUBTAG
66#define HB_NO_LAYOUT_FEATURE_PARAMS
67#define HB_NO_LAYOUT_COLLECT_GLYPHS
68#define HB_NO_LAYOUT_UNUSED
69#define HB_NO_MATH
70#define HB_NO_META
71#define HB_NO_METRICS
72#define HB_NO_MMAP
73#define HB_NO_NAME
74#define HB_NO_OPEN
75#define HB_NO_SETLOCALE
76#define HB_NO_OT_FONT_GLYPH_NAMES
77#define HB_NO_OT_SHAPE_FRACTIONS
78#define HB_NO_STAT
79#define HB_NO_SUBSET_LAYOUT
80#define HB_NO_VAR
81#endif
82
83#ifdef HB_MINI
84#define HB_NO_AAT
85#define HB_NO_LEGACY
86#endif
87
88
89/* Closure of options. */
90
91#ifdef HB_DISABLE_DEPRECATED
92#define HB_IF_NOT_DEPRECATED(x)
93#else
94#define HB_IF_NOT_DEPRECATED(x) x
95#endif
96
97#ifdef HB_NO_AAT
98#define HB_NO_OT_NAME_LANGUAGE_AAT
99#define HB_NO_AAT_SHAPE
100#endif
101
102#ifdef HB_NO_BITMAP
103#define HB_NO_OT_FONT_BITMAP
104#endif
105
106#ifdef HB_NO_CFF
107#define HB_NO_OT_FONT_CFF
108#define HB_NO_SUBSET_CFF
109#endif
110
111#ifdef HB_NO_GETENV
112#define HB_NO_UNISCRIBE_BUG_COMPATIBLE
113#endif
114
115#ifdef HB_NO_LEGACY
116#define HB_NO_CMAP_LEGACY_SUBTABLES
117#define HB_NO_FALLBACK_SHAPE
118#define HB_NO_OT_KERN
119#define HB_NO_OT_LAYOUT_BLACKLIST
120#define HB_NO_OT_SHAPE_FALLBACK
121#endif
122
123#ifdef HB_NO_NAME
124#define HB_NO_OT_NAME_LANGUAGE
125#endif
126
127#ifdef HB_NO_OT
128#define HB_NO_OT_FONT
129#define HB_NO_OT_LAYOUT
130#define HB_NO_OT_TAG
131#define HB_NO_OT_SHAPE
132#endif
133
134#ifdef HB_NO_OT_SHAPE
135#define HB_NO_AAT_SHAPE
136#endif
137
138#ifdef HB_NO_OT_SHAPE_FALLBACK
139#define HB_NO_OT_SHAPE_COMPLEX_ARABIC_FALLBACK
140#define HB_NO_OT_SHAPE_COMPLEX_HEBREW_FALLBACK
141#define HB_NO_OT_SHAPE_COMPLEX_THAI_FALLBACK
142#define HB_NO_OT_SHAPE_COMPLEX_VOWEL_CONSTRAINTS
143#endif
144
145#ifdef NDEBUG
146#ifndef HB_NDEBUG
147#define HB_NDEBUG
148#endif
149#endif
150
151#ifdef __OPTIMIZE_SIZE__
152#ifndef HB_OPTIMIZE_SIZE
153#define HB_OPTIMIZE_SIZE
154#endif
155#endif
156
157#ifdef HAVE_CONFIG_OVERRIDE_H
158#include "config-override.h"
159#endif
160
161
162#endif /* HB_CONFIG_HH */
163