patch 9.0.0700: there is no real need for a "big" build

Problem:    There is no real need for a "big" build.
Solution:   Move common features to "normal" build, less often used features
            to the "huge" build. (Martin Tournoij, closes #11283)
This commit is contained in:
Martin Tournoij
2022-10-08 19:26:41 +01:00
committed by Bram Moolenaar
parent bf499c0e6f
commit 25f3a146a0
14 changed files with 73 additions and 105 deletions

View File

@ -33,10 +33,9 @@
*
* +tiny no optional features enabled, not even +eval
* +normal a default selection of features enabled
* +big many features enabled, except "expensive" ones
* +huge all possible features enabled.
*
* When +normal is used, +tiny is also included. +big implies +normal, etc.
* When +normal is used, +tiny is also included. +huge implies +normal, etc.
*/
/*
@ -49,34 +48,36 @@
# endif
#endif
/*
* +big is now an alias for +normal
*/
#if defined(FEAT_BIG)
# undef FEAT_BIG
# if !defined(FEAT_NORMAL)
# define FEAT_NORMAL
# endif
#endif
/*
* Uncomment one of these to override the default. For unix use a configure
* argument, see Makefile.
*/
#if !defined(FEAT_TINY) && !defined(FEAT_NORMAL) \
&& !defined(FEAT_BIG) && !defined(FEAT_HUGE)
#if !defined(FEAT_TINY) && !defined(FEAT_NORMAL) && !defined(FEAT_HUGE)
// #define FEAT_TINY
// #define FEAT_NORMAL
// #define FEAT_BIG
// #define FEAT_HUGE
#endif
/*
* For Unix, Mac and Win32 use +huge by default. These days CPUs are fast and
* Memory is cheap.
* Use +big for older systems: VMS and Amiga.
* Otherwise use +normal
*/
#if !defined(FEAT_TINY) && !defined(FEAT_NORMAL) \
&& !defined(FEAT_BIG) && !defined(FEAT_HUGE)
#if !defined(FEAT_TINY) && !defined(FEAT_NORMAL) && !defined(FEAT_HUGE)
# if defined(UNIX) || defined(MSWIN) || defined(MACOS_X)
# define FEAT_HUGE
# else
# if defined(VMS) || defined(AMIGA)
# define FEAT_BIG
# else
# define FEAT_NORMAL
# endif
# define FEAT_NORMAL
# endif
#endif
@ -84,9 +85,6 @@
* Each feature implies including the "smaller" ones.
*/
#ifdef FEAT_HUGE
# define FEAT_BIG
#endif
#ifdef FEAT_BIG
# define FEAT_NORMAL
#endif
#ifdef FEAT_NORMAL
@ -164,7 +162,7 @@
* keyboard in a special language mode, e.g. for typing
* greek.
*/
#ifdef FEAT_BIG
#ifdef FEAT_HUGE
# define FEAT_LANGMAP
#endif
@ -172,7 +170,7 @@
* +keymap 'keymap' option. Allows you to map typed keys in
* Insert mode for a special language.
*/
#ifdef FEAT_BIG
#ifdef FEAT_HUGE
# define FEAT_KEYMAP
#endif
@ -219,7 +217,7 @@
/*
* +rightleft Right-to-left editing/typing support.
*/
#if defined(FEAT_BIG) && !defined(DISABLE_RIGHTLEFT)
#if defined(FEAT_HUGE) && !defined(DISABLE_RIGHTLEFT)
# define FEAT_RIGHTLEFT
#endif
@ -227,7 +225,7 @@
* +arabic Arabic keymap and shaping support.
* Requires FEAT_RIGHTLEFT
*/
#if defined(FEAT_BIG) && !defined(DISABLE_ARABIC)
#if defined(FEAT_HUGE) && !defined(DISABLE_ARABIC)
# define FEAT_ARABIC
#endif
#ifdef FEAT_ARABIC
@ -252,14 +250,14 @@
* +emacs_tags When FEAT_EMACS_TAGS defined: Include support for
* emacs style TAGS file.
*/
#ifdef FEAT_BIG
#ifdef FEAT_HUGE
# define FEAT_EMACS_TAGS
#endif
/*
* +cscope Unix only: Cscope support.
*/
#if defined(UNIX) && defined(FEAT_BIG) && !defined(FEAT_CSCOPE) && !defined(MACOS_X)
#if defined(UNIX) && defined(FEAT_HUGE) && !defined(FEAT_CSCOPE) && !defined(MACOS_X)
# define FEAT_CSCOPE
#endif
@ -374,7 +372,7 @@
* +conceal 'conceal' option. Depends on syntax highlighting
* as this is how the concealed text is defined.
*/
#if defined(FEAT_BIG) && defined(FEAT_SYN_HL)
#if defined(FEAT_NORMAL) && defined(FEAT_SYN_HL)
# define FEAT_CONCEAL
#endif
@ -395,7 +393,7 @@
/*
* libsodium - add cryptography support
*/
#if defined(HAVE_SODIUM) && defined(FEAT_BIG)
#if defined(HAVE_SODIUM) && defined(FEAT_HUGE)
# define FEAT_SODIUM
#endif
@ -428,7 +426,7 @@
// #define FEAT_MBYTE_IME
#endif
#if defined(FEAT_BIG) && defined(FEAT_GUI_HAIKU) && !defined(FEAT_MBYTE_IME)
#if defined(FEAT_HUGE) && defined(FEAT_GUI_HAIKU) && !defined(FEAT_MBYTE_IME)
# define FEAT_MBYTE_IME
#endif
@ -606,14 +604,14 @@
/*
* +termguicolors 'termguicolors' option.
*/
#if (defined(FEAT_BIG) && defined(FEAT_SYN_HL)) && !defined(ALWAYS_USE_GUI)
#if (defined(FEAT_NORMAL) && defined(FEAT_SYN_HL)) && !defined(ALWAYS_USE_GUI)
# define FEAT_TERMGUICOLORS
#endif
/*
* +vartabs 'vartabstop' and 'varsofttabstop' options.
*/
#ifdef FEAT_BIG
#ifdef FEAT_HUGE
# define FEAT_VARTABS
#endif
@ -854,13 +852,9 @@
// Amiga console has no mouse support
#if defined(UNIX) || defined(VMS)
# define FEAT_MOUSE_XTERM
# ifdef FEAT_BIG
# ifdef FEAT_NORMAL
# define FEAT_MOUSE_NET
# endif
# ifdef FEAT_BIG
# define FEAT_MOUSE_DEC
# endif
# ifdef FEAT_BIG
# define FEAT_MOUSE_URXVT
# endif
#endif
@ -1091,7 +1085,7 @@
* +signs Allow signs to be displayed to the left of text lines.
* Adds the ":sign" command.
*/
#if defined(FEAT_BIG) || defined(FEAT_NETBEANS_INTG) || defined(FEAT_PROP_POPUP)
#if defined(FEAT_NORMAL) || defined(FEAT_NETBEANS_INTG) || defined(FEAT_PROP_POPUP)
# define FEAT_SIGNS
# if (defined(FEAT_GUI_MOTIF) && defined(HAVE_X11_XPM_H)) \
|| defined(FEAT_GUI_GTK) \
@ -1149,7 +1143,7 @@
/*
* +autochdir 'autochdir' option.
*/
#if defined(FEAT_NETBEANS_INTG) || defined(FEAT_BIG)
#if defined(FEAT_NETBEANS_INTG) || defined(FEAT_NORMAL)
# define FEAT_AUTOCHDIR
#endif