sl@0: /* sl@0: ********************************************************************** sl@0: * Copyright (C) 2002-2005, International Business Machines sl@0: * Corporation and others. All Rights Reserved. sl@0: ********************************************************************** sl@0: * file name: uconfig.h sl@0: * encoding: US-ASCII sl@0: * tab size: 8 (not used) sl@0: * indentation:4 sl@0: * sl@0: * created on: 2002sep19 sl@0: * created by: Markus W. Scherer sl@0: */ sl@0: sl@0: #ifndef __UCONFIG_H__ sl@0: #define __UCONFIG_H__ sl@0: sl@0: /*! sl@0: * \file sl@0: * \brief Switches for excluding parts of ICU library code modules. sl@0: * sl@0: * Allows to build partial, smaller libraries for special purposes. sl@0: * By default, all modules are built. sl@0: * The switches are fairly coarse, controlling large modules. sl@0: * Basic services cannot be turned off. sl@0: * sl@0: * @stable ICU 2.4 sl@0: */ sl@0: sl@0: /** sl@0: * \def UCONFIG_ONLY_COLLATION sl@0: * This switch turns off modules that are not needed for collation. sl@0: * sl@0: * It does not turn off legacy conversion because that is necessary sl@0: * for ICU to work on EBCDIC platforms (for the default converter). sl@0: * If you want "only collation" and do not build for EBCDIC, sl@0: * then you can define UCONFIG_NO_LEGACY_CONVERSION 1 as well. sl@0: * sl@0: * @stable ICU 2.4 sl@0: */ sl@0: #ifndef UCONFIG_ONLY_COLLATION sl@0: # define UCONFIG_ONLY_COLLATION 0 sl@0: #endif sl@0: sl@0: #if UCONFIG_ONLY_COLLATION sl@0: /* common library */ sl@0: # define UCONFIG_NO_BREAK_ITERATION 1 sl@0: # define UCONFIG_NO_IDNA 1 sl@0: sl@0: /* i18n library */ sl@0: # if UCONFIG_NO_COLLATION sl@0: # error Contradictory collation switches in uconfig.h. sl@0: # endif sl@0: # define UCONFIG_NO_FORMATTING 1 sl@0: # define UCONFIG_NO_TRANSLITERATION 1 sl@0: # define UCONFIG_NO_REGULAR_EXPRESSIONS 1 sl@0: #endif sl@0: sl@0: /* common library switches -------------------------------------------------- */ sl@0: sl@0: /** sl@0: * \def UCONFIG_NO_CONVERSION sl@0: * ICU will not completely build with this switch turned on. sl@0: * This switch turns off all converters. sl@0: * sl@0: * @draft ICU 3.2 sl@0: */ sl@0: #ifndef UCONFIG_NO_CONVERSION sl@0: # define UCONFIG_NO_CONVERSION 0 sl@0: #endif sl@0: sl@0: #if UCONFIG_NO_CONVERSION sl@0: # define UCONFIG_NO_LEGACY_CONVERSION 1 sl@0: #endif sl@0: sl@0: /** sl@0: * \def UCONFIG_NO_LEGACY_CONVERSION sl@0: * This switch turns off all converters except for sl@0: * - Unicode charsets (UTF-7/8/16/32, CESU-8, SCSU, BOCU-1) sl@0: * - US-ASCII sl@0: * - ISO-8859-1 sl@0: * sl@0: * Turning off legacy conversion is not possible on EBCDIC platforms sl@0: * because they need ibm-37 or ibm-1047 default converters. sl@0: * sl@0: * @stable ICU 2.4 sl@0: */ sl@0: #ifndef UCONFIG_NO_LEGACY_CONVERSION sl@0: # define UCONFIG_NO_LEGACY_CONVERSION 0 sl@0: #endif sl@0: sl@0: /** sl@0: * \def UCONFIG_NO_NORMALIZATION sl@0: * This switch turns off normalization. sl@0: * It implies turning off several other services as well, for example sl@0: * collation and IDNA. sl@0: * sl@0: * @stable ICU 2.6 sl@0: */ sl@0: #ifndef UCONFIG_NO_NORMALIZATION sl@0: # define UCONFIG_NO_NORMALIZATION 0 sl@0: #elif UCONFIG_NO_NORMALIZATION sl@0: /* common library */ sl@0: # define UCONFIG_NO_IDNA 1 sl@0: sl@0: /* i18n library */ sl@0: # if UCONFIG_ONLY_COLLATION sl@0: # error Contradictory collation switches in uconfig.h. sl@0: # endif sl@0: # define UCONFIG_NO_COLLATION 1 sl@0: # define UCONFIG_NO_TRANSLITERATION 1 sl@0: #endif sl@0: sl@0: /** sl@0: * \def UCONFIG_NO_BREAK_ITERATION sl@0: * This switch turns off break iteration. sl@0: * sl@0: * @stable ICU 2.4 sl@0: */ sl@0: #ifndef UCONFIG_NO_BREAK_ITERATION sl@0: # define UCONFIG_NO_BREAK_ITERATION 0 sl@0: #endif sl@0: sl@0: /** sl@0: * \def UCONFIG_NO_IDNA sl@0: * This switch turns off IDNA. sl@0: * sl@0: * @stable ICU 2.6 sl@0: */ sl@0: #ifndef UCONFIG_NO_IDNA sl@0: # define UCONFIG_NO_IDNA 0 sl@0: #endif sl@0: sl@0: /* i18n library switches ---------------------------------------------------- */ sl@0: sl@0: /** sl@0: * \def UCONFIG_NO_COLLATION sl@0: * This switch turns off collation and collation-based string search. sl@0: * sl@0: * @stable ICU 2.4 sl@0: */ sl@0: #ifndef UCONFIG_NO_COLLATION sl@0: # define UCONFIG_NO_COLLATION 0 sl@0: #endif sl@0: sl@0: /** sl@0: * \def UCONFIG_NO_FORMATTING sl@0: * This switch turns off formatting and calendar/timezone services. sl@0: * sl@0: * @stable ICU 2.4 sl@0: */ sl@0: #ifndef UCONFIG_NO_FORMATTING sl@0: # define UCONFIG_NO_FORMATTING 0 sl@0: #endif sl@0: sl@0: /** sl@0: * \def UCONFIG_NO_TRANSLITERATION sl@0: * This switch turns off transliteration. sl@0: * sl@0: * @stable ICU 2.4 sl@0: */ sl@0: #ifndef UCONFIG_NO_TRANSLITERATION sl@0: # define UCONFIG_NO_TRANSLITERATION 0 sl@0: #endif sl@0: sl@0: /** sl@0: * \def UCONFIG_NO_REGULAR_EXPRESSIONS sl@0: * This switch turns off regular expressions. sl@0: * sl@0: * @stable ICU 2.4 sl@0: */ sl@0: #ifndef UCONFIG_NO_REGULAR_EXPRESSIONS sl@0: # define UCONFIG_NO_REGULAR_EXPRESSIONS 0 sl@0: #endif sl@0: sl@0: /** sl@0: * \def UCONFIG_NO_SERVICE sl@0: * This switch turns off service registration. sl@0: * sl@0: * @draft ICU 3.2 sl@0: */ sl@0: #ifndef UCONFIG_NO_SERVICE sl@0: # define UCONFIG_NO_SERVICE 0 sl@0: #endif sl@0: sl@0: #endif