comparison src/feature.h @ 30731:2295ee9c025d v9.0.0700

patch 9.0.0700: there is no real need for a "big" build Commit: https://github.com/vim/vim/commit/25f3a146a0e4c731b8608f4cfbbfdf7a71b2d05e Author: Martin Tournoij <martin@arp242.net> Date: Sat Oct 8 19:26:41 2022 +0100 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)
author Bram Moolenaar <Bram@vim.org>
date Sat, 08 Oct 2022 20:30:05 +0200
parents 6ceb06c2c6ae
children c11da68d1a32
comparison
equal deleted inserted replaced
30730:f4a543b2595c 30731:2295ee9c025d
31 * Basic choices: 31 * Basic choices:
32 * ============== 32 * ==============
33 * 33 *
34 * +tiny no optional features enabled, not even +eval 34 * +tiny no optional features enabled, not even +eval
35 * +normal a default selection of features enabled 35 * +normal a default selection of features enabled
36 * +big many features enabled, except "expensive" ones
37 * +huge all possible features enabled. 36 * +huge all possible features enabled.
38 * 37 *
39 * When +normal is used, +tiny is also included. +big implies +normal, etc. 38 * When +normal is used, +tiny is also included. +huge implies +normal, etc.
40 */ 39 */
41 40
42 /* 41 /*
43 * +small is now an alias for +tiny 42 * +small is now an alias for +tiny
44 */ 43 */
48 # define FEAT_TINY 47 # define FEAT_TINY
49 # endif 48 # endif
50 #endif 49 #endif
51 50
52 /* 51 /*
52 * +big is now an alias for +normal
53 */
54 #if defined(FEAT_BIG)
55 # undef FEAT_BIG
56 # if !defined(FEAT_NORMAL)
57 # define FEAT_NORMAL
58 # endif
59 #endif
60
61 /*
53 * Uncomment one of these to override the default. For unix use a configure 62 * Uncomment one of these to override the default. For unix use a configure
54 * argument, see Makefile. 63 * argument, see Makefile.
55 */ 64 */
56 #if !defined(FEAT_TINY) && !defined(FEAT_NORMAL) \ 65 #if !defined(FEAT_TINY) && !defined(FEAT_NORMAL) && !defined(FEAT_HUGE)
57 && !defined(FEAT_BIG) && !defined(FEAT_HUGE)
58 // #define FEAT_TINY 66 // #define FEAT_TINY
59 // #define FEAT_NORMAL 67 // #define FEAT_NORMAL
60 // #define FEAT_BIG
61 // #define FEAT_HUGE 68 // #define FEAT_HUGE
62 #endif 69 #endif
63 70
64 /* 71 /*
65 * For Unix, Mac and Win32 use +huge by default. These days CPUs are fast and 72 * For Unix, Mac and Win32 use +huge by default. These days CPUs are fast and
66 * Memory is cheap. 73 * Memory is cheap.
67 * Use +big for older systems: VMS and Amiga.
68 * Otherwise use +normal 74 * Otherwise use +normal
69 */ 75 */
70 #if !defined(FEAT_TINY) && !defined(FEAT_NORMAL) \ 76 #if !defined(FEAT_TINY) && !defined(FEAT_NORMAL) && !defined(FEAT_HUGE)
71 && !defined(FEAT_BIG) && !defined(FEAT_HUGE)
72 # if defined(UNIX) || defined(MSWIN) || defined(MACOS_X) 77 # if defined(UNIX) || defined(MSWIN) || defined(MACOS_X)
73 # define FEAT_HUGE 78 # define FEAT_HUGE
74 # else 79 # else
75 # if defined(VMS) || defined(AMIGA) 80 # define FEAT_NORMAL
76 # define FEAT_BIG
77 # else
78 # define FEAT_NORMAL
79 # endif
80 # endif 81 # endif
81 #endif 82 #endif
82 83
83 /* 84 /*
84 * Each feature implies including the "smaller" ones. 85 * Each feature implies including the "smaller" ones.
85 */ 86 */
86 #ifdef FEAT_HUGE 87 #ifdef FEAT_HUGE
87 # define FEAT_BIG
88 #endif
89 #ifdef FEAT_BIG
90 # define FEAT_NORMAL 88 # define FEAT_NORMAL
91 #endif 89 #endif
92 #ifdef FEAT_NORMAL 90 #ifdef FEAT_NORMAL
93 # define FEAT_TINY 91 # define FEAT_TINY
94 #endif 92 #endif
162 /* 160 /*
163 * +langmap 'langmap' option. Only useful when you put your 161 * +langmap 'langmap' option. Only useful when you put your
164 * keyboard in a special language mode, e.g. for typing 162 * keyboard in a special language mode, e.g. for typing
165 * greek. 163 * greek.
166 */ 164 */
167 #ifdef FEAT_BIG 165 #ifdef FEAT_HUGE
168 # define FEAT_LANGMAP 166 # define FEAT_LANGMAP
169 #endif 167 #endif
170 168
171 /* 169 /*
172 * +keymap 'keymap' option. Allows you to map typed keys in 170 * +keymap 'keymap' option. Allows you to map typed keys in
173 * Insert mode for a special language. 171 * Insert mode for a special language.
174 */ 172 */
175 #ifdef FEAT_BIG 173 #ifdef FEAT_HUGE
176 # define FEAT_KEYMAP 174 # define FEAT_KEYMAP
177 #endif 175 #endif
178 176
179 #ifdef FEAT_NORMAL 177 #ifdef FEAT_NORMAL
180 # define VIM_BACKTICK // internal backtick expansion 178 # define VIM_BACKTICK // internal backtick expansion
217 #endif 215 #endif
218 216
219 /* 217 /*
220 * +rightleft Right-to-left editing/typing support. 218 * +rightleft Right-to-left editing/typing support.
221 */ 219 */
222 #if defined(FEAT_BIG) && !defined(DISABLE_RIGHTLEFT) 220 #if defined(FEAT_HUGE) && !defined(DISABLE_RIGHTLEFT)
223 # define FEAT_RIGHTLEFT 221 # define FEAT_RIGHTLEFT
224 #endif 222 #endif
225 223
226 /* 224 /*
227 * +arabic Arabic keymap and shaping support. 225 * +arabic Arabic keymap and shaping support.
228 * Requires FEAT_RIGHTLEFT 226 * Requires FEAT_RIGHTLEFT
229 */ 227 */
230 #if defined(FEAT_BIG) && !defined(DISABLE_ARABIC) 228 #if defined(FEAT_HUGE) && !defined(DISABLE_ARABIC)
231 # define FEAT_ARABIC 229 # define FEAT_ARABIC
232 #endif 230 #endif
233 #ifdef FEAT_ARABIC 231 #ifdef FEAT_ARABIC
234 # ifndef FEAT_RIGHTLEFT 232 # ifndef FEAT_RIGHTLEFT
235 # define FEAT_RIGHTLEFT 233 # define FEAT_RIGHTLEFT
250 248
251 /* 249 /*
252 * +emacs_tags When FEAT_EMACS_TAGS defined: Include support for 250 * +emacs_tags When FEAT_EMACS_TAGS defined: Include support for
253 * emacs style TAGS file. 251 * emacs style TAGS file.
254 */ 252 */
255 #ifdef FEAT_BIG 253 #ifdef FEAT_HUGE
256 # define FEAT_EMACS_TAGS 254 # define FEAT_EMACS_TAGS
257 #endif 255 #endif
258 256
259 /* 257 /*
260 * +cscope Unix only: Cscope support. 258 * +cscope Unix only: Cscope support.
261 */ 259 */
262 #if defined(UNIX) && defined(FEAT_BIG) && !defined(FEAT_CSCOPE) && !defined(MACOS_X) 260 #if defined(UNIX) && defined(FEAT_HUGE) && !defined(FEAT_CSCOPE) && !defined(MACOS_X)
263 # define FEAT_CSCOPE 261 # define FEAT_CSCOPE
264 #endif 262 #endif
265 263
266 /* 264 /*
267 * +eval Built-in script language and expression evaluation, 265 * +eval Built-in script language and expression evaluation,
372 370
373 /* 371 /*
374 * +conceal 'conceal' option. Depends on syntax highlighting 372 * +conceal 'conceal' option. Depends on syntax highlighting
375 * as this is how the concealed text is defined. 373 * as this is how the concealed text is defined.
376 */ 374 */
377 #if defined(FEAT_BIG) && defined(FEAT_SYN_HL) 375 #if defined(FEAT_NORMAL) && defined(FEAT_SYN_HL)
378 # define FEAT_CONCEAL 376 # define FEAT_CONCEAL
379 #endif 377 #endif
380 378
381 /* 379 /*
382 * +spell spell checking 380 * +spell spell checking
393 #endif 391 #endif
394 392
395 /* 393 /*
396 * libsodium - add cryptography support 394 * libsodium - add cryptography support
397 */ 395 */
398 #if defined(HAVE_SODIUM) && defined(FEAT_BIG) 396 #if defined(HAVE_SODIUM) && defined(FEAT_HUGE)
399 # define FEAT_SODIUM 397 # define FEAT_SODIUM
400 #endif 398 #endif
401 399
402 /* 400 /*
403 * +mksession ":mksession" command. 401 * +mksession ":mksession" command.
426 */ 424 */
427 #if defined(FEAT_GUI_MSWIN) && !defined(FEAT_MBYTE_IME) 425 #if defined(FEAT_GUI_MSWIN) && !defined(FEAT_MBYTE_IME)
428 // #define FEAT_MBYTE_IME 426 // #define FEAT_MBYTE_IME
429 #endif 427 #endif
430 428
431 #if defined(FEAT_BIG) && defined(FEAT_GUI_HAIKU) && !defined(FEAT_MBYTE_IME) 429 #if defined(FEAT_HUGE) && defined(FEAT_GUI_HAIKU) && !defined(FEAT_MBYTE_IME)
432 # define FEAT_MBYTE_IME 430 # define FEAT_MBYTE_IME
433 #endif 431 #endif
434 432
435 // Use iconv() when it's available. 433 // Use iconv() when it's available.
436 #if (defined(HAVE_ICONV_H) && defined(HAVE_ICONV)) || defined(DYNAMIC_ICONV) 434 #if (defined(HAVE_ICONV_H) && defined(HAVE_ICONV)) || defined(DYNAMIC_ICONV)
604 #endif 602 #endif
605 603
606 /* 604 /*
607 * +termguicolors 'termguicolors' option. 605 * +termguicolors 'termguicolors' option.
608 */ 606 */
609 #if (defined(FEAT_BIG) && defined(FEAT_SYN_HL)) && !defined(ALWAYS_USE_GUI) 607 #if (defined(FEAT_NORMAL) && defined(FEAT_SYN_HL)) && !defined(ALWAYS_USE_GUI)
610 # define FEAT_TERMGUICOLORS 608 # define FEAT_TERMGUICOLORS
611 #endif 609 #endif
612 610
613 /* 611 /*
614 * +vartabs 'vartabstop' and 'varsofttabstop' options. 612 * +vartabs 'vartabstop' and 'varsofttabstop' options.
615 */ 613 */
616 #ifdef FEAT_BIG 614 #ifdef FEAT_HUGE
617 # define FEAT_VARTABS 615 # define FEAT_VARTABS
618 #endif 616 #endif
619 617
620 /* 618 /*
621 * Preferences: 619 * Preferences:
852 * DOS_MOUSE is defined. 850 * DOS_MOUSE is defined.
853 */ 851 */
854 // Amiga console has no mouse support 852 // Amiga console has no mouse support
855 #if defined(UNIX) || defined(VMS) 853 #if defined(UNIX) || defined(VMS)
856 # define FEAT_MOUSE_XTERM 854 # define FEAT_MOUSE_XTERM
857 # ifdef FEAT_BIG 855 # ifdef FEAT_NORMAL
858 # define FEAT_MOUSE_NET 856 # define FEAT_MOUSE_NET
859 # endif
860 # ifdef FEAT_BIG
861 # define FEAT_MOUSE_DEC 857 # define FEAT_MOUSE_DEC
862 # endif
863 # ifdef FEAT_BIG
864 # define FEAT_MOUSE_URXVT 858 # define FEAT_MOUSE_URXVT
865 # endif 859 # endif
866 #endif 860 #endif
867 #if defined(MSWIN) 861 #if defined(MSWIN)
868 # define DOS_MOUSE 862 # define DOS_MOUSE
1089 1083
1090 /* 1084 /*
1091 * +signs Allow signs to be displayed to the left of text lines. 1085 * +signs Allow signs to be displayed to the left of text lines.
1092 * Adds the ":sign" command. 1086 * Adds the ":sign" command.
1093 */ 1087 */
1094 #if defined(FEAT_BIG) || defined(FEAT_NETBEANS_INTG) || defined(FEAT_PROP_POPUP) 1088 #if defined(FEAT_NORMAL) || defined(FEAT_NETBEANS_INTG) || defined(FEAT_PROP_POPUP)
1095 # define FEAT_SIGNS 1089 # define FEAT_SIGNS
1096 # if (defined(FEAT_GUI_MOTIF) && defined(HAVE_X11_XPM_H)) \ 1090 # if (defined(FEAT_GUI_MOTIF) && defined(HAVE_X11_XPM_H)) \
1097 || defined(FEAT_GUI_GTK) \ 1091 || defined(FEAT_GUI_GTK) \
1098 || (defined(MSWIN) && defined(FEAT_GUI)) 1092 || (defined(MSWIN) && defined(FEAT_GUI))
1099 # define FEAT_SIGN_ICONS 1093 # define FEAT_SIGN_ICONS
1147 #endif 1141 #endif
1148 1142
1149 /* 1143 /*
1150 * +autochdir 'autochdir' option. 1144 * +autochdir 'autochdir' option.
1151 */ 1145 */
1152 #if defined(FEAT_NETBEANS_INTG) || defined(FEAT_BIG) 1146 #if defined(FEAT_NETBEANS_INTG) || defined(FEAT_NORMAL)
1153 # define FEAT_AUTOCHDIR 1147 # define FEAT_AUTOCHDIR
1154 #endif 1148 #endif
1155 1149
1156 /* 1150 /*
1157 * +persistent_undo 'undofile', 'undodir' options, :wundo and :rundo, and 1151 * +persistent_undo 'undofile', 'undodir' options, :wundo and :rundo, and