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