1 /* 2 ********************************************************************** 3 * Copyright (C) 2002-2004, International Business Machines 4 * Corporation and others. All Rights Reserved. 5 ********************************************************************** 6 * file name: uconfig.h 7 * encoding: US-ASCII 8 * tab size: 8 (not used) 9 * indentation:4 10 * 11 * created on: 2002sep19 12 * created by: Markus W. Scherer 13 */ 14 15 #ifndef __UCONFIG_H__ 16 #define __UCONFIG_H__ 17 18 /*! 19 * \file 20 * \brief Switches for excluding parts of ICU library code modules. 21 * 22 * Allows to build partial, smaller libraries for special purposes. 23 * By default, all modules are built. 24 * The switches are fairly coarse, controlling large modules. 25 * Basic services cannot be turned off. 26 * 27 * @stable ICU 2.4 28 */ 29 30 /** 31 * \def UCONFIG_ONLY_COLLATION 32 * This switch turns off modules that are not needed for collation. 33 * 34 * It does not turn off legacy conversion because that is necessary 35 * for ICU to work on EBCDIC platforms (for the default converter). 36 * If you want "only collation" and do not build for EBCDIC, 37 * then you can #define UCONFIG_NO_LEGACY_CONVERSION 1 as well. 38 * 39 * @stable ICU 2.4 40 */ 41 #ifndef UCONFIG_ONLY_COLLATION 42 # define UCONFIG_ONLY_COLLATION 0 43 #endif 44 45 #if UCONFIG_ONLY_COLLATION 46 /* common library */ 47 # define UCONFIG_NO_BREAK_ITERATION 1 48 # define UCONFIG_NO_IDNA 1 49 50 /* i18n library */ 51 # if UCONFIG_NO_COLLATION 52 # error Contradictory collation switches in uconfig.h. 53 # endif 54 # define UCONFIG_NO_FORMATTING 1 55 # define UCONFIG_NO_TRANSLITERATION 1 56 # define UCONFIG_NO_REGULAR_EXPRESSIONS 1 57 #endif 58 59 /* common library switches -------------------------------------------------- */ 60 61 /** 62 * \def UCONFIG_NO_CONVERSION 63 * ICU will not completely build with this switch turned on. 64 * This switch turns off all converters. 65 * 66 * @draft ICU 3.2 67 */ 68 #ifndef UCONFIG_NO_CONVERSION 69 # define UCONFIG_NO_CONVERSION 0 70 #endif 71 72 #if UCONFIG_NO_CONVERSION 73 # define UCONFIG_NO_LEGACY_CONVERSION 1 74 #endif 75 76 /** 77 * \def UCONFIG_NO_LEGACY_CONVERSION 78 * This switch turns off all converters except for 79 * - Unicode charsets (UTF-7/8/16/32, CESU-8, SCSU, BOCU-1) 80 * - US-ASCII 81 * - ISO-8859-1 82 * 83 * Turning off legacy conversion is not possible on EBCDIC platforms 84 * because they need ibm-37 or ibm-1047 default converters. 85 * 86 * @stable ICU 2.4 87 */ 88 #ifndef UCONFIG_NO_LEGACY_CONVERSION 89 # define UCONFIG_NO_LEGACY_CONVERSION 0 90 #endif 91 92 /** 93 * \def UCONFIG_NO_NORMALIZATION 94 * This switch turns off normalization. 95 * It implies turning off several other services as well, for example 96 * collation and IDNA. 97 * 98 * @stable ICU 2.6 99 */ 100 #ifndef UCONFIG_NO_NORMALIZATION 101 # define UCONFIG_NO_NORMALIZATION 0 102 #elif UCONFIG_NO_NORMALIZATION 103 /* common library */ 104 # define UCONFIG_NO_IDNA 1 105 106 /* i18n library */ 107 # if UCONFIG_ONLY_COLLATION 108 # error Contradictory collation switches in uconfig.h. 109 # endif 110 # define UCONFIG_NO_COLLATION 1 111 # define UCONFIG_NO_TRANSLITERATION 1 112 #endif 113 114 /** 115 * \def UCONFIG_NO_BREAK_ITERATION 116 * This switch turns off break iteration. 117 * 118 * @stable ICU 2.4 119 */ 120 #ifndef UCONFIG_NO_BREAK_ITERATION 121 # define UCONFIG_NO_BREAK_ITERATION 0 122 #endif 123 124 /** 125 * \def UCONFIG_NO_IDNA 126 * This switch turns off IDNA. 127 * 128 * @stable ICU 2.6 129 */ 130 #ifndef UCONFIG_NO_IDNA 131 # define UCONFIG_NO_IDNA 0 132 #endif 133 134 /* i18n library switches ---------------------------------------------------- */ 135 136 /** 137 * \def UCONFIG_NO_COLLATION 138 * This switch turns off collation and collation-based string search. 139 * 140 * @stable ICU 2.4 141 */ 142 #ifndef UCONFIG_NO_COLLATION 143 # define UCONFIG_NO_COLLATION 0 144 #endif 145 146 /** 147 * \def UCONFIG_NO_FORMATTING 148 * This switch turns off formatting and calendar/timezone services. 149 * 150 * @stable ICU 2.4 151 */ 152 #ifndef UCONFIG_NO_FORMATTING 153 # define UCONFIG_NO_FORMATTING 0 154 #endif 155 156 /** 157 * \def UCONFIG_NO_TRANSLITERATION 158 * This switch turns off transliteration. 159 * 160 * @stable ICU 2.4 161 */ 162 #ifndef UCONFIG_NO_TRANSLITERATION 163 # define UCONFIG_NO_TRANSLITERATION 0 164 #endif 165 166 /** 167 * \def UCONFIG_NO_REGULAR_EXPRESSIONS 168 * This switch turns off regular expressions. 169 * 170 * @stable ICU 2.4 171 */ 172 #ifndef UCONFIG_NO_REGULAR_EXPRESSIONS 173 # define UCONFIG_NO_REGULAR_EXPRESSIONS 0 174 #endif 175 176 /** 177 * \def UCONFIG_NO_SERVICE 178 * This switch turns off service registration. 179 * 180 * @draft ICU 3.2 181 */ 182 #ifndef UCONFIG_NO_SERVICE 183 # define UCONFIG_NO_SERVICE 0 184 #endif 185 186 #endif 187