Created
January 12, 2013 04:35
-
-
Save k-takata/4516132 to your computer and use it in GitHub Desktop.
additional patch for vim-kaoriya-vim-mq-ex / patch-direct_write.diff
support for MinGW and Cygwin
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| diff --git a/src/Make_cyg.mak b/src/Make_cyg.mak | |
| --- a/src/Make_cyg.mak | |
| +++ b/src/Make_cyg.mak | |
| @@ -8,6 +8,7 @@ | |
| # Cygwin application use the Makefile (just like on Unix). | |
| # | |
| # GUI no or yes: set to yes if you want the GUI version (yes) | |
| +# DIRECTX no or yes: set to yes if you want use DirectWrite (no) | |
| # PERL define to path to Perl dir to get Perl support (not defined) | |
| # PERL_VER define to version of Perl being used (56) | |
| # DYNAMIC_PERL no or yes: set to yes to load the Perl DLL dynamically (yes) | |
| @@ -88,6 +89,16 @@ | |
| ARCH = i386 | |
| endif | |
| +ifndef DIRECTX | |
| +DIRECTX = no | |
| +endif | |
| +ifeq ($(DIRECTX),yes) | |
| +# DirectWrite requires that WINVER is 0x0600 or above | |
| +ifndef WINVER | |
| +WINVER = 0x0600 | |
| +endif | |
| +endif | |
| + | |
| ifndef WINVER | |
| WINVER = 0x0500 | |
| endif | |
| @@ -437,6 +448,14 @@ | |
| endif | |
| ############################## | |
| +ifeq (yes, $(DIRECTX)) | |
| +# Only allow DIRECTX for a GUI build. | |
| +DEFINES += -DUSE_DIRECT_X | |
| +EXTRA_OBJS += $(OUTDIR)/gui_dwrite.o | |
| +EXTRA_LIBS += -ld2d1 -ldwrite -static-libgcc -static | |
| +endif | |
| + | |
| +############################## | |
| ifdef XPM | |
| # Only allow XPM for a GUI build. | |
| DEFINES += -DFEAT_XPM_W32 | |
| @@ -449,8 +468,8 @@ | |
| EXE = gvim$(DEBUG_SUFFIX).exe | |
| OUTDIR = gobj$(DEBUG_SUFFIX) | |
| DEFINES += -DFEAT_GUI_W32 -DFEAT_CLIPBOARD | |
| -EXTRA_OBJS += $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o $(OUTDIR)/gui_dwrite.o | |
| -EXTRA_LIBS += -mwindows -lcomctl32 -lversion -ld2d1 -ldwrite -static-libgcc -static | |
| +EXTRA_OBJS += $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o | |
| +EXTRA_LIBS += -mwindows -lcomctl32 -lversion | |
| else | |
| EXE = vim$(DEBUG_SUFFIX).exe | |
| OUTDIR = obj$(DEBUG_SUFFIX) | |
| @@ -541,8 +560,13 @@ | |
| # According to the Cygwin doc 1.2 FAQ, kernel32 should not be specified for | |
| # linking unless calling ld directly. | |
| # See /usr/doc/cygwin-doc-1.2/html/faq_toc.html#TOC93 for more information. | |
| +ifeq ($(DIRECTX),yes) | |
| $(EXE): $(OUTDIR) $(OBJ) | |
| $(CXX) $(CFLAGS) -o $(EXE) $(OBJ) $(LIBS) -luuid -lole32 $(EXTRA_LIBS) | |
| +else | |
| +$(EXE): $(OUTDIR) $(OBJ) | |
| + $(CC) $(CFLAGS) -o $(EXE) $(OBJ) $(LIBS) -luuid -lole32 $(EXTRA_LIBS) | |
| +endif | |
| xxd/xxd.exe: xxd/xxd.c | |
| $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL) | |
| @@ -595,15 +619,15 @@ | |
| $(OUTDIR)/%.o : %.c $(INCL) | |
| $(CC) -c $(CFLAGS) $< -o $@ | |
| -$(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp $(INCL) gui_dwrite.h | |
| - $(CXX) -c $(CFLAGS) gui_dwrite.cpp -o $(OUTDIR)/gui_dwrite.o | |
| - | |
| $(OUTDIR)/ex_docmd.o: ex_docmd.c $(INCL) ex_cmds.h | |
| $(CC) -c $(CFLAGS) ex_docmd.c -o $(OUTDIR)/ex_docmd.o | |
| $(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h | |
| $(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o | |
| +$(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp $(INCL) gui_dwrite.h | |
| + $(CXX) -c $(CFLAGS) gui_dwrite.cpp -o $(OUTDIR)/gui_dwrite.o | |
| + | |
| $(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h | |
| $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o | |
| diff --git a/src/Make_ming.mak b/src/Make_ming.mak | |
| --- a/src/Make_ming.mak | |
| +++ b/src/Make_ming.mak | |
| @@ -31,6 +31,14 @@ | |
| OPTIMIZE=MAXSPEED | |
| # set to yes to make gvim, no for vim | |
| GUI=yes | |
| +# set to yes if you want to use DirectWrite (DirectX) | |
| +DIRECTX=no | |
| +ifeq ($(DIRECTX),yes) | |
| +# DirectWrite requires that WINVER is 0x0600 or above | |
| +ifndef WINVER | |
| +WINVER = 0x0600 | |
| +endif | |
| +endif | |
| # FEATURES=[TINY | SMALL | NORMAL | BIG | HUGE] | |
| # Set to TINY to make minimal version (few features). | |
| FEATURES=BIG | |
| @@ -441,6 +449,14 @@ | |
| endif | |
| endif | |
| +# DirectWrite (DirectX) | |
| +ifeq ($(DIRECTX),yes) | |
| +# Only allow DirectWrite for a GUI build. | |
| +ifeq (yes, $(GUI)) | |
| +DEFINES += -DUSE_DIRECT_X | |
| +endif | |
| +endif | |
| + | |
| # Only allow XPM for a GUI build. | |
| ifeq (yes, $(GUI)) | |
| @@ -486,8 +502,8 @@ | |
| CFLAGS += -s | |
| endif | |
| -LIB = -lkernel32 -luser32 -lgdi32 -ladvapi32 -lcomdlg32 -lcomctl32 -lversion -ld2d1 -ldwrite | |
| -GUIOBJ = $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o $(OUTDIR)/gui_dwrite.o | |
| +LIB = -lkernel32 -luser32 -lgdi32 -ladvapi32 -lcomdlg32 -lcomctl32 -lversion | |
| +GUIOBJ = $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o | |
| OBJ = \ | |
| $(OUTDIR)/blowfish.o \ | |
| $(OUTDIR)/buffer.o \ | |
| @@ -577,6 +593,14 @@ | |
| LIB += -lwsock32 | |
| endif | |
| endif | |
| +ifeq ($(DIRECTX),yes) | |
| +# Only allow DIRECTX for a GUI build. | |
| +ifeq (yes, $(GUI)) | |
| +OBJ += $(OUTDIR)/gui_dwrite.o | |
| +LIB += -ld2d1 -ldwrite | |
| +LFLAGS += -static-libgcc -static | |
| +endif | |
| +endif | |
| ifdef XPM | |
| # Only allow XPM for a GUI build. | |
| ifeq (yes, $(GUI)) | |
| @@ -595,7 +619,7 @@ | |
| TARGET := gvim$(DEBUG_SUFFIX).exe | |
| DEFINES += $(DEF_GUI) | |
| OBJ += $(GUIOBJ) | |
| -LFLAGS += -mwindows -static-libgcc -static | |
| +LFLAGS += -mwindows | |
| OUTDIR = gobj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)$(ARCH) | |
| else | |
| TARGET := vim$(DEBUG_SUFFIX).exe | |
| @@ -673,8 +697,13 @@ | |
| uninstal.exe: uninstal.c | |
| $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB) | |
| +ifeq ($(DIRECTX),yes) | |
| $(TARGET): $(OUTDIR) $(OBJ) | |
| $(CXX) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB) | |
| +else | |
| +$(TARGET): $(OUTDIR) $(OBJ) | |
| + $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB) | |
| +endif | |
| upx: exes | |
| upx gvim.exe | |
| @@ -726,15 +755,15 @@ | |
| $(OUTDIR): | |
| $(MKDIR) $(OUTDIR) | |
| -$(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp $(INCL) gui_dwrite.h | |
| - $(CXX) -c $(CFLAGS) gui_dwrite.cpp -o $(OUTDIR)/gui_dwrite.o | |
| - | |
| $(OUTDIR)/ex_docmd.o: ex_docmd.c $(INCL) ex_cmds.h | |
| $(CC) -c $(CFLAGS) ex_docmd.c -o $(OUTDIR)/ex_docmd.o | |
| $(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h | |
| $(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o | |
| +$(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp $(INCL) gui_dwrite.h | |
| + $(CXX) -c $(CFLAGS) gui_dwrite.cpp -o $(OUTDIR)/gui_dwrite.o | |
| + | |
| $(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h | |
| $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o | |
| diff --git a/src/eval.c b/src/eval.c | |
| --- a/src/eval.c | |
| +++ b/src/eval.c | |
| @@ -12186,7 +12186,7 @@ | |
| "gui", | |
| #endif | |
| #ifdef USE_DIRECT_X | |
| - "gui_directx", | |
| + "gui_directx", | |
| #endif | |
| #ifdef FEAT_GUI_ATHENA | |
| # ifdef FEAT_GUI_NEXTAW | |
| diff --git a/src/version.c b/src/version.c | |
| --- a/src/version.c | |
| +++ b/src/version.c | |
| @@ -182,10 +182,12 @@ | |
| #else | |
| "-digraphs", | |
| #endif | |
| -#ifdef USE_DIRECT_X | |
| +#ifdef WIN3264 | |
| +# ifdef USE_DIRECT_X | |
| "+directx", | |
| -#else | |
| +# else | |
| "-directx", | |
| +# endif | |
| #endif | |
| #ifdef FEAT_DND | |
| "+dnd", |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment