]>
Commit | Line | Data |
---|---|---|
b75a7d8f A |
1 | /* |
2 | ********************************************************************** | |
729e4ab9 | 3 | * Copyright (C) 2002-2009, International Business Machines |
b75a7d8f A |
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 | ||
46f4442e | 18 | |
b75a7d8f A |
19 | /*! |
20 | * \file | |
21 | * \brief Switches for excluding parts of ICU library code modules. | |
22 | * | |
23 | * Allows to build partial, smaller libraries for special purposes. | |
24 | * By default, all modules are built. | |
25 | * The switches are fairly coarse, controlling large modules. | |
26 | * Basic services cannot be turned off. | |
27 | * | |
73c04bcf A |
28 | * Building with any of these options does not guarantee that the |
29 | * ICU build process will completely work. It is recommended that | |
30 | * the ICU libraries and data be built using the normal build. | |
31 | * At that time you should remove the data used by those services. | |
32 | * After building the ICU data library, you should rebuild the ICU | |
33 | * libraries with these switches customized to your needs. | |
34 | * | |
374ca955 | 35 | * @stable ICU 2.4 |
b75a7d8f A |
36 | */ |
37 | ||
46f4442e | 38 | /** |
46f4442e A |
39 | * If this switch is defined, ICU will attempt to load a header file named "uconfig_local.h" |
40 | * prior to determining default settings for uconfig variables. | |
41 | * | |
42 | * @internal ICU 4.0 | |
43 | * | |
44 | */ | |
45 | #if defined(UCONFIG_USE_LOCAL) | |
46 | #include "uconfig_local.h" | |
47 | #endif | |
48 | ||
b75a7d8f A |
49 | /** |
50 | * \def UCONFIG_ONLY_COLLATION | |
51 | * This switch turns off modules that are not needed for collation. | |
52 | * | |
53 | * It does not turn off legacy conversion because that is necessary | |
54 | * for ICU to work on EBCDIC platforms (for the default converter). | |
55 | * If you want "only collation" and do not build for EBCDIC, | |
73c04bcf | 56 | * then you can define UCONFIG_NO_LEGACY_CONVERSION 1 as well. |
b75a7d8f | 57 | * |
374ca955 | 58 | * @stable ICU 2.4 |
b75a7d8f A |
59 | */ |
60 | #ifndef UCONFIG_ONLY_COLLATION | |
61 | # define UCONFIG_ONLY_COLLATION 0 | |
62 | #endif | |
63 | ||
64 | #if UCONFIG_ONLY_COLLATION | |
65 | /* common library */ | |
66 | # define UCONFIG_NO_BREAK_ITERATION 1 | |
67 | # define UCONFIG_NO_IDNA 1 | |
68 | ||
69 | /* i18n library */ | |
70 | # if UCONFIG_NO_COLLATION | |
71 | # error Contradictory collation switches in uconfig.h. | |
72 | # endif | |
73 | # define UCONFIG_NO_FORMATTING 1 | |
74 | # define UCONFIG_NO_TRANSLITERATION 1 | |
75 | # define UCONFIG_NO_REGULAR_EXPRESSIONS 1 | |
76 | #endif | |
77 | ||
78 | /* common library switches -------------------------------------------------- */ | |
79 | ||
73c04bcf A |
80 | /** |
81 | * \def UCONFIG_NO_FILE_IO | |
82 | * This switch turns off all file access in the common library | |
83 | * where file access is only used for data loading. | |
84 | * ICU data must then be provided in the form of a data DLL (or with an | |
85 | * equivalent way to link to the data residing in an executable, | |
86 | * as in building a combined library with both the common library's code and | |
87 | * the data), or via udata_setCommonData(). | |
88 | * Application data must be provided via udata_setAppData() or by using | |
89 | * "open" functions that take pointers to data, for example ucol_openBinary(). | |
90 | * | |
91 | * File access is not used at all in the i18n library. | |
92 | * | |
93 | * File access cannot be turned off for the icuio library or for the ICU | |
94 | * test suites and ICU tools. | |
95 | * | |
46f4442e | 96 | * @stable ICU 3.6 |
73c04bcf A |
97 | */ |
98 | #ifndef UCONFIG_NO_FILE_IO | |
99 | # define UCONFIG_NO_FILE_IO 0 | |
100 | #endif | |
101 | ||
374ca955 A |
102 | /** |
103 | * \def UCONFIG_NO_CONVERSION | |
104 | * ICU will not completely build with this switch turned on. | |
105 | * This switch turns off all converters. | |
106 | * | |
729e4ab9 A |
107 | * You may want to use this together with U_CHARSET_IS_UTF8 defined to 1 |
108 | * in utypes.h if char* strings in your environment are always in UTF-8. | |
109 | * | |
73c04bcf | 110 | * @stable ICU 3.2 |
729e4ab9 | 111 | * @see U_CHARSET_IS_UTF8 |
374ca955 A |
112 | */ |
113 | #ifndef UCONFIG_NO_CONVERSION | |
114 | # define UCONFIG_NO_CONVERSION 0 | |
115 | #endif | |
116 | ||
117 | #if UCONFIG_NO_CONVERSION | |
118 | # define UCONFIG_NO_LEGACY_CONVERSION 1 | |
119 | #endif | |
120 | ||
b75a7d8f A |
121 | /** |
122 | * \def UCONFIG_NO_LEGACY_CONVERSION | |
123 | * This switch turns off all converters except for | |
124 | * - Unicode charsets (UTF-7/8/16/32, CESU-8, SCSU, BOCU-1) | |
125 | * - US-ASCII | |
126 | * - ISO-8859-1 | |
127 | * | |
128 | * Turning off legacy conversion is not possible on EBCDIC platforms | |
129 | * because they need ibm-37 or ibm-1047 default converters. | |
130 | * | |
374ca955 | 131 | * @stable ICU 2.4 |
b75a7d8f A |
132 | */ |
133 | #ifndef UCONFIG_NO_LEGACY_CONVERSION | |
134 | # define UCONFIG_NO_LEGACY_CONVERSION 0 | |
135 | #endif | |
136 | ||
137 | /** | |
138 | * \def UCONFIG_NO_NORMALIZATION | |
139 | * This switch turns off normalization. | |
140 | * It implies turning off several other services as well, for example | |
141 | * collation and IDNA. | |
142 | * | |
374ca955 | 143 | * @stable ICU 2.6 |
b75a7d8f A |
144 | */ |
145 | #ifndef UCONFIG_NO_NORMALIZATION | |
146 | # define UCONFIG_NO_NORMALIZATION 0 | |
147 | #elif UCONFIG_NO_NORMALIZATION | |
148 | /* common library */ | |
149 | # define UCONFIG_NO_IDNA 1 | |
150 | ||
151 | /* i18n library */ | |
152 | # if UCONFIG_ONLY_COLLATION | |
153 | # error Contradictory collation switches in uconfig.h. | |
154 | # endif | |
155 | # define UCONFIG_NO_COLLATION 1 | |
156 | # define UCONFIG_NO_TRANSLITERATION 1 | |
157 | #endif | |
158 | ||
159 | /** | |
160 | * \def UCONFIG_NO_BREAK_ITERATION | |
161 | * This switch turns off break iteration. | |
162 | * | |
374ca955 | 163 | * @stable ICU 2.4 |
b75a7d8f A |
164 | */ |
165 | #ifndef UCONFIG_NO_BREAK_ITERATION | |
166 | # define UCONFIG_NO_BREAK_ITERATION 0 | |
167 | #endif | |
168 | ||
169 | /** | |
170 | * \def UCONFIG_NO_IDNA | |
171 | * This switch turns off IDNA. | |
172 | * | |
374ca955 | 173 | * @stable ICU 2.6 |
b75a7d8f A |
174 | */ |
175 | #ifndef UCONFIG_NO_IDNA | |
176 | # define UCONFIG_NO_IDNA 0 | |
177 | #endif | |
178 | ||
179 | /* i18n library switches ---------------------------------------------------- */ | |
180 | ||
181 | /** | |
374ca955 | 182 | * \def UCONFIG_NO_COLLATION |
b75a7d8f A |
183 | * This switch turns off collation and collation-based string search. |
184 | * | |
374ca955 | 185 | * @stable ICU 2.4 |
b75a7d8f A |
186 | */ |
187 | #ifndef UCONFIG_NO_COLLATION | |
188 | # define UCONFIG_NO_COLLATION 0 | |
189 | #endif | |
190 | ||
191 | /** | |
192 | * \def UCONFIG_NO_FORMATTING | |
193 | * This switch turns off formatting and calendar/timezone services. | |
194 | * | |
374ca955 | 195 | * @stable ICU 2.4 |
b75a7d8f A |
196 | */ |
197 | #ifndef UCONFIG_NO_FORMATTING | |
198 | # define UCONFIG_NO_FORMATTING 0 | |
199 | #endif | |
200 | ||
201 | /** | |
202 | * \def UCONFIG_NO_TRANSLITERATION | |
203 | * This switch turns off transliteration. | |
204 | * | |
374ca955 | 205 | * @stable ICU 2.4 |
b75a7d8f A |
206 | */ |
207 | #ifndef UCONFIG_NO_TRANSLITERATION | |
208 | # define UCONFIG_NO_TRANSLITERATION 0 | |
209 | #endif | |
210 | ||
211 | /** | |
212 | * \def UCONFIG_NO_REGULAR_EXPRESSIONS | |
213 | * This switch turns off regular expressions. | |
214 | * | |
374ca955 | 215 | * @stable ICU 2.4 |
b75a7d8f A |
216 | */ |
217 | #ifndef UCONFIG_NO_REGULAR_EXPRESSIONS | |
218 | # define UCONFIG_NO_REGULAR_EXPRESSIONS 0 | |
219 | #endif | |
220 | ||
374ca955 A |
221 | /** |
222 | * \def UCONFIG_NO_SERVICE | |
223 | * This switch turns off service registration. | |
224 | * | |
73c04bcf | 225 | * @stable ICU 3.2 |
374ca955 A |
226 | */ |
227 | #ifndef UCONFIG_NO_SERVICE | |
228 | # define UCONFIG_NO_SERVICE 0 | |
229 | #endif | |
b75a7d8f A |
230 | |
231 | #endif |