202 lines
5.9 KiB
C
202 lines
5.9 KiB
C
#ifndef NU_BUILD_CONFIG_H
|
|
#define NU_BUILD_CONFIG_H
|
|
|
|
// Hardcoded defines for vendored copy
|
|
#define NU_WITH_UTF8
|
|
#define NU_WITH_TOUPPER
|
|
#define NU_WITH_TOLOWER
|
|
#define NU_WITH_UNACCENT
|
|
#define NU_WITH_Z_COLLATION
|
|
|
|
/** @file config.h
|
|
*
|
|
* This file list available build options and provide some shortcuts,
|
|
* like NU_WITH_UTF16 will enable NU_WITH_UTF16LE + NU_WITH_UTF16BE.
|
|
*
|
|
* At build time you might set either particular option or shortcut. Either
|
|
* way you don't have to and shouldn't modify this file, just set build flags
|
|
* at the environment.
|
|
*
|
|
* This file will also enable several dependencies for you: case-mapping
|
|
* depends on NU_WITH_UDB, NU_UTF8_READER and so.
|
|
*/
|
|
|
|
/* Definitions not covered in this file which should be defined
|
|
* externally.
|
|
*
|
|
* NU_BUILD_STATIC: will change functions visibility to "hidden" (GCC).
|
|
* @see defines.h
|
|
*
|
|
* NU_DISABLE_CONTRACTIONS: disables forward-reading during collation,
|
|
* only weights of a single codepoints will be compared (enabled in release build)
|
|
*/
|
|
|
|
/* Enable everything, see below for details on a specific option */
|
|
#ifdef NU_WITH_EVERYTHING
|
|
# define NU_WITH_UTF8
|
|
# define NU_WITH_CESU8
|
|
# define NU_WITH_UTF16
|
|
# define NU_WITH_UTF16HE
|
|
# define NU_WITH_UTF32
|
|
# define NU_WITH_UTF32HE
|
|
# define NU_WITH_STRINGS
|
|
# define NU_WITH_EXTRA
|
|
# define NU_WITH_REVERSE_READ
|
|
# define NU_WITH_VALIDATION
|
|
# define NU_WITH_COLLATION
|
|
# define NU_WITH_CASEMAP
|
|
# define NU_WITH_UNACCENT
|
|
#endif /* NU_WITH_EVERYTHING */
|
|
|
|
/* Enable UTF-8 decoding and encoding */
|
|
#ifdef NU_WITH_UTF8
|
|
# define NU_WITH_UTF8_READER /* UTF-8 decoding functions */
|
|
# define NU_WITH_UTF8_WRITER /* UTF-8 encoding functions */
|
|
#endif /* NU_WITH_UTF8 */
|
|
|
|
/* Enable CESU-8 decoding and encoding */
|
|
#ifdef NU_WITH_CESU8
|
|
# define NU_WITH_CESU8_READER
|
|
# define NU_WITH_CESU8_WRITER
|
|
#endif /* NU_WITH_CESU8 */
|
|
|
|
/* Enable UTF-16LE decoding and encoding */
|
|
#ifdef NU_WITH_UTF16LE
|
|
# define NU_WITH_UTF16LE_READER
|
|
# define NU_WITH_UTF16LE_WRITER
|
|
#endif /* NU_WITH_UTF16LE */
|
|
|
|
/* Enable UTF-16BE decoding and encoding */
|
|
#ifdef NU_WITH_UTF16BE
|
|
# define NU_WITH_UTF16BE_READER
|
|
# define NU_WITH_UTF16BE_WRITER
|
|
#endif /* NU_WITH_UTF16BE */
|
|
|
|
/* Enable UTF-16HE decoding and encoding */
|
|
#ifdef NU_WITH_UTF16HE
|
|
# define NU_WITH_UTF16HE_READER
|
|
# define NU_WITH_UTF16HE_WRITER
|
|
#endif /* NU_WITH_UTF16HE */
|
|
|
|
/* Enable all UTF-16 options */
|
|
#ifdef NU_WITH_UTF16
|
|
# define NU_WITH_UTF16_READER
|
|
# define NU_WITH_UTF16_WRITER
|
|
#endif /* NU_WITH_UTF16 */
|
|
|
|
/* Enable UTF-16LE and BE decoders of UTF-16 decoder is requested */
|
|
#ifdef NU_WITH_UTF16_READER
|
|
# define NU_WITH_UTF16LE_READER
|
|
# define NU_WITH_UTF16BE_READER
|
|
#endif /* NU_WITH_UTF16_READER */
|
|
|
|
/* Enable UTF-16LE and BE encoders of UTF-16 encoder is requested */
|
|
#ifdef NU_WITH_UTF16_WRITER
|
|
# define NU_WITH_UTF16LE_WRITER
|
|
# define NU_WITH_UTF16BE_WRITER
|
|
#endif /* NU_WITH_UTF16_WRITER */
|
|
|
|
/* Enable UTF-32LE decoding and encoding */
|
|
#ifdef NU_WITH_UTF32LE
|
|
# define NU_WITH_UTF32LE_READER
|
|
# define NU_WITH_UTF32LE_WRITER
|
|
#endif /* NU_WITH_UTF32LE */
|
|
|
|
/* Enable UTF-32BE decoding and encoding */
|
|
#ifdef NU_WITH_UTF32BE
|
|
# define NU_WITH_UTF32BE_READER
|
|
# define NU_WITH_UTF32BE_WRITER
|
|
#endif /* NU_WITH_UTF32BE */
|
|
|
|
/* Enable UTF-32HE decoding and encoding */
|
|
#ifdef NU_WITH_UTF32HE
|
|
# define NU_WITH_UTF32HE_READER
|
|
# define NU_WITH_UTF32HE_WRITER
|
|
#endif /* NU_WITH_UTF32HE */
|
|
|
|
/* Enable all UTF-32 options */
|
|
#ifdef NU_WITH_UTF32
|
|
# define NU_WITH_UTF32_READER
|
|
# define NU_WITH_UTF32_WRITER
|
|
#endif /* NU_WITH_UTF32 */
|
|
|
|
/* Enable UTF-32LE and BE decoders of UTF-32 decoder is requested */
|
|
#ifdef NU_WITH_UTF32_READER
|
|
# define NU_WITH_UTF32LE_READER
|
|
# define NU_WITH_UTF32BE_READER
|
|
#endif /* NU_WITH_UTF32_READER */
|
|
|
|
/* Enable UTF-32LE and BE encoders of UTF-32 encoder is requested */
|
|
#ifdef NU_WITH_UTF32_WRITER
|
|
# define NU_WITH_UTF32LE_WRITER
|
|
# define NU_WITH_UTF32BE_WRITER
|
|
#endif /* NU_WITH_UTF32_WRITER */
|
|
|
|
/* Shortcut for all string functions */
|
|
#ifdef NU_WITH_STRINGS
|
|
# define NU_WITH_Z_STRINGS /* 0-terminated string functions */
|
|
# define NU_WITH_N_STRINGS /* unterminated string functions */
|
|
#endif /* NU_WITH_STRINGS */
|
|
|
|
/* Shortcut for extra string functions */
|
|
#ifdef NU_WITH_EXTRA
|
|
# define NU_WITH_Z_EXTRA /* extra functions for 0-terminated strings */
|
|
# define NU_WITH_N_EXTRA /* extra functions for unterminated strings */
|
|
#endif /* NU_WITH_STRINGS */
|
|
|
|
/* Enable collation functions */
|
|
#ifdef NU_WITH_COLLATION
|
|
# define NU_WITH_Z_COLLATION /* collation functions for 0-terminated strings */
|
|
# define NU_WITH_N_COLLATION /* collation functions for unterminated strings */
|
|
#endif /* NU_WITH_COLLATION */
|
|
|
|
/* Requirements for collation functions on 0-terminated strings */
|
|
#ifdef NU_WITH_Z_COLLATION
|
|
# define NU_WITH_Z_STRINGS
|
|
# define NU_WITH_TOUPPER /* nu_toupper() */
|
|
#endif
|
|
|
|
/* Requirements for collation functions
|
|
* on unterminated strings */
|
|
#ifdef NU_WITH_N_COLLATION
|
|
# define NU_WITH_N_STRINGS
|
|
# define NU_WITH_TOUPPER
|
|
#endif
|
|
|
|
/* Requirements for casemap functions */
|
|
#ifdef NU_WITH_CASEMAP
|
|
# define NU_WITH_TOLOWER /* nu_tolower() */
|
|
# define NU_WITH_TOUPPER
|
|
# define NU_WITH_TOFOLD
|
|
#endif /* NU_WITH_CASEMAP */
|
|
|
|
/* More requirements for collation functions all collation functions depends
|
|
* on NU_WITH_DUCET */
|
|
#if (defined NU_WITH_Z_COLLATION) || (defined NU_WITH_N_COLLATION)
|
|
# ifndef NU_WITH_DUCET
|
|
# define NU_WITH_DUCET
|
|
# endif
|
|
#endif
|
|
|
|
/* All collation and casemapping functions depends on NU_WITH_UDB */
|
|
#if (defined NU_WITH_Z_COLLATION) || (defined NU_WITH_N_COLLATION) \
|
|
|| (defined NU_WITH_TOLOWER) || (defined NU_WITH_TOUPPER) || (defined NU_WITH_TOFOLD) \
|
|
|| (defined NU_WITH_UNACCENT)
|
|
# ifndef NU_WITH_UDB
|
|
# define NU_WITH_UDB /* nu_udb_* functions, pretty much internal stuff */
|
|
# endif /* NU_WITH_UDB */
|
|
#endif
|
|
|
|
/* DUCET implementation depends on NU_WITH_UDB */
|
|
#ifdef NU_WITH_DUCET
|
|
# define NU_WITH_UDB
|
|
#endif /* NU_WITH_DUCET */
|
|
|
|
/* NU_WITH_UDB depends on NU_WITH_UTF8_READER because internal encoding
|
|
* of UDB is UTF-8 */
|
|
#ifdef NU_WITH_UDB
|
|
# define NU_WITH_UTF8_READER
|
|
#endif /* NU_WITH_UDB */
|
|
|
|
#endif /* NU_BUILD_CONFIG_H */
|