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