Patch 7.4.1944 Problem: Win32: Cannot compile with XPM feature using VC2015 Solution: Add XPM libraries compiled with VC2015, and enable to build gvim.exe which supports XPM using VC2015. (Ken Takata) Files: src/Make_mvc.mak, src/xpm/x64/lib-vc14/libXpm.lib, src/xpm/x86/lib-vc14/libXpm.lib
*** ../vim-7.4.1943/src/Make_mvc.mak 2016-06-02 20:26:37.296366681 +0200 --- src/Make_mvc.mak 2016-06-18 21:29:03.620766358 +0200 *************** *** 255,260 **** --- 255,299 ---- !endif + # Check VC version. + !if [echo MSVCVER=_MSC_VER> msvcver.c && $(CC) /EP msvcver.c > msvcver.~ 2> nul] + !message *** ERROR + !message Cannot run Visual C to determine its version. Make sure cl.exe is in your PATH. + !message This can usually be done by running "vcvarsall.bat", located in the bin directory where Visual Studio was installed. + !error Make aborted. + !else + !include msvcver.~ + !if [del msvcver.c msvcver.~] + !endif + !endif + + !if $(MSVCVER) < 1900 + MSVC_MAJOR = ($(MSVCVER) / 100 - 6) + MSVCRT_VER = ($(MSVCVER) / 10 - 60) + !else + MSVC_MAJOR = ($(MSVCVER) / 100 - 5) + MSVCRT_VER = ($(MSVCVER) / 10 - 50) + !endif + + # Calculate MSVCRT_VER + !if [(set /a MSVCRT_VER="$(MSVCRT_VER)" > nul) && set MSVCRT_VER > msvcrtver.~] == 0 + !include msvcrtver.~ + !if [del msvcrtver.~] + !endif + !endif + + # Base name of the msvcrXX.dll + !if $(MSVCRT_VER) <= 60 + MSVCRT_NAME = msvcrt + !else + MSVCRT_NAME = msvcr$(MSVCRT_VER) + !endif + + !if $(MSVC_MAJOR) == 6 + CPU = ix86 + !endif + + # Flag to turn on Win64 compatibility warnings for VC7.x and VC8. WP64CHECK = /Wp64 *************** *** 294,301 **** !endif !endif ! # Only allow NETBEANS and XPM for a GUI build and CHANNEL. !if "$(GUI)" == "yes" !if "$(NETBEANS)" == "yes" && "$(CHANNEL)" == "yes" # NETBEANS - Include support for Netbeans integration NETBEANS_PRO = proto/netbeans.pro --- 333,341 ---- !endif !endif ! # GUI sepcific features. !if "$(GUI)" == "yes" + # Only allow NETBEANS for a GUI build and CHANNEL. !if "$(NETBEANS)" == "yes" && "$(CHANNEL)" == "yes" # NETBEANS - Include support for Netbeans integration NETBEANS_PRO = proto/netbeans.pro *************** *** 317,324 **** DIRECTX_OBJ = $(OUTDIR)\gui_dwrite.obj !endif !ifndef XPM ! # XPM is not set, use the included xpm files, depending on the architecture. !if "$(CPU)" == "AMD64" XPM = xpm\x64 !elseif "$(CPU)" == "i386" --- 357,367 ---- DIRECTX_OBJ = $(OUTDIR)\gui_dwrite.obj !endif + # Only allow XPM for a GUI build. !ifndef XPM ! !ifndef USE_MSVCRT ! # Both XPM and USE_MSVCRT are not set, use the included xpm files, depending ! # on the architecture. !if "$(CPU)" == "AMD64" XPM = xpm\x64 !elseif "$(CPU)" == "i386" *************** *** 326,338 **** !else XPM = no !endif ! !endif !if "$(XPM)" != "no" # XPM - Include support for XPM signs # See the xpm directory for more information. XPM_OBJ = $(OBJDIR)/xpm_w32.obj XPM_DEFS = -DFEAT_XPM_W32 XPM_LIB = $(XPM)\lib\libXpm.lib XPM_INC = -I $(XPM)\include -I $(XPM)\..\include !endif !endif --- 369,390 ---- !else XPM = no !endif ! !else # USE_MSVCRT ! XPM = no ! !endif # USE_MSVCRT ! !endif # XPM !if "$(XPM)" != "no" # XPM - Include support for XPM signs # See the xpm directory for more information. XPM_OBJ = $(OBJDIR)/xpm_w32.obj XPM_DEFS = -DFEAT_XPM_W32 + !if $(MSVC_MAJOR) >= 14 + # VC14 cannot use a library built by VC12 or eariler, because VC14 uses + # Universal CRT. + XPM_LIB = $(XPM)\lib-vc14\libXpm.lib + !else XPM_LIB = $(XPM)\lib\libXpm.lib + !endif XPM_INC = -I $(XPM)\include -I $(XPM)\..\include !endif !endif *************** *** 395,437 **** INTDIR=$(OBJDIR) OUTDIR=$(OBJDIR) - !if [echo MSVCVER=_MSC_VER> msvcver.c && $(CC) /EP msvcver.c > msvcver.~ 2> nul] - !message *** ERROR - !message Cannot run Visual C to determine its version. Make sure cl.exe is in your PATH. - !message This can usually be done by running "vcvarsall.bat", located in the bin directory where Visual Studio was installed. - !error Make aborted. - !else - !include msvcver.~ - !if [del msvcver.c msvcver.~] - !endif - !endif - - !if $(MSVCVER) < 1900 - MSVC_MAJOR = ($(MSVCVER) / 100 - 6) - MSVCRT_VER = ($(MSVCVER) / 10 - 60) - !else - MSVC_MAJOR = ($(MSVCVER) / 100 - 5) - MSVCRT_VER = ($(MSVCVER) / 10 - 50) - !endif - - # Calculate MSVCRT_VER - !if [(set /a MSVCRT_VER="$(MSVCRT_VER)" > nul) && set MSVCRT_VER > msvcrtver.~] == 0 - !include msvcrtver.~ - !if [del msvcrtver.~] - !endif - !endif - - # Base name of the msvcrXX.dll - !if $(MSVCRT_VER) <= 60 - MSVCRT_NAME = msvcrt - !else - MSVCRT_NAME = msvcr$(MSVCRT_VER) - !endif - - !if $(MSVC_MAJOR) == 6 - CPU = ix86 - !endif - # Convert processor ID to MVC-compatible number !if $(MSVC_MAJOR) < 8 !if "$(CPUNR)" == "i386" --- 447,452 ---- *** ../vim-7.4.1943/src/xpm/x64/lib-vc14/libXpm.lib 1970-01-01 01:00:00.000000000 +0100 --- src/xpm/x64/lib-vc14/libXpm.lib 2016-06-18 21:29:03.620766358 +0200 *************** *** 0 **** --- 1,350 ---- + !<arch> + / 1466086426 0 1683 ` + al_stdio_printf_options ÎÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ@SUVWATH ì Gray74‰\$ D‹ 0765ð �è H Öèort_rangecheckfailureÀt H‰0H‰h H‰ H…Àu ¸ýÿÿÿë ‹C ;C r H‹Ëèingt$XH‰D$PH‹„$P ParseDataAndCreate�èunwind$XpmWriteFileFromBuffer:"LIBCMT" /DEFAULTLIB:"OLDNAMES" P`.xdata�ÌÌÌÌÌÌE3ÀH‰J D‰ H‹ H‰B L‰B L‰‚( .datau÷I‹S AƒÂ D ÐE…Àt'M‹È @ L‰d$XD‹àL‰t$hM q L‰|$ M‹NðL Ap‹B‰Ah‰jH‰j ët ºà sn‹RL ApH‹N èreeOldColorTablebNames /DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" �Ä …À HÁà o…öt ÷ ¨ 3© u ÇD$ D$0Pÿt$ èb Ç 0À.debug$f...@comp.idÒ[ ÿÿÇ@ „Àuù+ÊƒÇ ‹U ù…öt" D+ "XPMENDEXT"Ä …À HÁà &ÿþÿÿ÷ -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.