mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 9.1.0657: MS-Windows: MSVC build time can be optimized
Problem: MS-Windows: MSVC build time can be optimized Solution: Stop using Powershell, show detected version, read _MSC_VER and _MSC_FULL_VER in a single cl execution. (Ken Takata) closes: #15421 Signed-off-by: Ken Takata <kentkt@csc.jp> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
parent
cdf1c7a73a
commit
87d63d34b6
@ -163,14 +163,14 @@
|
|||||||
# nmake -f Make_mvc.mvc "DEFINES=-DEMACS_TAGS"
|
# nmake -f Make_mvc.mvc "DEFINES=-DEMACS_TAGS"
|
||||||
|
|
||||||
RM = del /f /q
|
RM = del /f /q
|
||||||
PS = powershell.exe
|
|
||||||
|
|
||||||
PSFLAGS = -NoLogo -NoProfile -Command
|
# Read MAJOR and MINOR from version.h.
|
||||||
|
!IF ![for /f "tokens=2,3" %I in (version.h) do \
|
||||||
|
@if "%I"=="VIM_VERSION_MAJOR" ( echo MAJOR=%J>.\major.tmp ) \
|
||||||
|
else if "%I"=="VIM_VERSION_MINOR" ( echo MINOR=%J>.\minor.tmp )]
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
!IF ![$(PS) $(PSFLAGS) try{Out-File -FilePath '.\major.tmp' -InputObject \
|
!IF EXIST(.\major.tmp)
|
||||||
\"MAJOR=$$(((Select-String -Pattern 'VIM_VERSION_MAJOR\s+\d{1,2}' \
|
|
||||||
-Path '.\version.h').Line[-2..-1^]-join '').Trim())\"} \
|
|
||||||
catch{exit 1}]
|
|
||||||
! INCLUDE .\major.tmp
|
! INCLUDE .\major.tmp
|
||||||
! IF [$(RM) .\major.tmp]
|
! IF [$(RM) .\major.tmp]
|
||||||
! ENDIF
|
! ENDIF
|
||||||
@ -179,10 +179,7 @@ PSFLAGS = -NoLogo -NoProfile -Command
|
|||||||
MAJOR = 9
|
MAJOR = 9
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
!IF ![$(PS) $(PSFLAGS) try{Out-File -FilePath '.\minor.tmp' -InputObject \
|
!IF EXIST(.\minor.tmp)
|
||||||
\"MINOR=$$(((Select-String -Pattern 'VIM_VERSION_MINOR\s+\d{1,2}' \
|
|
||||||
-Path '.\version.h').Line[-2..-1^]-join '').Trim())\"} \
|
|
||||||
catch{exit 1}]
|
|
||||||
! INCLUDE .\minor.tmp
|
! INCLUDE .\minor.tmp
|
||||||
! IF [$(RM) .\minor.tmp]
|
! IF [$(RM) .\minor.tmp]
|
||||||
! ENDIF
|
! ENDIF
|
||||||
@ -191,24 +188,23 @@ MAJOR = 9
|
|||||||
MINOR = 1
|
MINOR = 1
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
!IF  do \
|
||||||
-Path '.\version.c').LineNumber+3))[-1^]).Trim().TrimEnd(','))\"} \
|
( set /A LINE+=1 > NUL && \
|
||||||
catch{exit 1}]
|
if "%J"=="included_patches" ( set /A FIND=LINE+3 > NUL ) \
|
||||||
|
else if "!LINE!"=="!FIND!" ( echo PATCHLEVEL=%I>.\patchlvl.tmp && exit ) )"]
|
||||||
|
!ENDIF
|
||||||
|
!IF EXIST(.\patchlvl.tmp)
|
||||||
! INCLUDE .\patchlvl.tmp
|
! INCLUDE .\patchlvl.tmp
|
||||||
! IF [$(RM) .\patchlvl.tmp]
|
! IF [$(RM) .\patchlvl.tmp]
|
||||||
! ENDIF
|
! ENDIF
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
|
|
||||||
# Build on Windows NT/XP
|
|
||||||
|
|
||||||
TARGETOS = WINNT
|
|
||||||
|
|
||||||
!IFDEF PATCHLEVEL
|
!IFDEF PATCHLEVEL
|
||||||
RCFLAGS = -DVIM_VERSION_PATCHLEVEL=$(PATCHLEVEL)
|
RCFLAGS = -DVIM_VERSION_PATCHLEVEL=$(PATCHLEVEL)
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
!message Vim version: $(MAJOR).$(MINOR).$(PATCHLEVEL)
|
||||||
|
|
||||||
|
|
||||||
!if "$(VIMDLL)" == "yes"
|
!if "$(VIMDLL)" == "yes"
|
||||||
@ -299,7 +295,9 @@ MAKEFLAGS_GVIMEXT = DEBUG=yes
|
|||||||
LINK = link
|
LINK = link
|
||||||
|
|
||||||
# Check VC version.
|
# Check VC version.
|
||||||
!if [echo MSVCVER=_MSC_VER> msvcver.c && $(CC) /EP msvcver.c > msvcver.~ 2> nul]
|
!if [echo MSVCVER=_MSC_VER> msvcver.c && \
|
||||||
|
echo MSVC_FULL=_MSC_FULL_VER>> msvcver.c && \
|
||||||
|
$(CC) /EP msvcver.c > msvcver.~ 2> nul]
|
||||||
! message *** ERROR
|
! message *** ERROR
|
||||||
! message Cannot run Visual C to determine its version. Make sure cl.exe is in your PATH.
|
! 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.
|
! message This can usually be done by running "vcvarsall.bat", located in the bin directory where Visual Studio was installed.
|
||||||
@ -320,19 +318,6 @@ LINK = link
|
|||||||
MSVC_MAJOR = ($(MSVCVER) / 100 - 5)
|
MSVC_MAJOR = ($(MSVCVER) / 100 - 5)
|
||||||
MSVCRT_VER = ($(MSVCVER) / 100 * 10 - 50)
|
MSVCRT_VER = ($(MSVCVER) / 100 * 10 - 50)
|
||||||
|
|
||||||
# Calculate MSVC_FULL.
|
|
||||||
!if [echo MSVC_FULL=_MSC_FULL_VER> msvcfullver.c && $(CC) /EP msvcfullver.c > msvcfullver.~ 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 msvcfullver.~
|
|
||||||
! if [del msvcfullver.c msvcfullver.~]
|
|
||||||
! endif
|
|
||||||
!endif
|
|
||||||
|
|
||||||
|
|
||||||
# Calculate MSVCRT_VER
|
# Calculate MSVCRT_VER
|
||||||
!if [(set /a MSVCRT_VER="$(MSVCRT_VER)" > nul) && set MSVCRT_VER > msvcrtver.~] == 0
|
!if [(set /a MSVCRT_VER="$(MSVCRT_VER)" > nul) && set MSVCRT_VER > msvcrtver.~] == 0
|
||||||
! include msvcrtver.~
|
! include msvcrtver.~
|
||||||
@ -340,6 +325,11 @@ MSVCRT_VER = ($(MSVCVER) / 100 * 10 - 50)
|
|||||||
! endif
|
! endif
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
# Show the versions (for debugging).
|
||||||
|
#!message _MSC_VER=$(MSVCVER)
|
||||||
|
#!message _MSC_FULL_VER=$(MSVC_FULL)
|
||||||
|
#!message MSVCRT_VER=$(MSVCRT_VER)
|
||||||
|
|
||||||
# Base name of the msvcrXX.dll (vcruntimeXXX.dll)
|
# Base name of the msvcrXX.dll (vcruntimeXXX.dll)
|
||||||
MSVCRT_NAME = vcruntime$(MSVCRT_VER)
|
MSVCRT_NAME = vcruntime$(MSVCRT_VER)
|
||||||
|
|
||||||
|
@ -704,6 +704,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
657,
|
||||||
/**/
|
/**/
|
||||||
656,
|
656,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user