Behdad Esfahbod | e6582de | 2019-05-10 23:53:38 -0700 | [diff] [blame] | 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 | |
Behdad Esfahbod | 0bfd14c | 2019-05-11 00:06:57 -0700 | [diff] [blame] | 30 | #if 0 /* Make test happy. */ |
| 31 | #include "hb.hh" |
| 32 | #endif |
Behdad Esfahbod | 5249eee | 2019-05-11 16:12:07 -0700 | [diff] [blame] | 33 | |
Behdad Esfahbod | e6582de | 2019-05-10 23:53:38 -0700 | [diff] [blame] | 34 | #ifdef HAVE_CONFIG_H |
| 35 | #include "config.h" |
| 36 | #endif |
| 37 | |
Behdad Esfahbod | af450a7 | 2022-12-09 19:05:16 -0700 | [diff] [blame] | 38 | #ifndef HB_EXPERIMENTAL_API |
Behdad Esfahbod | 6a47ef3 | 2022-10-29 11:14:27 -0600 | [diff] [blame] | 39 | #define HB_NO_BEYOND_64K |
Behdad Esfahbod | 91c2f09 | 2023-02-10 14:15:16 -0700 | [diff] [blame] | 40 | #define HB_NO_CUBIC_GLYF |
Behdad Esfahbod | 5cf0b9a | 2022-12-09 18:59:43 -0700 | [diff] [blame] | 41 | #define HB_NO_VAR_COMPOSITES |
Behdad Esfahbod | 6a47ef3 | 2022-10-29 11:14:27 -0600 | [diff] [blame] | 42 | #endif |
| 43 | |
Behdad Esfahbod | 784df8e | 2019-05-11 00:04:59 -0700 | [diff] [blame] | 44 | #ifdef HB_TINY |
Behdad Esfahbod | 484f6e8 | 2019-05-11 00:13:35 -0700 | [diff] [blame] | 45 | #define HB_LEAN |
Behdad Esfahbod | 784df8e | 2019-05-11 00:04:59 -0700 | [diff] [blame] | 46 | #define HB_MINI |
Behdad Esfahbod | 0e9ebf1 | 2023-05-05 06:57:51 -0600 | [diff] [blame] | 47 | #define HB_OPTIMIZE_SIZE |
| 48 | #define HB_OPTIMIZE_SIZE_MORE |
Behdad Esfahbod | da175c6 | 2023-05-05 06:51:59 -0600 | [diff] [blame] | 49 | #define HB_MINIMIZE_MEMORY_USAGE |
Behdad Esfahbod | 8694d60 | 2019-05-12 11:05:24 -0700 | [diff] [blame] | 50 | #define HB_NO_MT |
Behdad Esfahbod | ad97ec9 | 2019-06-21 00:44:29 -0700 | [diff] [blame] | 51 | #define HB_NO_UCD_UNASSIGNED |
Behdad Esfahbod | 42ae468 | 2019-05-13 23:43:45 -0700 | [diff] [blame] | 52 | #ifndef NDEBUG |
| 53 | #define NDEBUG |
| 54 | #endif |
Behdad Esfahbod | 484f6e8 | 2019-05-11 00:13:35 -0700 | [diff] [blame] | 55 | #endif |
| 56 | |
| 57 | #ifdef HB_LEAN |
Behdad Esfahbod | fca2786 | 2019-05-11 00:37:01 -0700 | [diff] [blame] | 58 | #define HB_DISABLE_DEPRECATED |
Behdad Esfahbod | 42a2128 | 2019-05-11 00:44:22 -0700 | [diff] [blame] | 59 | #define HB_NO_ATEXIT |
Ebrahim Byagowi | 815f002 | 2019-06-05 10:38:06 +0430 | [diff] [blame] | 60 | #define HB_NO_BUFFER_MESSAGE |
Behdad Esfahbod | dba1ac1 | 2019-05-12 15:33:31 -0700 | [diff] [blame] | 61 | #define HB_NO_BUFFER_SERIALIZE |
Behdad Esfahbod | 5b1d813 | 2022-01-28 13:49:21 -0700 | [diff] [blame] | 62 | #define HB_NO_BUFFER_VERIFY |
Behdad Esfahbod | 784df8e | 2019-05-11 00:04:59 -0700 | [diff] [blame] | 63 | #define HB_NO_BITMAP |
| 64 | #define HB_NO_CFF |
Behdad Esfahbod | 81b79df | 2019-05-11 00:53:52 -0700 | [diff] [blame] | 65 | #define HB_NO_COLOR |
Ebrahim Byagowi | ac81e94 | 2020-01-28 12:34:47 +0330 | [diff] [blame] | 66 | #define HB_NO_DRAW |
Ebrahim Byagowi | 412d6ca | 2019-09-16 13:50:11 +0430 | [diff] [blame] | 67 | #define HB_NO_ERRNO |
Behdad Esfahbod | 27de7c4 | 2019-06-19 20:07:02 -0700 | [diff] [blame] | 68 | #define HB_NO_FACE_COLLECT_UNICODES |
Behdad Esfahbod | 42a2128 | 2019-05-11 00:44:22 -0700 | [diff] [blame] | 69 | #define HB_NO_GETENV |
Behdad Esfahbod | c8f529a | 2019-06-19 19:33:15 -0700 | [diff] [blame] | 70 | #define HB_NO_HINTING |
Behdad Esfahbod | 6c725c7 | 2019-06-19 20:12:25 -0700 | [diff] [blame] | 71 | #define HB_NO_LAYOUT_FEATURE_PARAMS |
Behdad Esfahbod | fce3bf8 | 2019-06-19 20:34:29 -0700 | [diff] [blame] | 72 | #define HB_NO_LAYOUT_COLLECT_GLYPHS |
Behdad Esfahbod | 71c6cba | 2022-09-01 13:43:19 -0600 | [diff] [blame] | 73 | #define HB_NO_LAYOUT_RARELY_USED |
Behdad Esfahbod | f8f9cb9 | 2019-05-12 15:56:25 -0700 | [diff] [blame] | 74 | #define HB_NO_LAYOUT_UNUSED |
Behdad Esfahbod | 484f6e8 | 2019-05-11 00:13:35 -0700 | [diff] [blame] | 75 | #define HB_NO_MATH |
Ebrahim Byagowi | 3ac03bd | 2019-07-22 23:35:08 +0430 | [diff] [blame] | 76 | #define HB_NO_META |
Ebrahim Byagowi | 2e5b49d | 2019-07-19 11:41:07 +0430 | [diff] [blame] | 77 | #define HB_NO_METRICS |
Ebrahim Byagowi | b4a5a69 | 2019-06-11 01:33:09 +0430 | [diff] [blame] | 78 | #define HB_NO_MMAP |
Behdad Esfahbod | 0e78d4d | 2019-05-11 01:27:50 -0700 | [diff] [blame] | 79 | #define HB_NO_NAME |
Behdad Esfahbod | 0c5da57 | 2019-06-10 14:06:25 -0700 | [diff] [blame] | 80 | #define HB_NO_OPEN |
Behdad Esfahbod | c8f529a | 2019-06-19 19:33:15 -0700 | [diff] [blame] | 81 | #define HB_NO_OT_FONT_GLYPH_NAMES |
Behdad Esfahbod | d84932b | 2019-06-19 16:57:48 -0700 | [diff] [blame] | 82 | #define HB_NO_OT_SHAPE_FRACTIONS |
Behdad Esfahbod | ceba6c9 | 2022-12-30 10:44:34 -0700 | [diff] [blame] | 83 | #define HB_NO_PAINT |
| 84 | #define HB_NO_SETLOCALE |
Ebrahim Byagowi | 2203749 | 2019-08-04 11:31:31 +0430 | [diff] [blame] | 85 | #define HB_NO_STYLE |
Behdad Esfahbod | f8f9cb9 | 2019-05-12 15:56:25 -0700 | [diff] [blame] | 86 | #define HB_NO_SUBSET_LAYOUT |
Behdad Esfahbod | 9e1239f | 2022-11-24 13:00:47 -0700 | [diff] [blame] | 87 | #define HB_NO_VERTICAL |
Behdad Esfahbod | a849873 | 2019-06-19 19:26:22 -0700 | [diff] [blame] | 88 | #define HB_NO_VAR |
Behdad Esfahbod | 784df8e | 2019-05-11 00:04:59 -0700 | [diff] [blame] | 89 | #endif |
Behdad Esfahbod | e6582de | 2019-05-10 23:53:38 -0700 | [diff] [blame] | 90 | |
Behdad Esfahbod | 784df8e | 2019-05-11 00:04:59 -0700 | [diff] [blame] | 91 | #ifdef HB_MINI |
| 92 | #define HB_NO_AAT |
Behdad Esfahbod | 771f1b2 | 2019-05-11 00:16:18 -0700 | [diff] [blame] | 93 | #define HB_NO_LEGACY |
Behdad Esfahbod | 67eb9ac | 2022-02-15 17:17:49 -0600 | [diff] [blame] | 94 | #define HB_NO_BORING_EXPANSION |
Behdad Esfahbod | 784df8e | 2019-05-11 00:04:59 -0700 | [diff] [blame] | 95 | #endif |
Behdad Esfahbod | 799c6a5 | 2019-05-10 23:55:22 -0700 | [diff] [blame] | 96 | |
Behdad Esfahbod | e138319 | 2023-05-04 11:28:50 -0600 | [diff] [blame] | 97 | #ifdef __OPTIMIZE_SIZE__ |
| 98 | #ifndef HB_OPTIMIZE_SIZE |
| 99 | #define HB_OPTIMIZE_SIZE |
| 100 | #endif |
| 101 | #endif |
| 102 | |
Behdad Esfahbod | b95d252 | 2021-12-03 11:49:55 -0700 | [diff] [blame] | 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 |
Andrzej Perczak | cab9d5a | 2021-03-19 22:10:50 +0100 | [diff] [blame] | 108 | #endif |
Behdad Esfahbod | 23ccd00 | 2019-06-17 20:35:04 -0700 | [diff] [blame] | 109 | |
| 110 | /* Closure of options. */ |
Behdad Esfahbod | 799c6a5 | 2019-05-10 23:55:22 -0700 | [diff] [blame] | 111 | |
Behdad Esfahbod | 5a9c793 | 2022-07-22 21:33:15 -0600 | [diff] [blame] | 112 | #ifdef HB_NO_BORING_EXPANSION |
Behdad Esfahbod | bbf4cfa | 2023-05-05 06:51:10 -0600 | [diff] [blame] | 113 | #define HB_NO_BEYOND_64K |
| 114 | #define HB_NO_CUBIC_GLYF |
| 115 | #define HB_NO_VAR_COMPOSITES |
Behdad Esfahbod | 5a9c793 | 2022-07-22 21:33:15 -0600 | [diff] [blame] | 116 | #endif |
| 117 | |
Behdad Esfahbod | bf27f4a | 2024-03-16 14:50:27 -0600 | [diff] [blame] | 118 | #ifdef HB_NO_VAR |
| 119 | #define HB_NO_VAR_COMPOSITES |
| 120 | #endif |
| 121 | |
Behdad Esfahbod | fca2786 | 2019-05-11 00:37:01 -0700 | [diff] [blame] | 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 | |
Behdad Esfahbod | ad5588e | 2022-12-04 15:27:59 -0700 | [diff] [blame] | 128 | #ifdef HB_NO_SHAPER |
| 129 | #define HB_NO_OT_SHAPE |
| 130 | #define HB_NO_AAT_SHAPE |
| 131 | #endif |
| 132 | |
Behdad Esfahbod | 799c6a5 | 2019-05-10 23:55:22 -0700 | [diff] [blame] | 133 | #ifdef HB_NO_AAT |
Behdad Esfahbod | 1fc0772 | 2019-05-11 01:24:23 -0700 | [diff] [blame] | 134 | #define HB_NO_OT_NAME_LANGUAGE_AAT |
Behdad Esfahbod | 12092a4 | 2019-06-26 13:31:01 -0700 | [diff] [blame] | 135 | #define HB_NO_AAT_SHAPE |
Behdad Esfahbod | 799c6a5 | 2019-05-10 23:55:22 -0700 | [diff] [blame] | 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 | |
Behdad Esfahbod | 209f63b | 2023-02-24 16:03:23 -0700 | [diff] [blame] | 147 | #ifdef HB_NO_DRAW |
| 148 | #define HB_NO_OUTLINE |
| 149 | #endif |
| 150 | |
Behdad Esfahbod | a1394a2 | 2019-05-12 15:47:46 -0700 | [diff] [blame] | 151 | #ifdef HB_NO_GETENV |
| 152 | #define HB_NO_UNISCRIBE_BUG_COMPATIBLE |
| 153 | #endif |
| 154 | |
Behdad Esfahbod | 771f1b2 | 2019-05-11 00:16:18 -0700 | [diff] [blame] | 155 | #ifdef HB_NO_LEGACY |
Behdad Esfahbod | 3caa32d | 2019-06-19 19:50:54 -0700 | [diff] [blame] | 156 | #define HB_NO_CMAP_LEGACY_SUBTABLES |
Behdad Esfahbod | 23768a9 | 2019-06-17 20:29:29 -0700 | [diff] [blame] | 157 | #define HB_NO_FALLBACK_SHAPE |
Behdad Esfahbod | 588697a | 2019-06-19 16:24:51 -0700 | [diff] [blame] | 158 | #define HB_NO_OT_KERN |
Behdad Esfahbod | cf9538e | 2021-06-04 22:33:16 -0600 | [diff] [blame] | 159 | #define HB_NO_OT_LAYOUT_BLOCKLIST |
Behdad Esfahbod | 771f1b2 | 2019-05-11 00:16:18 -0700 | [diff] [blame] | 160 | #define HB_NO_OT_SHAPE_FALLBACK |
| 161 | #endif |
| 162 | |
Behdad Esfahbod | 0e78d4d | 2019-05-11 01:27:50 -0700 | [diff] [blame] | 163 | #ifdef HB_NO_NAME |
| 164 | #define HB_NO_OT_NAME_LANGUAGE |
| 165 | #endif |
| 166 | |
Behdad Esfahbod | 7aad536 | 2019-06-26 13:21:03 -0700 | [diff] [blame] | 167 | #ifdef HB_NO_OT |
Behdad Esfahbod | ab40a2f | 2019-06-26 13:25:02 -0700 | [diff] [blame] | 168 | #define HB_NO_OT_FONT |
Behdad Esfahbod | bb4bbe6 | 2019-06-26 13:29:58 -0700 | [diff] [blame] | 169 | #define HB_NO_OT_LAYOUT |
Behdad Esfahbod | 8fe1548 | 2019-06-26 13:49:42 -0700 | [diff] [blame] | 170 | #define HB_NO_OT_TAG |
Behdad Esfahbod | 7aad536 | 2019-06-26 13:21:03 -0700 | [diff] [blame] | 171 | #define HB_NO_OT_SHAPE |
| 172 | #endif |
| 173 | |
Behdad Esfahbod | b0fd16e | 2019-06-26 13:31:51 -0700 | [diff] [blame] | 174 | #ifdef HB_NO_OT_SHAPE |
| 175 | #define HB_NO_AAT_SHAPE |
| 176 | #endif |
| 177 | |
Behdad Esfahbod | 771f1b2 | 2019-05-11 00:16:18 -0700 | [diff] [blame] | 178 | #ifdef HB_NO_OT_SHAPE_FALLBACK |
Behdad Esfahbod | 44be1e5 | 2022-06-03 02:54:33 -0600 | [diff] [blame] | 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 |
Behdad Esfahbod | 1248574 | 2022-11-24 12:46:04 -0700 | [diff] [blame] | 183 | #define HB_NO_OT_SHAPER_MYANMAR_ZAWGYI |
Behdad Esfahbod | 784df8e | 2019-05-11 00:04:59 -0700 | [diff] [blame] | 184 | #endif |
| 185 | |
Behdad Esfahbod | 0e9ebf1 | 2023-05-05 06:57:51 -0600 | [diff] [blame] | 186 | #ifdef HB_OPTIMIZE_SIZE_MORE |
Behdad Esfahbod | 4973053 | 2023-07-16 13:09:49 -0600 | [diff] [blame] | 187 | #define HB_NO_OT_RULESETS_FAST_PATH |
Behdad Esfahbod | 0e9ebf1 | 2023-05-05 06:57:51 -0600 | [diff] [blame] | 188 | #endif |
| 189 | |
Behdad Esfahbod | da175c6 | 2023-05-05 06:51:59 -0600 | [diff] [blame] | 190 | #ifdef HB_MINIMIZE_MEMORY_USAGE |
| 191 | #define HB_NO_GDEF_CACHE |
| 192 | #define HB_NO_OT_LAYOUT_LOOKUP_CACHE |
Behdad Esfahbod | 7e676cb | 2023-05-05 07:07:00 -0600 | [diff] [blame] | 193 | #define HB_NO_OT_FONT_ADVANCE_CACHE |
Behdad Esfahbod | 8831ba7 | 2023-05-05 07:03:25 -0600 | [diff] [blame] | 194 | #define HB_NO_OT_FONT_CMAP_CACHE |
Behdad Esfahbod | da175c6 | 2023-05-05 06:51:59 -0600 | [diff] [blame] | 195 | #endif |
| 196 | |
Behdad Esfahbod | 1056590 | 2023-04-27 10:41:36 -0600 | [diff] [blame] | 197 | #ifdef HB_OPTIMIZE_SIZE |
| 198 | #define HB_OPTIMIZE_SIZE_VAL 1 |
| 199 | #else |
| 200 | #define HB_OPTIMIZE_SIZE_VAL 0 |
| 201 | #endif |
Behdad Esfahbod | 799c6a5 | 2019-05-10 23:55:22 -0700 | [diff] [blame] | 202 | |
Behdad Esfahbod | da175c6 | 2023-05-05 06:51:59 -0600 | [diff] [blame] | 203 | #ifdef HB_MINIMIZE_MEMORY_USAGE |
| 204 | #define HB_MINIMIZE_MEMORY_USAGE_VAL 1 |
| 205 | #else |
| 206 | #define HB_MINIMIZE_MEMORY_USAGE_VAL 0 |
Behdad Esfahbod | 39820af | 2022-06-07 10:18:38 -0600 | [diff] [blame] | 207 | #endif |
| 208 | |
Behdad Esfahbod | e6582de | 2019-05-10 23:53:38 -0700 | [diff] [blame] | 209 | #endif /* HB_CONFIG_HH */ |