summaryrefslogtreecommitdiff
path: root/vendor/nunicode/include/libnu/config.h
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/nunicode/include/libnu/config.h')
-rw-r--r--vendor/nunicode/include/libnu/config.h201
1 files changed, 201 insertions, 0 deletions
diff --git a/vendor/nunicode/include/libnu/config.h b/vendor/nunicode/include/libnu/config.h
new file mode 100644
index 0000000000..6948815b6c
--- /dev/null
+++ b/vendor/nunicode/include/libnu/config.h
@@ -0,0 +1,201 @@
+#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 */