changeset 34856:73e0743621c3

NSIS: Fix a few issues with gvim.nsi Commit: https://github.com/vim/vim/commit/49f1e1979f9c3a4d7b28f0961bca0e41227a0557 Author: RestorerZ <restorer@mail2k.ru> Date: Tue Apr 9 23:04:44 2024 +0200 NSIS: Fix a few issues with gvim.nsi - correctly find libsodium.dll - disable inclusion of libgcc_s_sjlj-1.dll - generate PATCHLEVEL correctly related: #14214 closes: #14465 Signed-off-by: RestorerZ <restorer@mail2k.ru> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Tue, 09 Apr 2024 23:15:03 +0200
parents d099ae151acc
children 3f8444c5a6f3
files nsis/gvim.nsi src/Make_mvc.mak
diffstat 2 files changed, 63 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/nsis/gvim.nsi
+++ b/nsis/gvim.nsi
@@ -410,9 +410,6 @@ Section "$(str_section_exe)" id_section_
 !if /FileExists "${VIMSRC}\vim${BIT}.dll"
 	File ${VIMSRC}\vim${BIT}.dll
 !endif
-!if /FileExists "${VIMRT}\libsodium.dll"
-	File ${VIMRT}\libsodium.dll
-!endif
 	File /oname=install.exe ${VIMSRC}\installw32.exe
 	File /oname=uninstall.exe ${VIMSRC}\uninstallw32.exe
 	File ${VIMSRC}\vimrun.exe
@@ -432,6 +429,9 @@ Section "$(str_section_exe)" id_section_
 !if /FileExists "${VIMTOOLS}\winpty-agent.exe"
 	File ${VIMTOOLS}\winpty-agent.exe
 !endif
+!if /FileExists "${VIMTOOLS}\libsodium.dll"
+	File ${VIMTOOLS}\libsodium.dll
+!endif
 
 	SetOutPath $0\colors
 	File /r ${VIMRT}\colors\*.*
@@ -728,12 +728,12 @@ Section "$(str_section_nls)" id_section_
 	!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
 	    "${GETTEXT}\gettext${BIT}\libiconv-2.dll" \
 	    "$0\libiconv-2.dll" "$0"
-  !if /FileExists "${GETTEXT}\gettext${BIT}\libgcc_s_sjlj-1.dll"
-	# Install libgcc_s_sjlj-1.dll only if it is needed.
-	!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
-	    "${GETTEXT}\gettext${BIT}\libgcc_s_sjlj-1.dll" \
-	    "$0\libgcc_s_sjlj-1.dll" "$0"
-  !endif
+# Install libgcc_s_sjlj-1.dll only if it is needed.
+#  !if /FileExists "${GETTEXT}\gettext${BIT}\libgcc_s_sjlj-1.dll"
+#	!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+#	    "${GETTEXT}\gettext${BIT}\libgcc_s_sjlj-1.dll" \
+#	    "$0\libgcc_s_sjlj-1.dll" "$0"
+#  !endif
 
 	${If} ${SectionIsSelected} ${id_section_editwith}
 	  ${If} ${RunningX64}
@@ -759,12 +759,12 @@ Section "$(str_section_nls)" id_section_
 	  !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
 	      "${GETTEXT}\gettext32\libiconv-2.dll" \
 	      "$0\GvimExt32\libiconv-2.dll" "$0\GvimExt32"
-  !if /FileExists "${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll"
-	  # Install libgcc_s_sjlj-1.dll only if it is needed.
-	  !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
-	      "${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll" \
-	      "$0\GvimExt32\libgcc_s_sjlj-1.dll" "$0\GvimExt32"
-  !endif
+# Install libgcc_s_sjlj-1.dll only if it is needed.
+#  !if /FileExists "${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll"
+#	  !insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED \
+#	      "${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll" \
+#	      "$0\GvimExt32\libgcc_s_sjlj-1.dll" "$0\GvimExt32"
+#  !endif
 	${EndIf}
 SectionEnd
 !endif
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -157,10 +157,55 @@
 # you can set DEFINES on the command line, e.g.,
 #	nmake -f Make_mvc.mvc "DEFINES=-DEMACS_TAGS"
 
+RM=		del /f /q
+PS=		powershell.exe
+
+PSFLAGS=	-NoLogo -NoProfile -Command
+
+!IF ![$(PS) $(PSFLAGS) try{Out-File -FilePath '.\major.tmp' -InputObject \
+	\"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
+! IF [$(RM) .\major.tmp]
+! ENDIF
+!ELSE
+# Change this value for the new version
+MAJOR=		9
+!ENDIF
+
+!IF ![$(PS) $(PSFLAGS) try{Out-File -FilePath '.\minor.tmp' -InputObject \
+	\"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
+! IF [$(RM) .\minor.tmp]
+! ENDIF
+!ELSE
+# Change this value for the new version
+MINOR=		1
+!ENDIF
+
+!IF ![$(PS) $(PSFLAGS) try{Out-File -FilePath '.\patchlvl.tmp' -InputObject \
+	\"PATCHLEVEL=$$(((Get-Content -Path '.\version.c' \
+	-TotalCount ((Select-String -Pattern 'static int included_patches' \
+	-Path '.\version.c').LineNumber+3))[-1^]).Trim().TrimEnd(','))\"} \
+	catch{exit 1}]
+! INCLUDE .\patchlvl.tmp
+! IF [$(RM) .\patchlvl.tmp]
+! ENDIF
+!ENDIF
+
+
 # Build on Windows NT/XP
 
 TARGETOS = WINNT
 
+!IFDEF PATCHLEVEL
+RCFLAGS=	-DVIM_VERSION_PATCHLEVEL=$(PATCHLEVEL)
+!ENDIF
+
+
 !if "$(VIMDLL)" == "yes"
 GUI = yes
 !endif
@@ -591,7 +636,7 @@ OPTFLAG = $(OPTFLAG) /GL
 ! endif
 
 CFLAGS = $(CFLAGS) $(OPTFLAG) -DNDEBUG $(CPUARG)
-RCFLAGS = -DNDEBUG
+RCFLAGS = $(RCFLAGS) -DNDEBUG
 ! ifdef USE_MSVCRT
 CFLAGS = $(CFLAGS) /MD
 LIBC = msvcrt.lib
@@ -607,7 +652,7 @@ VIM = vimd
 DEBUGINFO = /ZI
 ! endif
 CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od
-RCFLAGS = -D_DEBUG -DDEBUG
+RCFLAGS = $(RCFLAGS) -D_DEBUG -DDEBUG
 # The /fixed:no is needed for Quantify.
 LIBC = /fixed:no
 ! ifdef USE_MSVCRT
@@ -621,7 +666,7 @@ LIBC = $(LIBC) libcmtd.lib
 !endif # DEBUG
 
 # Visual Studio 2005 has 'deprecated' many of the standard CRT functions
-CFLAGS_DEPR = /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
+CFLAGS_DEPR = -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
 CFLAGS = $(CFLAGS) $(CFLAGS_DEPR)
 
 !include Make_all.mak