summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-07-23 17:11:15 +0200
committerBram Moolenaar <Bram@vim.org>2017-07-23 17:11:15 +0200
commit2aeaf3fc013a3c4828d6e98a80e6a2e2d980f109 (patch)
treeb22c7e6e965f84e426849a67da8b60165d5dd3e0
parent26af85d97ba1ed0ade6cdd41890ca04ed879b9c7 (diff)
patch 8.0.0756: cannot build libvterm with MSVCv8.0.0756
Problem: Cannot build libvterm with MSVC. Solution: Add an MSVC Makefile to libvterm. (Yasuhiro Matsumoto, closes #1865)
-rw-r--r--src/INSTALLpc.txt11
-rw-r--r--src/Make_mvc.mak11
-rw-r--r--src/libvterm/Makefile.msc30
-rw-r--r--src/version.c2
4 files changed, 48 insertions, 6 deletions
diff --git a/src/INSTALLpc.txt b/src/INSTALLpc.txt
index 562b42ce97..b875b77c9a 100644
--- a/src/INSTALLpc.txt
+++ b/src/INSTALLpc.txt
@@ -706,17 +706,20 @@ Or when using MinGW (as one line):
13. Building with Terminal support
==================================
-Vim with Terminal support can be built with MinGW or Cygwin.
-Terminal support require winpty which provide following two files.
+Vim with Terminal support can be built with either MSVC, or MinGW or Cygwin.
+This uses the included libvterm and winpty. No extra header files or
+libraries are needed for building.
+
+Running Vim with terminal support requires the following two winpty files:
winpty.dll
winpty-agent.dll
-You can download following page:
+You can download them from the following page:
https://github.com/rprichard/winpty
-It don't need header files or libraries. Just put them on your PATH.
+Just put the DLL files somewhere in your PATH.
14. Windows 3.1x
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index 6ad368b39f..99dcb294dc 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -36,6 +36,8 @@
# is yes)
# Global IME support: GIME=yes (requires GUI=yes)
#
+# Terminal support: TERMINAL=yes (default is no)
+#
# Lua interface:
# LUA=[Path to Lua directory]
# DYNAMIC_LUA=yes (to load the Lua DLL dynamically)
@@ -354,7 +356,8 @@ CSCOPE_DEFS = -DFEAT_CSCOPE
!if "$(TERMINAL)" == "yes"
TERMINAL_OBJ = $(OBJDIR)/terminal.obj
TERMINAL_DEFS = -DFEAT_TERMINAL
-TERMINAL_SRC = terminal.c
+TERMINAL_SRC = terminal.c
+VTERM_LIB = libvterm/vterm.lib
!endif
!ifndef NETBEANS
@@ -1130,7 +1133,7 @@ conflags = $(conflags) /map /mapinfo:lines
LINKARGS1 = $(linkdebug) $(conflags)
LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(NODEFAULTLIB) $(LIBC) $(OLE_LIB) user32.lib \
$(LUA_LIB) $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(PYTHON3_LIB) $(RUBY_LIB) \
- $(TCL_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB)
+ $(TCL_LIB) $(NETBEANS_LIB) $(VTERM_LIB) $(XPM_LIB) $(LINK_PDB)
# Report link time code generation progress if used.
!ifdef NODEBUG
@@ -1544,5 +1547,9 @@ proto.h: \
.c.i:
$(CC) $(CFLAGS) /P /C $<
+libvterm/vterm.lib :
+ cd libvterm
+ $(MAKE) /NOLOGO -f Makefile.msc
+ cd ..
# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0:
diff --git a/src/libvterm/Makefile.msc b/src/libvterm/Makefile.msc
new file mode 100644
index 0000000000..18280d256d
--- /dev/null
+++ b/src/libvterm/Makefile.msc
@@ -0,0 +1,30 @@
+OBJS = \
+ src\encoding.c \
+ src\keyboard.c \
+ src\mouse.c \
+ src\parser.c \
+ src\pen.c \
+ src\screen.c \
+ src\state.c \
+ src\unicode.c \
+ src\vterm.c
+
+OBJS = \
+ src\encoding.obj \
+ src\keyboard.obj \
+ src\mouse.obj \
+ src\parser.obj \
+ src\pen.obj \
+ src\screen.obj \
+ src\state.obj \
+ src\unicode.obj \
+ src\vterm.obj
+
+all : vterm.lib
+
+
+.c.obj :
+ cl /DINLINE= /Iinclude /Fo$@ /c $<
+
+vterm.lib : $(OBJS)
+ lib /OUT:$@ $(OBJS)
diff --git a/src/version.c b/src/version.c
index b6885f3702..465252905f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 756,
+/**/
755,
/**/
754,