|
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 |