# uconfig.h File Reference

Switches for excluding parts of ICU library code modules. More...

Go to the source code of this file.

## Defines
#define | UCONFIG_ONLY_COLLATION 0
| If this switch is defined, ICU will attempt to load a header file named "uconfig_local.h" prior to determining default settings for uconfig variables.
#define | UCONFIG_NO_FILE_IO 0
| This switch turns off all file access in the common library where file access is only used for data loading.
#define | UCONFIG_NO_CONVERSION 0
| ICU will not completely build with this switch turned on.
#define | UCONFIG_NO_LEGACY_CONVERSION 0
| This switch turns off all converters except for Unicode charsets (UTF-7/8/16/32, CESU-8, SCSU, BOCU-1) US-ASCII ISO-8859-1.
#define | UCONFIG_NO_NORMALIZATION 0
| This switch turns off normalization.
#define | UCONFIG_NO_BREAK_ITERATION 0
| This switch turns off break iteration.
#define | UCONFIG_NO_IDNA 0
| This switch turns off IDNA.
#define | UCONFIG_NO_COLLATION 0
| This switch turns off collation and collation-based string search.
#define | UCONFIG_NO_FORMATTING 0
| This switch turns off formatting and calendar/timezone services.
#define | UCONFIG_NO_TRANSLITERATION 0
| This switch turns off transliteration.
#define | UCONFIG_NO_REGULAR_EXPRESSIONS 0
| This switch turns off regular expressions.
#define | UCONFIG_NO_SERVICE 0
| This switch turns off service registration.

## Detailed Description

Switches for excluding parts of ICU library code modules.

Allows to build partial, smaller libraries for special purposes. By default, all modules are built. The switches are fairly coarse, controlling large modules. Basic services cannot be turned off.

Building with any of these options does not guarantee that the ICU build process will completely work. It is recommended that the ICU libraries and data be built using the normal build. At that time you should remove the data used by those services. After building the ICU data library, you should rebuild the ICU libraries with these switches customized to your needs.

Stable:
  ICU 2.4

Definition in file uconfig.h.

## Define Documentation

#define UCONFIG_NO_BREAK_ITERATION 0

This switch turns off break iteration.

Stable:
  ICU 2.4

Definition at line 166 of file uconfig.h.

#define UCONFIG_NO_COLLATION 0

This switch turns off collation and collation-based string search.

Stable:
  ICU 2.4

Definition at line 188 of file uconfig.h.

#define UCONFIG_NO_CONVERSION 0

ICU will not completely build with this switch turned on.

This switch turns off all converters.

You may want to use this together with U_CHARSET_IS_UTF8 defined to 1 in utypes.h if char* strings in your environment are always in UTF-8.

Stable:
  ICU 3.2

See also:
  U_CHARSET_IS_UTF8

Definition at line 114 of file uconfig.h.

#define UCONFIG_NO_FILE_IO 0

This switch turns off all file access in the common library where file access is only used for data loading.

ICU data must then be provided in the form of a data DLL (or with an equivalent way to link to the data residing in an executable, as in building a combined library with both the common library's code and the data), or via udata_setCommonData(). Application data must be provided via udata_setAppData() or by using "open" functions that take pointers to data, for example ucol_openBinary().

File access is not used at all in the i18n library.

File access cannot be turned off for the icuio library or for the ICU test suites and ICU tools.

Stable:
  ICU 3.6

Definition at line 99 of file uconfig.h.

#define UCONFIG_NO_FORMATTING 0

This switch turns off formatting and calendar/timezone services.

Stable:
  ICU 2.4

Definition at line 198 of file uconfig.h.

#define UCONFIG_NO_IDNA 0

This switch turns off IDNA.

Stable:
  ICU 2.6

Definition at line 176 of file uconfig.h.

#define UCONFIG_NO_LEGACY_CONVERSION 0

This switch turns off all converters except for

- Unicode charsets (UTF-7/8/16/32, CESU-8, SCSU, BOCU-1)
- US-ASCII
- ISO-8859-1.

Turning off legacy conversion is not possible on EBCDIC platforms because they need ibm-37 or ibm-1047 default converters.

Stable:
  ICU 2.4

Definition at line 134 of file uconfig.h.

#define UCONFIG_NO_NORMALIZATION 0

This switch turns off normalization.

It implies turning off several other services as well, for example collation and IDNA.

Stable:
  ICU 2.6

Definition at line 146 of file uconfig.h.

#define UCONFIG_NO_REGULAR_EXPRESSIONS 0

This switch turns off regular expressions.

Stable:
  ICU 2.4

Definition at line 218 of file uconfig.h.

#define UCONFIG_NO_SERVICE 0

This switch turns off service registration.

Stable:
  ICU 3.2

Definition at line 228 of file uconfig.h.

#define UCONFIG_NO_TRANSLITERATION 0

This switch turns off transliteration.

Stable:
  ICU 2.4

Definition at line 208 of file uconfig.h.

#define UCONFIG_ONLY_COLLATION 0

If this switch is defined, ICU will attempt to load a header file named "uconfig_local.h" prior to determining default settings for uconfig variables.

Internal:
  Do not use. This API is for internal use only. ICU 4.0

This switch turns off modules that are not needed for collation.

It does not turn off legacy conversion because that is necessary for ICU to work on EBCDIC platforms (for the default converter). If you want "only collation" and do not build for EBCDIC, then you can define UCONFIG_NO_LEGACY_CONVERSION 1 as well.

Stable:
  ICU 2.4

Definition at line 61 of file uconfig.h.