hb-config.hh (4492B)
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_OPTIMIZE_SIZE 47 #define HB_OPTIMIZE_SIZE_MORE 48 #define HB_MINIMIZE_MEMORY_USAGE 49 #define HB_NO_MT 50 #define HB_NO_UCD_UNASSIGNED 51 #ifndef NDEBUG 52 #define NDEBUG 53 #endif 54 #endif 55 56 #ifdef HB_LEAN 57 #define HB_DISABLE_DEPRECATED 58 #define HB_NO_ATEXIT 59 #define HB_NO_BUFFER_MESSAGE 60 #define HB_NO_BUFFER_SERIALIZE 61 #define HB_NO_BUFFER_VERIFY 62 #define HB_NO_BITMAP 63 #define HB_NO_CFF 64 #define HB_NO_COLOR 65 #define HB_NO_DRAW 66 #define HB_NO_ERRNO 67 #define HB_NO_FACE_COLLECT_UNICODES 68 #define HB_NO_GETENV 69 #define HB_NO_HINTING 70 #define HB_NO_LAYOUT_FEATURE_PARAMS 71 #define HB_NO_LAYOUT_COLLECT_GLYPHS 72 #define HB_NO_LAYOUT_RARELY_USED 73 #define HB_NO_LAYOUT_UNUSED 74 #define HB_NO_MATH 75 #define HB_NO_META 76 #define HB_NO_METRICS 77 #define HB_NO_MMAP 78 #define HB_NO_NAME 79 #define HB_NO_OPEN 80 #define HB_NO_OT_FONT_GLYPH_NAMES 81 #define HB_NO_OT_SHAPE_FRACTIONS 82 #define HB_NO_PAINT 83 #define HB_NO_SETLOCALE 84 #define HB_NO_STYLE 85 #define HB_NO_SUBSET_LAYOUT 86 #define HB_NO_VERTICAL 87 #define HB_NO_VAR 88 #endif 89 90 #ifdef HB_MINI 91 #define HB_NO_AAT 92 #define HB_NO_LEGACY 93 #define HB_NO_BEYOND_64K 94 #define HB_NO_CUBIC_GLYF 95 #define HB_NO_VAR_COMPOSITES 96 #define HB_NO_VAR_HVF 97 #endif 98 99 #ifdef __OPTIMIZE_SIZE__ 100 #ifndef HB_OPTIMIZE_SIZE 101 #define HB_OPTIMIZE_SIZE 102 #endif 103 #endif 104 105 #if defined(HAVE_CONFIG_OVERRIDE_H) || defined(HB_CONFIG_OVERRIDE_H) 106 #ifndef HB_CONFIG_OVERRIDE_H 107 #define HB_CONFIG_OVERRIDE_H "config-override.h" 108 #endif 109 #include HB_CONFIG_OVERRIDE_H 110 #endif 111 112 /* Closure of options. */ 113 114 #ifdef HB_NO_VAR 115 #define HB_NO_VAR_COMPOSITES 116 #endif 117 118 #ifdef HB_DISABLE_DEPRECATED 119 #define HB_IF_NOT_DEPRECATED(x) 120 #else 121 #define HB_IF_NOT_DEPRECATED(x) x 122 #endif 123 124 #ifdef HB_NO_SHAPER 125 #define HB_NO_OT_SHAPE 126 #define HB_NO_AAT_SHAPE 127 #endif 128 129 #ifdef HB_NO_AAT 130 #define HB_NO_OT_NAME_LANGUAGE_AAT 131 #define HB_NO_AAT_SHAPE 132 #endif 133 134 #ifdef HB_NO_BITMAP 135 #define HB_NO_OT_FONT_BITMAP 136 #endif 137 138 #ifdef HB_NO_CFF 139 #define HB_NO_OT_FONT_CFF 140 #define HB_NO_SUBSET_CFF 141 #endif 142 143 #ifdef HB_NO_DRAW 144 #define HB_NO_OUTLINE 145 #define HB_NO_PAINT 146 #endif 147 148 #ifdef HB_NO_LEGACY 149 #define HB_NO_CMAP_LEGACY_SUBTABLES 150 #define HB_NO_FALLBACK_SHAPE 151 #define HB_NO_OT_KERN 152 #define HB_NO_OT_LAYOUT_BLOCKLIST 153 #define HB_NO_AAT_LAYOUT_BLOCKLIST 154 #define HB_NO_OT_SHAPE_FALLBACK 155 #endif 156 157 #ifdef HB_NO_NAME 158 #define HB_NO_OT_NAME_LANGUAGE 159 #endif 160 161 #ifdef HB_NO_OT 162 #define HB_NO_OT_FONT 163 #define HB_NO_OT_LAYOUT 164 #define HB_NO_OT_TAG 165 #define HB_NO_OT_SHAPE 166 #endif 167 168 #ifdef HB_NO_OT_SHAPE 169 #define HB_NO_AAT_SHAPE 170 #endif 171 172 #ifdef HB_NO_OT_SHAPE_FALLBACK 173 #define HB_NO_OT_SHAPER_ARABIC_FALLBACK 174 #define HB_NO_OT_SHAPER_HEBREW_FALLBACK 175 #define HB_NO_OT_SHAPER_THAI_FALLBACK 176 #define HB_NO_OT_SHAPER_VOWEL_CONSTRAINTS 177 #define HB_NO_OT_SHAPER_MYANMAR_ZAWGYI 178 #endif 179 180 #ifdef HB_OPTIMIZE_SIZE_MORE 181 #define HB_NO_OT_RULESETS_FAST_PATH 182 #endif 183 184 #ifdef HB_MINIMIZE_MEMORY_USAGE 185 #define HB_NO_GDEF_CACHE 186 #define HB_NO_OT_LAYOUT_LOOKUP_CACHE 187 #define HB_NO_OT_FONT_CMAP_CACHE 188 #endif 189 190 #ifdef HB_OPTIMIZE_SIZE 191 #define HB_OPTIMIZE_SIZE_VAL 1 192 #else 193 #define HB_OPTIMIZE_SIZE_VAL 0 194 #endif 195 196 #ifdef HB_MINIMIZE_MEMORY_USAGE 197 #define HB_MINIMIZE_MEMORY_USAGE_VAL 1 198 #else 199 #define HB_MINIMIZE_MEMORY_USAGE_VAL 0 200 #endif 201 202 #endif /* HB_CONFIG_HH */