patch 9.1.1499: MS-Windows: no indication of ARM64 architecture

Problem:  MS-Windows: no indication of ARM64 architecture
Solution: Add ARM64 to version output and include in nsis installer
          (RestorerZ)

related: vim/vim-win32-installer#381
closes: #17642

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/nsis/Make_mvc.mak b/nsis/Make_mvc.mak
index c5aff15..8350082 100644
--- a/nsis/Make_mvc.mak
+++ b/nsis/Make_mvc.mak
@@ -46,6 +46,10 @@
 MKNSISFLAGS = $(MKNSISFLAGS) /DWIN64=$(WIN64)
 !ENDIF
 
+!IFDEF ARM64
+MKNSISFLAGS = $(MKNSISFLAGS) /DARM64=$(ARM64)
+!ENDIF
+
 !IFDEF INCLUDE_LIBGCC
 MKNSISFLAGS = $(MKNSISFLAGS) /DINCLUDE_LIBGCC=$(INCLUDE_LIBGCC)
 !ENDIF
diff --git a/nsis/Makefile b/nsis/Makefile
index fdbc120..890ace4 100644
--- a/nsis/Makefile
+++ b/nsis/Makefile
@@ -39,6 +39,10 @@
 MKNSISFLAGS := $(MKNSISFLAGS) -DWIN64=$(WIN64)
 endif
 
+ifdef ARM64
+MKNSISFLAGS := $(MKNSISFLAGS) -DARM64=$(ARM64)
+endif
+
 ifdef INCLUDE_LIBGCC
 MKNSISFLAGS := $(MKNSISFLAGS) -DINCLUDE_LIBGCC=$(INCLUDE_LIBGCC)
 endif
diff --git a/nsis/README.txt b/nsis/README.txt
index 4b4b7a0..3bb32d4 100644
--- a/nsis/README.txt
+++ b/nsis/README.txt
@@ -101,6 +101,8 @@
     "HAVE_NLS=0"	— do not add native language support.
     "HAVE_MULTI_LANG=0" — to create an English-only the installer.
     "WIN64=1"		— to create a 64-bit the installer.
+    "ARM64=1"		— to create the installer for ARM64. The WIN64 variable
+			    must be set to 1.
     "X=<scriptcmd>"	— executes scriptcmd in script.  If multiple scriptcmd
 			    are specified, they are separated by a semicolon.
 			    Example "X=OutFile MyVim.exe;XPMode on"
diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi
index eef8a12..04040b4 100644
--- a/nsis/gvim.nsi
+++ b/nsis/gvim.nsi
@@ -53,6 +53,18 @@
   !define WIN64 0
 !endif
 
+# if you want to create the installer for ARM64, use the /DARM64=1 on
+# the command line makensis.exe. This property will be set to 1.
+!ifndef ARM64
+  !define ARM64 0
+!else
+  !if ${ARM64} > 0
+    !if ${WIN64} < 1
+      !define /redef WIN64 1
+    !endif
+  !endif
+!endif
+
 # if you don't want to include libgcc_s_sjlj-1.dll in the package, use the
 # switch /DINCLUDE_LIBGCC=0 on the command line makensis.exe.
 !ifndef INCLUDE_LIBGCC
@@ -113,9 +125,13 @@
 !define UNINST_REG_KEY_VIM  "${UNINST_REG_KEY}\${PRODUCT}"
 
 !if ${WIN64}
-Name "${PRODUCT} (x64)"
+  !if ${ARM64}
+    Name "${PRODUCT} (ARM64)"
+  !else
+    Name "${PRODUCT} (x64)"
+  !endif
 !else
-Name "${PRODUCT}"
+  Name "${PRODUCT}"
 !endif
 OutFile gvim${VER_MAJOR}${VER_MINOR}.exe
 CRCCheck force