Mercurial > vim
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 |