]> git.saurik.com Git - apple/javascriptcore.git/blob - icu/unicode/uconfig.h
JavaScriptCore-461.tar.gz
[apple/javascriptcore.git] / icu / unicode / uconfig.h
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