From 4f92178a7597f0478f306086933a163109ee894c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Linse?= Date: Sun, 1 Mar 2015 16:36:10 +0100 Subject: [PATCH 1/2] config: split out versiondef.h from config.h This avoids recompiling every c file after comitting. --- config/CMakeLists.txt | 6 ++++++ config/config.h.in | 12 ++++-------- config/versiondef.h.in | 13 +++++++++++++ src/nvim/buffer.c | 2 +- src/nvim/eval.c | 1 - src/nvim/ex_cmds2.c | 2 +- src/nvim/misc1.c | 2 +- src/nvim/version.h | 12 ++++++++++++ src/nvim/version_defs.h | 2 ++ 9 files changed, 40 insertions(+), 12 deletions(-) create mode 100644 config/versiondef.h.in diff --git a/config/CMakeLists.txt b/config/CMakeLists.txt index 1ee5c78adf..0d3ef62297 100644 --- a/config/CMakeLists.txt +++ b/config/CMakeLists.txt @@ -79,6 +79,12 @@ configure_file ( "${PROJECT_BINARY_DIR}/config/auto/config.h" ) +# generate version definitions +configure_file ( + "${PROJECT_SOURCE_DIR}/config/versiondef.h.in" + "${PROJECT_BINARY_DIR}/config/auto/versiondef.h" + ) + # generate pathdef.c find_program(WHOAMI_PROG whoami) find_program(HOSTNAME_PROG hostname) diff --git a/config/config.h.in b/config/config.h.in index 9e6f3d8e13..a3cd72b57c 100644 --- a/config/config.h.in +++ b/config/config.h.in @@ -1,11 +1,5 @@ -#define NVIM_VERSION_MAJOR @NVIM_VERSION_MAJOR@ -#define NVIM_VERSION_MINOR @NVIM_VERSION_MINOR@ -#define NVIM_VERSION_PATCH @NVIM_VERSION_PATCH@ -#define NVIM_VERSION_PRERELEASE "@NVIM_VERSION_PRERELEASE@" -#define NVIM_VERSION_BUILD "@NVIM_VERSION_BUILD@" -#define NVIM_VERSION_COMMIT "@NVIM_VERSION_COMMIT@" -#define NVIM_VERSION_CFLAGS "@NVIM_VERSION_CFLAGS@" -#define NVIM_VERSION_BUILD_TYPE "@NVIM_VERSION_BUILD_TYPE@" +#ifndef AUTO_CONFIG_H +#define AUTO_CONFIG_H #cmakedefine DEBUG @@ -72,3 +66,5 @@ #define FEAT_BROWSE #define FEAT_CSCOPE #define FEAT_MOUSE + +#endif // AUTO_CONFIG_H diff --git a/config/versiondef.h.in b/config/versiondef.h.in new file mode 100644 index 0000000000..a177e599ba --- /dev/null +++ b/config/versiondef.h.in @@ -0,0 +1,13 @@ +#ifndef AUTO_VERSIONDEF_H +#define AUTO_VERSIONDEF_H + +#define NVIM_VERSION_MAJOR @NVIM_VERSION_MAJOR@ +#define NVIM_VERSION_MINOR @NVIM_VERSION_MINOR@ +#define NVIM_VERSION_PATCH @NVIM_VERSION_PATCH@ +#define NVIM_VERSION_PRERELEASE "@NVIM_VERSION_PRERELEASE@" +#define NVIM_VERSION_BUILD "@NVIM_VERSION_BUILD@" +#define NVIM_VERSION_COMMIT "@NVIM_VERSION_COMMIT@" +#define NVIM_VERSION_CFLAGS "@NVIM_VERSION_CFLAGS@" +#define NVIM_VERSION_BUILD_TYPE "@NVIM_VERSION_BUILD_TYPE@" + +#endif // AUTO_VERSIONDEF_H diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index fa25b68641..5246b10dbb 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -4033,7 +4033,7 @@ void do_modelines(int flags) --entered; } -#include "nvim/version_defs.h" /* for version number */ +#include "nvim/version.h" /* for version number */ /* * chk_modeline() - check a single line for a mode string diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 9b4b4ce496..ae8e0d329f 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -351,7 +351,6 @@ typedef enum { * The reason to use this table anyway is for very quick access to the * variables with the VV_ defines. */ -#include "nvim/version_defs.h" /* values for vv_flags: */ #define VV_COMPAT 1 /* compatible, also used without "v:" */ diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c index ffafe3cffb..44cb2d48a2 100644 --- a/src/nvim/ex_cmds2.c +++ b/src/nvim/ex_cmds2.c @@ -21,7 +21,7 @@ #ifdef HAVE_LOCALE_H # include #endif -#include "nvim/version_defs.h" +#include "nvim/version.h" #include "nvim/ex_cmds2.h" #include "nvim/buffer.h" #include "nvim/charset.h" diff --git a/src/nvim/misc1.c b/src/nvim/misc1.c index a836ab5680..04551355ae 100644 --- a/src/nvim/misc1.c +++ b/src/nvim/misc1.c @@ -19,7 +19,7 @@ #include "nvim/vim.h" #include "nvim/ascii.h" -#include "nvim/version_defs.h" +#include "nvim/version.h" #include "nvim/misc1.h" #include "nvim/charset.h" #include "nvim/cursor.h" diff --git a/src/nvim/version.h b/src/nvim/version.h index d1b19a062f..a3234d13bc 100644 --- a/src/nvim/version.h +++ b/src/nvim/version.h @@ -1,6 +1,18 @@ #ifndef NVIM_VERSION_H #define NVIM_VERSION_H +// +// Vim version number, name, etc. Patchlevel is defined in version.c. +// +#define VIM_VERSION_MAJOR 7 +#define VIM_VERSION_MINOR 4 +#define VIM_VERSION_100 (VIM_VERSION_MAJOR * 100 + VIM_VERSION_MINOR) + +// used for the runtime directory name +#define VIM_VERSION_NODOT "vim74" +// swap file compatibility (max. length is 6 chars) +#define VIM_VERSION_SHORT "7.4" + #ifdef INCLUDE_GENERATED_DECLARATIONS # include "version.h.generated.h" #endif diff --git a/src/nvim/version_defs.h b/src/nvim/version_defs.h index 0ba6143632..3c6504e8d7 100644 --- a/src/nvim/version_defs.h +++ b/src/nvim/version_defs.h @@ -9,6 +9,8 @@ #define STR_(x) #x #define STR(x) STR_(x) +#include "auto/versiondef.h" + // // Nvim version identifiers // From e0f8eea9f103370be7fd8faefae78482c654cb06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Linse?= Date: Sun, 1 Mar 2015 16:59:24 +0100 Subject: [PATCH 2/2] version: don't use NVIM_VERSION_* directly outside version.c This avoids recompiles after commiting. --- clint-ignored-files.txt | 1 - src/nvim/buffer.c | 3 +-- src/nvim/ex_cmds.c | 4 +-- src/nvim/globals.h | 4 --- src/nvim/hardcopy.c | 4 +-- src/nvim/memline.c | 1 + src/nvim/version.c | 20 +++++++++++--- src/nvim/version.h | 5 ++++ src/nvim/version_defs.h | 58 ----------------------------------------- 9 files changed, 28 insertions(+), 72 deletions(-) delete mode 100644 src/nvim/version_defs.h diff --git a/clint-ignored-files.txt b/clint-ignored-files.txt index 7e0063aea0..e0e6b9f3d2 100644 --- a/clint-ignored-files.txt +++ b/clint-ignored-files.txt @@ -126,7 +126,6 @@ src/nvim/undo.h src/nvim/undo_defs.h src/nvim/version.c src/nvim/version.h -src/nvim/version_defs.h src/nvim/vim.h src/nvim/window.c src/nvim/window.h diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index 5246b10dbb..c4abcd77b1 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -70,6 +70,7 @@ #include "nvim/syntax.h" #include "nvim/ui.h" #include "nvim/undo.h" +#include "nvim/version.h" #include "nvim/window.h" #include "nvim/os/os.h" #include "nvim/os/time.h" @@ -4033,8 +4034,6 @@ void do_modelines(int flags) --entered; } -#include "nvim/version.h" /* for version number */ - /* * chk_modeline() - check a single line for a mode string * Return FAIL if an error encountered. diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c index afa397976b..e98032da5c 100644 --- a/src/nvim/ex_cmds.c +++ b/src/nvim/ex_cmds.c @@ -19,7 +19,6 @@ #include "nvim/vim.h" #include "nvim/ascii.h" -#include "nvim/version_defs.h" #include "nvim/ex_cmds.h" #include "nvim/buffer.h" #include "nvim/charset.h" @@ -64,6 +63,7 @@ #include "nvim/tempfile.h" #include "nvim/ui.h" #include "nvim/undo.h" +#include "nvim/version.h" #include "nvim/window.h" #include "nvim/os/os.h" #include "nvim/os/shell.h" @@ -1708,7 +1708,7 @@ static void do_viminfo(FILE *fp_in, FILE *fp_out, int flags) if (fp_out != NULL) { /* Write the info: */ fprintf(fp_out, _("# This viminfo file was generated by Nvim %s.\n"), - NVIM_VERSION_MEDIUM); + mediumVersion); fputs(_("# You may edit it if you're careful!\n\n"), fp_out); fputs(_("# Value of 'encoding' when this file was written\n"), fp_out); fprintf(fp_out, "*encoding=%s\n\n", p_enc); diff --git a/src/nvim/globals.h b/src/nvim/globals.h index 5d52774f40..b15db61f99 100644 --- a/src/nvim/globals.h +++ b/src/nvim/globals.h @@ -967,10 +967,6 @@ EXTERN int wild_menu_showing INIT(= 0); EXTERN char breakat_flags[256]; /* which characters are in 'breakat' */ -/* these are in version.c */ -extern char *Version; -extern char *longVersion; - /* * Some file names are stored in pathdef.c, which is generated from the * Makefile to make their value depend on the Makefile. diff --git a/src/nvim/hardcopy.c b/src/nvim/hardcopy.c index 0da5caf7cd..db81746d73 100644 --- a/src/nvim/hardcopy.c +++ b/src/nvim/hardcopy.c @@ -21,7 +21,6 @@ #ifdef HAVE_LOCALE_H # include #endif -#include "nvim/version_defs.h" #include "nvim/hardcopy.h" #include "nvim/buffer.h" #include "nvim/charset.h" @@ -42,6 +41,7 @@ #include "nvim/strings.h" #include "nvim/syntax.h" #include "nvim/ui.h" +#include "nvim/version.h" #include "nvim/tempfile.h" #include "nvim/os/os.h" #include "nvim/os/input.h" @@ -2440,7 +2440,7 @@ int mch_print_begin(prt_settings_T *psettings) STRCPY(buffer, "Unknown"); } prt_dsc_textline("For", buffer); - prt_dsc_textline("Creator", NVIM_VERSION_LONG); + prt_dsc_textline("Creator", longVersion); /* Note: to ensure Clean8bit I don't think we can use LC_TIME */ now = time(NULL); p_time = ctime(&now); diff --git a/src/nvim/memline.c b/src/nvim/memline.c index 817fd08a9c..1339671c92 100644 --- a/src/nvim/memline.c +++ b/src/nvim/memline.c @@ -70,6 +70,7 @@ #include "nvim/spell.h" #include "nvim/strings.h" #include "nvim/ui.h" +#include "nvim/version.h" #include "nvim/tempfile.h" #include "nvim/undo.h" #include "nvim/window.h" diff --git a/src/nvim/version.c b/src/nvim/version.c index 8357de9f46..474dbf73f8 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -18,10 +18,24 @@ #include "nvim/misc2.h" #include "nvim/screen.h" #include "nvim/strings.h" -#include "nvim/version_defs.h" + +// version info generated by the build system +#include "auto/versiondef.h" + +#define STR_(x) #x +#define STR(x) STR_(x) + +// for the startup-screen ( ":intro" command ) +#define NVIM_VERSION_MEDIUM STR(NVIM_VERSION_MAJOR) "." STR(NVIM_VERSION_MINOR) + +// for the ":version" command and "nvim --version" +#define NVIM_VERSION_LONG "NVIM " NVIM_VERSION_MEDIUM "." STR(NVIM_VERSION_PATCH) NVIM_VERSION_PRERELEASE NVIM_VERSION_BUILD + char *Version = VIM_VERSION_SHORT; -char *longVersion = NVIM_VERSION_LONG " (compiled " __DATE__ " " __TIME__ ")"; +char *longVersion = NVIM_VERSION_LONG; +char *longVersionWithDate = NVIM_VERSION_LONG " (compiled " __DATE__ " " __TIME__ ")"; +char *mediumVersion = NVIM_VERSION_MEDIUM; char *version_commit = "Commit: " NVIM_VERSION_COMMIT; char *version_buildtype = "Build type: " NVIM_VERSION_BUILD_TYPE; char *version_cflags = "Compilation: " NVIM_VERSION_CFLAGS; @@ -885,7 +899,7 @@ void list_version(void) { // When adding features here, don't forget to update the list of // internal variables in eval.c! - MSG(longVersion); + MSG(longVersionWithDate); MSG(version_commit); MSG(version_buildtype); MSG(version_cflags); diff --git a/src/nvim/version.h b/src/nvim/version.h index a3234d13bc..c1881250f1 100644 --- a/src/nvim/version.h +++ b/src/nvim/version.h @@ -1,6 +1,11 @@ #ifndef NVIM_VERSION_H #define NVIM_VERSION_H +// defined in version.c +extern char* Version; +extern char* mediumVersion; +extern char* longVersion; + // // Vim version number, name, etc. Patchlevel is defined in version.c. // diff --git a/src/nvim/version_defs.h b/src/nvim/version_defs.h deleted file mode 100644 index 3c6504e8d7..0000000000 --- a/src/nvim/version_defs.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef NVIM_VERSION_DEFS_H -#define NVIM_VERSION_DEFS_H - -// VIM - Vi IMproved by Bram Moolenaar -// -// Do ":help uganda" in Vim to read copying and usage conditions. -// Do ":help credits" in Vim to see a list of people who contributed. - -#define STR_(x) #x -#define STR(x) STR_(x) - -#include "auto/versiondef.h" - -// -// Nvim version identifiers -// -#ifndef NVIM_VERSION_MAJOR -#define NVIM_VERSION_MAJOR 0 -#endif -#ifndef NVIM_VERSION_MINOR -#define NVIM_VERSION_MINOR 0 -#endif -#ifndef NVIM_VERSION_PATCH -#define NVIM_VERSION_PATCH 0 -#endif -#ifndef NVIM_VERSION_PRERELEASE -#define NVIM_VERSION_PRERELEASE "?" -#endif -#ifndef NVIM_VERSION_BUILD -#define NVIM_VERSION_BUILD "?" -#endif -#ifndef NVIM_VERSION_COMMIT -#define NVIM_VERSION_COMMIT "?" -#endif -#ifndef NVIM_VERSION_CFLAGS -#define NVIM_VERSION_CFLAGS "?" -#endif -#ifndef NVIM_VERSION_BUILD_TYPE -#define NVIM_VERSION_BUILD_TYPE "?" -#endif -// for the startup-screen -#define NVIM_VERSION_MEDIUM STR(NVIM_VERSION_MAJOR) "." STR(NVIM_VERSION_MINOR) -// for the ":version" command and "nvim -h" -#define NVIM_VERSION_LONG "NVIM " NVIM_VERSION_MEDIUM "." STR(NVIM_VERSION_PATCH) NVIM_VERSION_PRERELEASE NVIM_VERSION_BUILD - -// -// Vim version number, name, etc. Patchlevel is defined in version.c. -// -#define VIM_VERSION_MAJOR 7 -#define VIM_VERSION_MINOR 4 -#define VIM_VERSION_100 (VIM_VERSION_MAJOR * 100 + VIM_VERSION_MINOR) - -// used for the runtime directory name -#define VIM_VERSION_NODOT "vim74" -// swap file compatibility (max. length is 6 chars) -#define VIM_VERSION_SHORT "7.4" - -#endif // NVIM_VERSION_DEFS_H