ICU 74.2: common/unicode/uconfig.h Source File

ICU 74.2 74.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
54#if defined(UCONFIG_USE_LOCAL)
55#include "uconfig_local.h"
56#endif
57
65#ifdef U_DEBUG
66 /* Use the predefined value. */
67#elif defined(_DEBUG)
68 /*
69 * _DEBUG is defined by Visual Studio debug compilation.
70 * Do *not* test for its NDEBUG macro: It is an orthogonal macro
71 * which disables assert().
72 */
73# define U_DEBUG 1
74# else
75# define U_DEBUG 0
76#endif
77
82#ifndef UCLN_NO_AUTO_CLEANUP
83#define UCLN_NO_AUTO_CLEANUP 1
84#endif
85
91#ifndef U_DISABLE_RENAMING
92#define U_DISABLE_RENAMING 0
93#endif
94
103#ifdef U_NO_DEFAULT_INCLUDE_UTF_HEADERS
104 /* Use the predefined value. */
105#elif defined(U_COMBINED_IMPLEMENTATION) || defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || \
106 defined(U_IO_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_LAYOUTEX_IMPLEMENTATION) || \
107 defined(U_TOOLUTIL_IMPLEMENTATION)
108# define U_NO_DEFAULT_INCLUDE_UTF_HEADERS 1
109#else
110# define U_NO_DEFAULT_INCLUDE_UTF_HEADERS 0
111#endif
112
126#ifndef U_OVERRIDE_CXX_ALLOCATION
127#define U_OVERRIDE_CXX_ALLOCATION 1
128#endif
129
135#ifndef U_ENABLE_TRACING
136#define U_ENABLE_TRACING 0
137#endif
138
144#ifndef UCONFIG_ENABLE_PLUGINS
145#define UCONFIG_ENABLE_PLUGINS 0
146#endif
147
153#ifndef U_ENABLE_DYLOAD
154#define U_ENABLE_DYLOAD 1
155#endif
156
162#ifndef U_CHECK_DYLOAD
163#define U_CHECK_DYLOAD 1
164#endif
165
171#ifndef U_DEFAULT_SHOW_DRAFT
172#define U_DEFAULT_SHOW_DRAFT 1
173#endif
174
175/*===========================================================================*/
176/* Custom icu entry point renaming */
177/*===========================================================================*/
178
184#ifdef U_HAVE_LIB_SUFFIX
185 /* Use the predefined value. */
186#elif defined(U_LIB_SUFFIX_C_NAME) || defined(U_IN_DOXYGEN)
187# define U_HAVE_LIB_SUFFIX 1
188#endif
189
195#ifdef U_LIB_SUFFIX_C_NAME_STRING
196 /* Use the predefined value. */
197#elif defined(U_LIB_SUFFIX_C_NAME)
198# define CONVERT_TO_STRING(s) #s
199# define U_LIB_SUFFIX_C_NAME_STRING CONVERT_TO_STRING(U_LIB_SUFFIX_C_NAME)
200#else
201# define U_LIB_SUFFIX_C_NAME_STRING ""
202#endif
203
204/* common/i18n library switches --------------------------------------------- */
205
217#ifndef UCONFIG_ONLY_COLLATION
218# define UCONFIG_ONLY_COLLATION 0
219#endif
220
221#if UCONFIG_ONLY_COLLATION
222 /* common library */
223# define UCONFIG_NO_BREAK_ITERATION 1
224# define UCONFIG_NO_IDNA 1
225
226 /* i18n library */
227# if UCONFIG_NO_COLLATION
228# error Contradictory collation switches in uconfig.h.
229# endif
230# define UCONFIG_NO_FORMATTING 1
231# define UCONFIG_NO_TRANSLITERATION 1
232# define UCONFIG_NO_REGULAR_EXPRESSIONS 1
233#endif
234
235/* common library switches -------------------------------------------------- */
236
255#ifndef UCONFIG_NO_FILE_IO
256# define UCONFIG_NO_FILE_IO 0
257#endif
258
259#if UCONFIG_NO_FILE_IO && defined(U_TIMEZONE_FILES_DIR)
260# error Contradictory file io switches in uconfig.h.
261#endif
262
275#ifndef UCONFIG_NO_CONVERSION
276# define UCONFIG_NO_CONVERSION 0
277#endif
278
279#if UCONFIG_NO_CONVERSION
280# define UCONFIG_NO_LEGACY_CONVERSION 1
281#endif
282
294#ifndef UCONFIG_ONLY_HTML_CONVERSION
295# define UCONFIG_ONLY_HTML_CONVERSION 0
296#endif
297
310#ifndef UCONFIG_NO_LEGACY_CONVERSION
311# define UCONFIG_NO_LEGACY_CONVERSION 0
312#endif
313
322#ifndef UCONFIG_NO_NORMALIZATION
323# define UCONFIG_NO_NORMALIZATION 0
324#endif
325
332#ifndef UCONFIG_USE_ML_PHRASE_BREAKING
333# define UCONFIG_USE_ML_PHRASE_BREAKING 0
334#endif
335
336#if UCONFIG_NO_NORMALIZATION
337 /* common library */
338 /* ICU 50 CJK dictionary BreakIterator uses normalization */
339# define UCONFIG_NO_BREAK_ITERATION 1
340 /* IDNA (UTS #46) is implemented via normalization */
341# define UCONFIG_NO_IDNA 1
342
343 /* i18n library */
344# if UCONFIG_ONLY_COLLATION
345# error Contradictory collation switches in uconfig.h.
346# endif
347# define UCONFIG_NO_COLLATION 1
348# define UCONFIG_NO_TRANSLITERATION 1
349#endif
350
357#ifndef UCONFIG_NO_BREAK_ITERATION
358# define UCONFIG_NO_BREAK_ITERATION 0
359#endif
360
367#ifndef UCONFIG_NO_IDNA
368# define UCONFIG_NO_IDNA 0
369#endif
370
378#ifndef UCONFIG_MSGPAT_DEFAULT_APOSTROPHE_MODE
379# define UCONFIG_MSGPAT_DEFAULT_APOSTROPHE_MODE UMSGPAT_APOS_DOUBLE_OPTIONAL
380#endif
381
390#ifndef UCONFIG_USE_WINDOWS_LCID_MAPPING_API
391# define UCONFIG_USE_WINDOWS_LCID_MAPPING_API 1
392#endif
393
394/* i18n library switches ---------------------------------------------------- */
395
402#ifndef UCONFIG_NO_COLLATION
403# define UCONFIG_NO_COLLATION 0
404#endif
405
412#ifndef UCONFIG_NO_FORMATTING
413# define UCONFIG_NO_FORMATTING 0
414#endif
415
422#ifndef UCONFIG_NO_TRANSLITERATION
423# define UCONFIG_NO_TRANSLITERATION 0
424#endif
425
432#ifndef UCONFIG_NO_REGULAR_EXPRESSIONS
433# define UCONFIG_NO_REGULAR_EXPRESSIONS 0
434#endif
435
442#ifndef UCONFIG_NO_SERVICE
443# define UCONFIG_NO_SERVICE 0
444#endif
445
452#ifndef UCONFIG_HAVE_PARSEALLINPUT
453# define UCONFIG_HAVE_PARSEALLINPUT 1
454#endif
455
462#ifndef UCONFIG_NO_FILTERED_BREAK_ITERATION
463# define UCONFIG_NO_FILTERED_BREAK_ITERATION 0
464#endif
465
466#endif // __UCONFIG_H__