]> git.saurik.com Git - apple/icu.git/blame - icuSources/common/unicode/uconfig.h
ICU-3.13.tar.gz
[apple/icu.git] / icuSources / common / unicode / uconfig.h
CommitLineData
b75a7d8f
A
1/*
2**********************************************************************
3* Copyright (C) 2002-2003, 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 * @draft 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 * @draft 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_LEGACY_CONVERSION
63 * This switch turns off all converters except for
64 * - Unicode charsets (UTF-7/8/16/32, CESU-8, SCSU, BOCU-1)
65 * - US-ASCII
66 * - ISO-8859-1
67 *
68 * Turning off legacy conversion is not possible on EBCDIC platforms
69 * because they need ibm-37 or ibm-1047 default converters.
70 *
71 * @draft ICU 2.4
72 */
73#ifndef UCONFIG_NO_LEGACY_CONVERSION
74# define UCONFIG_NO_LEGACY_CONVERSION 0
75#endif
76
77/**
78 * \def UCONFIG_NO_NORMALIZATION
79 * This switch turns off normalization.
80 * It implies turning off several other services as well, for example
81 * collation and IDNA.
82 *
83 * @draft ICU 2.6
84 */
85#ifndef UCONFIG_NO_NORMALIZATION
86# define UCONFIG_NO_NORMALIZATION 0
87#elif UCONFIG_NO_NORMALIZATION
88 /* common library */
89# define UCONFIG_NO_IDNA 1
90
91 /* i18n library */
92# if UCONFIG_ONLY_COLLATION
93# error Contradictory collation switches in uconfig.h.
94# endif
95# define UCONFIG_NO_COLLATION 1
96# define UCONFIG_NO_TRANSLITERATION 1
97#endif
98
99/**
100 * \def UCONFIG_NO_BREAK_ITERATION
101 * This switch turns off break iteration.
102 *
103 * @draft ICU 2.4
104 */
105#ifndef UCONFIG_NO_BREAK_ITERATION
106# define UCONFIG_NO_BREAK_ITERATION 0
107#endif
108
109/**
110 * \def UCONFIG_NO_IDNA
111 * This switch turns off IDNA.
112 *
113 * @draft ICU 2.6
114 */
115#ifndef UCONFIG_NO_IDNA
116# define UCONFIG_NO_IDNA 0
117#endif
118
119/* i18n library switches ---------------------------------------------------- */
120
121/**
122 * \def
123 * This switch turns off collation and collation-based string search.
124 *
125 * @draft ICU 2.4
126 */
127#ifndef UCONFIG_NO_COLLATION
128# define UCONFIG_NO_COLLATION 0
129#endif
130
131/**
132 * \def UCONFIG_NO_FORMATTING
133 * This switch turns off formatting and calendar/timezone services.
134 *
135 * @draft ICU 2.4
136 */
137#ifndef UCONFIG_NO_FORMATTING
138# define UCONFIG_NO_FORMATTING 0
139#endif
140
141/**
142 * \def UCONFIG_NO_TRANSLITERATION
143 * This switch turns off transliteration.
144 *
145 * @draft ICU 2.4
146 */
147#ifndef UCONFIG_NO_TRANSLITERATION
148# define UCONFIG_NO_TRANSLITERATION 0
149#endif
150
151/**
152 * \def UCONFIG_NO_REGULAR_EXPRESSIONS
153 * This switch turns off regular expressions.
154 *
155 * @draft ICU 2.4
156 */
157#ifndef UCONFIG_NO_REGULAR_EXPRESSIONS
158# define UCONFIG_NO_REGULAR_EXPRESSIONS 0
159#endif
160
161
162
163#endif