ICU 68.2  68.2
uconfig.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 **********************************************************************
5 * Copyright (C) 2002-2016, International Business Machines
6 * Corporation and others. All Rights Reserved.
7 **********************************************************************
8 * file name: uconfig.h
9 * encoding: UTF-8
10 * tab size: 8 (not used)
11 * indentation:4
12 *
13 * created on: 2002sep19
14 * created by: Markus W. Scherer
15 */
16 
17 #ifndef __UCONFIG_H__
18 #define __UCONFIG_H__
19 
20 /* -DU_DISABLE_RENAMING=1 */
21 #define U_DISABLE_RENAMING 1
22 
56 #if defined(UCONFIG_USE_LOCAL)
57 #include "uconfig_local.h"
58 #endif
59 
67 #ifdef U_DEBUG
68  /* Use the predefined value. */
69 #elif defined(_DEBUG)
70  /*
71  * _DEBUG is defined by Visual Studio debug compilation.
72  * Do *not* test for its NDEBUG macro: It is an orthogonal macro
73  * which disables assert().
74  */
75 # define U_DEBUG 1
76 # else
77 # define U_DEBUG 0
78 #endif
79 
84 #ifndef UCLN_NO_AUTO_CLEANUP
85 #define UCLN_NO_AUTO_CLEANUP 1
86 #endif
87 
93 #ifndef U_DISABLE_RENAMING
94 #define U_DISABLE_RENAMING 0
95 #endif
96 
105 #ifdef U_NO_DEFAULT_INCLUDE_UTF_HEADERS
106  /* Use the predefined value. */
107 #elif defined(U_COMBINED_IMPLEMENTATION) || defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || \
108  defined(U_IO_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_LAYOUTEX_IMPLEMENTATION) || \
109  defined(U_TOOLUTIL_IMPLEMENTATION)
110 # define U_NO_DEFAULT_INCLUDE_UTF_HEADERS 1
111 #else
112 # define U_NO_DEFAULT_INCLUDE_UTF_HEADERS 0
113 #endif
114 
128 #ifndef U_OVERRIDE_CXX_ALLOCATION
129 #define U_OVERRIDE_CXX_ALLOCATION 1
130 #endif
131 
137 #ifndef U_ENABLE_TRACING
138 #define U_ENABLE_TRACING 0
139 #endif
140 
146 #ifndef UCONFIG_ENABLE_PLUGINS
147 #define UCONFIG_ENABLE_PLUGINS 0
148 #endif
149 
155 #ifndef U_ENABLE_DYLOAD
156 #define U_ENABLE_DYLOAD 1
157 #endif
158 
164 #ifndef U_CHECK_DYLOAD
165 #define U_CHECK_DYLOAD 1
166 #endif
167 
173 #ifndef U_DEFAULT_SHOW_DRAFT
174 #define U_DEFAULT_SHOW_DRAFT 1
175 #endif
176 
177 /*===========================================================================*/
178 /* Custom icu entry point renaming */
179 /*===========================================================================*/
180 
186 #ifdef U_HAVE_LIB_SUFFIX
187  /* Use the predefined value. */
188 #elif defined(U_LIB_SUFFIX_C_NAME) || defined(U_IN_DOXYGEN)
189 # define U_HAVE_LIB_SUFFIX 1
190 #endif
191 
197 #ifdef U_LIB_SUFFIX_C_NAME_STRING
198  /* Use the predefined value. */
199 #elif defined(U_LIB_SUFFIX_C_NAME)
200 # define CONVERT_TO_STRING(s) #s
201 # define U_LIB_SUFFIX_C_NAME_STRING CONVERT_TO_STRING(U_LIB_SUFFIX_C_NAME)
202 #else
203 # define U_LIB_SUFFIX_C_NAME_STRING ""
204 #endif
205 
206 /* common/i18n library switches --------------------------------------------- */
207 
219 #ifndef UCONFIG_ONLY_COLLATION
220 # define UCONFIG_ONLY_COLLATION 0
221 #endif
222 
223 #if UCONFIG_ONLY_COLLATION
224  /* common library */
225 # define UCONFIG_NO_BREAK_ITERATION 1
226 # define UCONFIG_NO_IDNA 1
227 
228  /* i18n library */
229 # if UCONFIG_NO_COLLATION
230 # error Contradictory collation switches in uconfig.h.
231 # endif
232 # define UCONFIG_NO_FORMATTING 1
233 # define UCONFIG_NO_TRANSLITERATION 1
234 # define UCONFIG_NO_REGULAR_EXPRESSIONS 1
235 #endif
236 
237 /* common library switches -------------------------------------------------- */
238 
257 #ifndef UCONFIG_NO_FILE_IO
258 # define UCONFIG_NO_FILE_IO 0
259 #endif
260 
261 #if UCONFIG_NO_FILE_IO && defined(U_TIMEZONE_FILES_DIR)
262 # error Contradictory file io switches in uconfig.h.
263 #endif
264 
277 #ifndef UCONFIG_NO_CONVERSION
278 # define UCONFIG_NO_CONVERSION 0
279 #endif
280 
281 #if UCONFIG_NO_CONVERSION
282 # define UCONFIG_NO_LEGACY_CONVERSION 1
283 #endif
284 
296 #ifndef UCONFIG_ONLY_HTML_CONVERSION
297 # define UCONFIG_ONLY_HTML_CONVERSION 0
298 #endif
299 
312 #ifndef UCONFIG_NO_LEGACY_CONVERSION
313 # define UCONFIG_NO_LEGACY_CONVERSION 0
314 #endif
315 
324 #ifndef UCONFIG_NO_NORMALIZATION
325 # define UCONFIG_NO_NORMALIZATION 0
326 #endif
327 
328 #if UCONFIG_NO_NORMALIZATION
329  /* common library */
330  /* ICU 50 CJK dictionary BreakIterator uses normalization */
331 # define UCONFIG_NO_BREAK_ITERATION 1
332  /* IDNA (UTS #46) is implemented via normalization */
333 # define UCONFIG_NO_IDNA 1
334 
335  /* i18n library */
336 # if UCONFIG_ONLY_COLLATION
337 # error Contradictory collation switches in uconfig.h.
338 # endif
339 # define UCONFIG_NO_COLLATION 1
340 # define UCONFIG_NO_TRANSLITERATION 1
341 #endif
342 
349 #ifndef UCONFIG_NO_BREAK_ITERATION
350 # define UCONFIG_NO_BREAK_ITERATION 0
351 #endif
352 
359 #ifndef UCONFIG_NO_IDNA
360 # define UCONFIG_NO_IDNA 0
361 #endif
362 
370 #ifndef UCONFIG_MSGPAT_DEFAULT_APOSTROPHE_MODE
371 # define UCONFIG_MSGPAT_DEFAULT_APOSTROPHE_MODE UMSGPAT_APOS_DOUBLE_OPTIONAL
372 #endif
373 
382 #ifndef UCONFIG_USE_WINDOWS_LCID_MAPPING_API
383 # define UCONFIG_USE_WINDOWS_LCID_MAPPING_API 1
384 #endif
385 
386 /* i18n library switches ---------------------------------------------------- */
387 
394 #ifndef UCONFIG_NO_COLLATION
395 # define UCONFIG_NO_COLLATION 0
396 #endif
397 
404 #ifndef UCONFIG_NO_FORMATTING
405 # define UCONFIG_NO_FORMATTING 0
406 #endif
407 
414 #ifndef UCONFIG_NO_TRANSLITERATION
415 # define UCONFIG_NO_TRANSLITERATION 0
416 #endif
417 
424 #ifndef UCONFIG_NO_REGULAR_EXPRESSIONS
425 # define UCONFIG_NO_REGULAR_EXPRESSIONS 0
426 #endif
427 
434 #ifndef UCONFIG_NO_SERVICE
435 # define UCONFIG_NO_SERVICE 0
436 #endif
437 
444 #ifndef UCONFIG_HAVE_PARSEALLINPUT
445 # define UCONFIG_HAVE_PARSEALLINPUT 1
446 #endif
447 
454 #ifndef UCONFIG_NO_FILTERED_BREAK_ITERATION
455 # define UCONFIG_NO_FILTERED_BREAK_ITERATION 0
456 #endif
457 
458 #endif // __UCONFIG_H__