uconfig.h revision 51cfa1a9a96cad34675a6415fe86dfdf3f525bb6
1/* 2********************************************************************** 3* Copyright (C) 2002-2007, 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 * Building with any of these options does not guarantee that the 28 * ICU build process will completely work. It is recommended that 29 * the ICU libraries and data be built using the normal build. 30 * At that time you should remove the data used by those services. 31 * After building the ICU data library, you should rebuild the ICU 32 * libraries with these switches customized to your needs. 33 * 34 * @stable ICU 2.4 35 */ 36 37/** 38 * \def UCONFIG_ONLY_COLLATION 39 * This switch turns off modules that are not needed for collation. 40 * 41 * It does not turn off legacy conversion because that is necessary 42 * for ICU to work on EBCDIC platforms (for the default converter). 43 * If you want "only collation" and do not build for EBCDIC, 44 * then you can define UCONFIG_NO_LEGACY_CONVERSION 1 as well. 45 * 46 * @stable ICU 2.4 47 */ 48#ifndef UCONFIG_ONLY_COLLATION 49# define UCONFIG_ONLY_COLLATION 0 50#endif 51 52#if UCONFIG_ONLY_COLLATION 53 /* common library */ 54# define UCONFIG_NO_BREAK_ITERATION 1 55# define UCONFIG_NO_IDNA 1 56 57 /* i18n library */ 58# if UCONFIG_NO_COLLATION 59# error Contradictory collation switches in uconfig.h. 60# endif 61# define UCONFIG_NO_FORMATTING 1 62# define UCONFIG_NO_TRANSLITERATION 1 63# define UCONFIG_NO_REGULAR_EXPRESSIONS 1 64#endif 65 66/* common library switches -------------------------------------------------- */ 67 68/** 69 * \def UCONFIG_NO_FILE_IO 70 * This switch turns off all file access in the common library 71 * where file access is only used for data loading. 72 * ICU data must then be provided in the form of a data DLL (or with an 73 * equivalent way to link to the data residing in an executable, 74 * as in building a combined library with both the common library's code and 75 * the data), or via udata_setCommonData(). 76 * Application data must be provided via udata_setAppData() or by using 77 * "open" functions that take pointers to data, for example ucol_openBinary(). 78 * 79 * File access is not used at all in the i18n library. 80 * 81 * File access cannot be turned off for the icuio library or for the ICU 82 * test suites and ICU tools. 83 * 84 * @stable ICU 3.6 85 */ 86#ifndef UCONFIG_NO_FILE_IO 87# define UCONFIG_NO_FILE_IO 0 88#endif 89 90/** 91 * \def UCONFIG_NO_CONVERSION 92 * ICU will not completely build with this switch turned on. 93 * This switch turns off all converters. 94 * 95 * @stable ICU 3.2 96 */ 97#ifndef UCONFIG_NO_CONVERSION 98# define UCONFIG_NO_CONVERSION 0 99#endif 100 101#if UCONFIG_NO_CONVERSION 102# define UCONFIG_NO_LEGACY_CONVERSION 1 103#endif 104 105/** 106 * \def UCONFIG_NO_LEGACY_CONVERSION 107 * This switch turns off all converters except for 108 * - Unicode charsets (UTF-7/8/16/32, CESU-8, SCSU, BOCU-1) 109 * - US-ASCII 110 * - ISO-8859-1 111 * 112 * Turning off legacy conversion is not possible on EBCDIC platforms 113 * because they need ibm-37 or ibm-1047 default converters. 114 * 115 * @stable ICU 2.4 116 */ 117#ifndef UCONFIG_NO_LEGACY_CONVERSION 118# define UCONFIG_NO_LEGACY_CONVERSION 0 119#endif 120 121/** 122 * \def UCONFIG_NO_NORMALIZATION 123 * This switch turns off normalization. 124 * It implies turning off several other services as well, for example 125 * collation and IDNA. 126 * 127 * @stable ICU 2.6 128 */ 129#ifndef UCONFIG_NO_NORMALIZATION 130# define UCONFIG_NO_NORMALIZATION 0 131#elif UCONFIG_NO_NORMALIZATION 132 /* common library */ 133# define UCONFIG_NO_IDNA 1 134 135 /* i18n library */ 136# if UCONFIG_ONLY_COLLATION 137# error Contradictory collation switches in uconfig.h. 138# endif 139# define UCONFIG_NO_COLLATION 1 140# define UCONFIG_NO_TRANSLITERATION 1 141#endif 142 143/** 144 * \def UCONFIG_NO_BREAK_ITERATION 145 * This switch turns off break iteration. 146 * 147 * @stable ICU 2.4 148 */ 149#ifndef UCONFIG_NO_BREAK_ITERATION 150# define UCONFIG_NO_BREAK_ITERATION 0 151#endif 152 153/** 154 * \def UCONFIG_NO_IDNA 155 * This switch turns off IDNA. 156 * 157 * @stable ICU 2.6 158 */ 159#ifndef UCONFIG_NO_IDNA 160# define UCONFIG_NO_IDNA 0 161#endif 162 163/* i18n library switches ---------------------------------------------------- */ 164 165/** 166 * \def UCONFIG_NO_COLLATION 167 * This switch turns off collation and collation-based string search. 168 * 169 * @stable ICU 2.4 170 */ 171#ifndef UCONFIG_NO_COLLATION 172# define UCONFIG_NO_COLLATION 0 173#endif 174 175/** 176 * \def UCONFIG_NO_FORMATTING 177 * This switch turns off formatting and calendar/timezone services. 178 * 179 * @stable ICU 2.4 180 */ 181#ifndef UCONFIG_NO_FORMATTING 182# define UCONFIG_NO_FORMATTING 0 183#endif 184 185/** 186 * \def UCONFIG_NO_TRANSLITERATION 187 * This switch turns off transliteration. 188 * 189 * @stable ICU 2.4 190 */ 191#ifndef UCONFIG_NO_TRANSLITERATION 192# define UCONFIG_NO_TRANSLITERATION 0 193#endif 194 195/** 196 * \def UCONFIG_NO_REGULAR_EXPRESSIONS 197 * This switch turns off regular expressions. 198 * 199 * @stable ICU 2.4 200 */ 201#ifndef UCONFIG_NO_REGULAR_EXPRESSIONS 202# define UCONFIG_NO_REGULAR_EXPRESSIONS 0 203#endif 204 205/** 206 * \def UCONFIG_NO_SERVICE 207 * This switch turns off service registration. 208 * 209 * @stable ICU 3.2 210 */ 211#ifndef UCONFIG_NO_SERVICE 212# define UCONFIG_NO_SERVICE 0 213#endif 214 215#endif 216