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_VAR_COMPOSITES 42 #endif 43 44 #ifdef HB_TINY 45 #define HB_LEAN 46 #define HB_MINI 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_NDEBUG 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_CFF 66 #define HB_NO_COLOR 67 #define HB_NO_DRAW 68 #define HB_NO_ERRNO 69 #define HB_NO_FACE_COLLECT_UNICODES 70 #define HB_NO_GETENV 71 #define HB_NO_HINTING 72 #define HB_NO_LANGUAGE_LONG 73 #define HB_NO_LANGUAGE_PRIVATE_SUBTAG 74 #define HB_NO_LAYOUT_FEATURE_PARAMS 75 #define HB_NO_LAYOUT_COLLECT_GLYPHS 76 #define HB_NO_LAYOUT_RARELY_USED 77 #define HB_NO_LAYOUT_UNUSED 78 #define HB_NO_MATH 79 #define HB_NO_META 80 #define HB_NO_METRICS 81 #define HB_NO_MMAP 82 #define HB_NO_NAME 83 #define HB_NO_OPEN 84 #define HB_NO_OT_FONT_GLYPH_NAMES 85 #define HB_NO_OT_SHAPE_FRACTIONS 86 #define HB_NO_PAINT 87 #define HB_NO_SETLOCALE 88 #define HB_NO_STYLE 89 #define HB_NO_SUBSET_LAYOUT 90 #define HB_NO_VERTICAL 91 #define HB_NO_VAR 92 #endif 93 94 #ifdef HB_MINI 95 #define HB_NO_AAT 96 #define HB_NO_LEGACY 97 #define HB_NO_BORING_EXPANSION 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_BORING_EXPANSION 116 #define HB_NO_BEYOND_64K 117 #define HB_NO_CUBIC_GLYF 118 #define HB_NO_VAR_COMPOSITES 119 #endif 120 121 #ifdef HB_NO_VAR 122 #define HB_NO_VAR_COMPOSITES 123 #endif 124 125 #ifdef HB_DISABLE_DEPRECATED 126 #define HB_IF_NOT_DEPRECATED(x) 127 #else 128 #define HB_IF_NOT_DEPRECATED(x) x 129 #endif 130 131 #ifdef HB_NO_SHAPER 132 #define HB_NO_OT_SHAPE 133 #define HB_NO_AAT_SHAPE 134 #endif 135 136 #ifdef HB_NO_AAT 137 #define HB_NO_OT_NAME_LANGUAGE_AAT 138 #define HB_NO_AAT_SHAPE 139 #endif 140 141 #ifdef HB_NO_BITMAP 142 #define HB_NO_OT_FONT_BITMAP 143 #endif 144 145 #ifdef HB_NO_CFF 146 #define HB_NO_OT_FONT_CFF 147 #define HB_NO_SUBSET_CFF 148 #endif 149 150 #ifdef HB_NO_DRAW 151 #define HB_NO_OUTLINE 152 #endif 153 154 #ifdef HB_NO_GETENV 155 #define HB_NO_UNISCRIBE_BUG_COMPATIBLE 156 #endif 157 158 #ifdef HB_NO_LEGACY 159 #define HB_NO_CMAP_LEGACY_SUBTABLES 160 #define HB_NO_FALLBACK_SHAPE 161 #define HB_NO_OT_KERN 162 #define HB_NO_OT_LAYOUT_BLOCKLIST 163 #define HB_NO_OT_SHAPE_FALLBACK 164 #endif 165 166 #ifdef HB_NO_NAME 167 #define HB_NO_OT_NAME_LANGUAGE 168 #endif 169 170 #ifdef HB_NO_OT 171 #define HB_NO_OT_FONT 172 #define HB_NO_OT_LAYOUT 173 #define HB_NO_OT_TAG 174 #define HB_NO_OT_SHAPE 175 #endif 176 177 #ifdef HB_NO_OT_SHAPE 178 #define HB_NO_AAT_SHAPE 179 #endif 180 181 #ifdef HB_NO_OT_SHAPE_FALLBACK 182 #define HB_NO_OT_SHAPER_ARABIC_FALLBACK 183 #define HB_NO_OT_SHAPER_HEBREW_FALLBACK 184 #define HB_NO_OT_SHAPER_THAI_FALLBACK 185 #define HB_NO_OT_SHAPER_VOWEL_CONSTRAINTS 186 #define HB_NO_OT_SHAPER_MYANMAR_ZAWGYI 187 #endif 188 189 #ifdef HB_OPTIMIZE_SIZE_MORE 190 #define HB_NO_OT_RULESETS_FAST_PATH 191 #endif 192 193 #ifdef HB_MINIMIZE_MEMORY_USAGE 194 #define HB_NO_GDEF_CACHE 195 #define HB_NO_OT_LAYOUT_LOOKUP_CACHE 196 #define HB_NO_OT_FONT_ADVANCE_CACHE 197 #define HB_NO_OT_FONT_CMAP_CACHE 198 #endif 199 200 #ifdef HB_OPTIMIZE_SIZE 201 #define HB_OPTIMIZE_SIZE_VAL 1 202 #else 203 #define HB_OPTIMIZE_SIZE_VAL 0 204 #endif 205 206 #ifdef HB_MINIMIZE_MEMORY_USAGE 207 #define HB_MINIMIZE_MEMORY_USAGE_VAL 1 208 #else 209 #define HB_MINIMIZE_MEMORY_USAGE_VAL 0 210 #endif 211 212 #endif /* HB_CONFIG_HH */ 213