OLD | NEW |
| (Empty) |
1 /* | |
2 ********************************************************************** | |
3 * Copyright (C) 2002-2009, 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 /*! | |
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 * | |
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 * | |
35 * @stable ICU 2.4 | |
36 */ | |
37 | |
38 /** | |
39 * If this switch is defined, ICU will attempt to load a header file named "ucon
fig_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 | |
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, | |
56 * then you can define UCONFIG_NO_LEGACY_CONVERSION 1 as well. | |
57 * | |
58 * @stable ICU 2.4 | |
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 | |
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 * | |
96 * @stable ICU 3.6 | |
97 */ | |
98 #ifndef UCONFIG_NO_FILE_IO | |
99 # define UCONFIG_NO_FILE_IO 0 | |
100 #endif | |
101 | |
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 * | |
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 * | |
110 * @stable ICU 3.2 | |
111 * @see U_CHARSET_IS_UTF8 | |
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 | |
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 * | |
131 * @stable ICU 2.4 | |
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 * | |
143 * @stable ICU 2.6 | |
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 * | |
163 * @stable ICU 2.4 | |
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 * | |
173 * @stable ICU 2.6 | |
174 */ | |
175 #ifndef UCONFIG_NO_IDNA | |
176 # define UCONFIG_NO_IDNA 0 | |
177 #endif | |
178 | |
179 /* i18n library switches ---------------------------------------------------- */ | |
180 | |
181 /** | |
182 * \def UCONFIG_NO_COLLATION | |
183 * This switch turns off collation and collation-based string search. | |
184 * | |
185 * @stable ICU 2.4 | |
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 * | |
195 * @stable ICU 2.4 | |
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 * | |
205 * @stable ICU 2.4 | |
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 * | |
215 * @stable ICU 2.4 | |
216 */ | |
217 #ifndef UCONFIG_NO_REGULAR_EXPRESSIONS | |
218 # define UCONFIG_NO_REGULAR_EXPRESSIONS 0 | |
219 #endif | |
220 | |
221 /** | |
222 * \def UCONFIG_NO_SERVICE | |
223 * This switch turns off service registration. | |
224 * | |
225 * @stable ICU 3.2 | |
226 */ | |
227 #ifndef UCONFIG_NO_SERVICE | |
228 # define UCONFIG_NO_SERVICE 0 | |
229 #endif | |
230 | |
231 #endif | |
OLD | NEW |