aboutsummaryrefslogtreecommitdiff
path: root/windowsRuntimeInstaller/InstallerRT.nsi
diff options
context:
space:
mode:
authorMark Young <marky@lunarg.com>2016-01-15 14:11:32 -0700
committerMark Young <marky@lunarg.com>2016-01-25 16:04:01 -0700
commit6f9128c15f30a97dd45e8d17dbabf2827c2ef71e (patch)
tree21d40af19e327ff47ec22ab0426519bf61830b93 /windowsRuntimeInstaller/InstallerRT.nsi
parent36533d4449d7b19c1c75a9f38dc3e5b47c0cc4d7 (diff)
downloadusermoji-6f9128c15f30a97dd45e8d17dbabf2827c2ef71e.tar.xz
Installer: More work towards 32-bit installer for 32-bit OS
Removed unnecessary code in update_external_sources batch, and added initial 32-bit path in installer.
Diffstat (limited to 'windowsRuntimeInstaller/InstallerRT.nsi')
-rw-r--r--windowsRuntimeInstaller/InstallerRT.nsi296
1 files changed, 156 insertions, 140 deletions
diff --git a/windowsRuntimeInstaller/InstallerRT.nsi b/windowsRuntimeInstaller/InstallerRT.nsi
index 9cb1ac9a..2d723ce6 100644
--- a/windowsRuntimeInstaller/InstallerRT.nsi
+++ b/windowsRuntimeInstaller/InstallerRT.nsi
@@ -193,155 +193,171 @@ UninstPage instFiles
# Start default section
Section
- ${DisableX64FSRedirection}
- SetRegView 64
-
- # Set up version number for file names
- ${StrRep} $0 ${VERSION_BUILDNO} "." "-"
- StrCpy $FileVersion ${VERSION_ABI_MAJOR}-${VERSION_API_MAJOR}-${VERSION_MINOR}-${VERSION_PATCH}-$0
-
- # 32-bit DLLs/EXEs destined for SysWOW64
- ##########################################
- SetOutPath $WINDIR\SysWow64
- File /oname=vulkan-$FileVersion.dll ..\build32\loader\Release\vulkan-${VERSION_ABI_MAJOR}.dll
- File /oname=vulkaninfo-$FileVersion.exe ..\build32\demos\Release\vulkaninfo.exe
-
- # 64-bit DLLs/EXEs
- ##########################################
- SetOutPath $WINDIR\System32
- File /oname=vulkan-$FileVersion.dll ..\build\loader\Release\vulkan-${VERSION_ABI_MAJOR}.dll
-
- # vulkaninfo.exe
- File /oname=vulkaninfo-$FileVersion.exe ..\build\demos\Release\vulkaninfo.exe
- SetOutPath "$INSTDIR"
- File ..\build\demos\Release\vulkaninfo.exe
- SetShellVarContext all
- CreateDirectory "$SMPROGRAMS\Vulkan ${PRODUCTVERSION}"
- CreateDirectory "$SMPROGRAMS\Vulkan ${PRODUCTVERSION}\Demos"
- CreateShortCut "$SMPROGRAMS\Vulkan ${PRODUCTVERSION}\Demos\vulkaninfo.lnk" "$INSTDIR\vulkaninfo.exe"
-
- SetOutPath "$INSTDIR"
- File ${ICOFILE}
- File LICENSE.rtf
- File ConfigLayersAndVulkanDLL.ps1
-
- # Run the ConfigLayersAndVulkanDLL.ps1 script to copy the most recent version of
- # vulkan-<abimajor>-*.dll to vulkan-<abimajor>.dll, and to set up layer registry
- # entries to use layers from the corresponding SDK
- nsExec::ExecToStack 'powershell -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -ExecutionPolicy RemoteSigned -File ConfigLayersAndVulkanDLL.ps1 ${VERSION_ABI_MAJOR}'
-
- # We are done using ConfigLayersAndVulkanDLL.ps1, delete it. It will be re-installed
- # by the uninstaller when it needs to be run again during uninstall.
- Delete ConfigLayersAndVulkanDLL.ps1
-
- # Reference count the number of times we have been installed.
- # The reference count is stored in the regisry value IC
- ReadRegDword $1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "IC"
- IntOp $1 $1 + 1
- WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "IC" $1
-
- # Create the uninstaller
- WriteUninstaller "$INSTDIR\Uninstall${PRODUCTNAME}.exe"
-
- # Modify registry for Programs and Features
- WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "DisplayName" "Vulkan Run Time Libraries ${PRODUCTVERSION}"
- WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "UninstallString" "$INSTDIR\Uninstall${PRODUCTNAME}.exe"
- WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "Publisher" "LunarG, Inc."
- WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "DisplayVersion" "${PRODUCTVERSION}"
- WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "VersionABIMajor" ${VERSION_ABI_MAJOR}
- WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "VersionAPIMajor" ${VERSION_API_MAJOR}
- WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "VersionMinor" ${VERSION_MINOR}
- WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "VersionMinor" ${VERSION_PATCH}.${VERSION_BUILDNO}
- WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "EstimatedSize" ${ESTIMATEDSIZE}
- WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "DisplayIcon" "$\"$INSTDIR\${ICOFILE}$\""
-
- # Possibly install MSVC 2013 redistributables
- ReadRegDword $1 HKLM "SOFTWARE\Microsoft\DevDiv\vc\Servicing\12.0\RuntimeMinimum" "Install"
- IntCmp $1 1 RedistributablesInstalled InstallRedistributables InstallRedistributables
- InstallRedistributables:
- SetOutPath "$TEMP"
- File vcredist_x64.exe
- ExecWait '"$TEMP\vcredist_x64.exe" /passive /norestart'
- RedistributablesInstalled:
-
-SectionEnd
+ # If running on a 64-bit OS machine
+ ${If} ${RunningX64}
+
+ ${DisableX64FSRedirection}
+ SetRegView 64
+
+ # Set up version number for file names
+ ${StrRep} $0 ${VERSION_BUILDNO} "." "-"
+ StrCpy $FileVersion ${VERSION_ABI_MAJOR}-${VERSION_API_MAJOR}-${VERSION_MINOR}-${VERSION_PATCH}-$0
+
+ # 32-bit DLLs/EXEs destined for SysWOW64
+ ##########################################
+ SetOutPath $WINDIR\SysWow64
+ File /oname=vulkan-$FileVersion.dll ..\build32\loader\Release\vulkan-${VERSION_ABI_MAJOR}.dll
+ File /oname=vulkaninfo-$FileVersion.exe ..\build32\demos\Release\vulkaninfo.exe
+
+ # 64-bit DLLs/EXEs
+ ##########################################
+ SetOutPath $WINDIR\System32
+ File /oname=vulkan-$FileVersion.dll ..\build\loader\Release\vulkan-${VERSION_ABI_MAJOR}.dll
+
+ # vulkaninfo.exe
+ File /oname=vulkaninfo-$FileVersion.exe ..\build\demos\Release\vulkaninfo.exe
+ SetOutPath "$INSTDIR"
+ File ..\build\demos\Release\vulkaninfo.exe
+ SetShellVarContext all
+ CreateDirectory "$SMPROGRAMS\Vulkan ${PRODUCTVERSION}"
+ CreateDirectory "$SMPROGRAMS\Vulkan ${PRODUCTVERSION}\Demos"
+ CreateShortCut "$SMPROGRAMS\Vulkan ${PRODUCTVERSION}\Demos\vulkaninfo.lnk" "$INSTDIR\vulkaninfo.exe"
-# Uninstaller section start
-Section "uninstall"
+ SetOutPath "$INSTDIR"
+ File ${ICOFILE}
+ File LICENSE.rtf
+ File ConfigLayersAndVulkanDLL.ps1
- ${DisableX64FSRedirection}
- SetRegView 64
+ # Run the ConfigLayersAndVulkanDLL.ps1 script to copy the most recent version of
+ # vulkan-<abimajor>-*.dll to vulkan-<abimajor>.dll, and to set up layer registry
+ # entries to use layers from the corresponding SDK
+ nsExec::ExecToStack 'powershell -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -ExecutionPolicy RemoteSigned -File ConfigLayersAndVulkanDLL.ps1 ${VERSION_ABI_MAJOR}'
- SetOutPath "$INSTDIR"
+ # We are done using ConfigLayersAndVulkanDLL.ps1, delete it. It will be re-installed
+ # by the uninstaller when it needs to be run again during uninstall.
+ Delete ConfigLayersAndVulkanDLL.ps1
- # Set up version number for file names
- ${StrRep} $0 ${VERSION_BUILDNO} "." "-"
- StrCpy $FileVersion ${VERSION_ABI_MAJOR}-${VERSION_API_MAJOR}-${VERSION_MINOR}-${VERSION_PATCH}-$0
+ # Reference count the number of times we have been installed.
+ # The reference count is stored in the regisry value IC
+ ReadRegDword $1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "IC"
+ IntOp $1 $1 + 1
+ WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "IC" $1
- # Decrement the number of times we have been installed.
- ReadRegDword $1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "IC"
- IntOp $1 $1 - 1
- WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "IC" $1
+ # Create the uninstaller
+ WriteUninstaller "$INSTDIR\Uninstall${PRODUCTNAME}.exe"
- # Ref count is in $1. If it is zero, uninstall.
- ${If} $1 <= 0
+ # Modify registry for Programs and Features
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "DisplayName" "Vulkan Run Time Libraries ${PRODUCTVERSION}"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "UninstallString" "$INSTDIR\Uninstall${PRODUCTNAME}.exe"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "Publisher" "LunarG, Inc."
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "DisplayVersion" "${PRODUCTVERSION}"
+ WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "VersionABIMajor" ${VERSION_ABI_MAJOR}
+ WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "VersionAPIMajor" ${VERSION_API_MAJOR}
+ WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "VersionMinor" ${VERSION_MINOR}
+ WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "VersionMinor" ${VERSION_PATCH}.${VERSION_BUILDNO}
+ WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "EstimatedSize" ${ESTIMATEDSIZE}
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "DisplayIcon" "$\"$INSTDIR\${ICOFILE}$\""
+
+ # Possibly install MSVC 2013 redistributables
+ ReadRegDword $1 HKLM "SOFTWARE\Microsoft\DevDiv\vc\Servicing\12.0\RuntimeMinimum" "Install"
+ IntCmp $1 1 RedistributablesInstalled InstallRedistributables InstallRedistributables
+ InstallRedistributables:
+ SetOutPath "$TEMP"
+ File vcredist_x64.exe
+ ExecWait '"$TEMP\vcredist_x64.exe" /passive /norestart'
+ RedistributablesInstalled:
+
+ # Else, running on a 32-bit OS machine
+ ${Else}
+
+ ${Endif}
- # Install the ConfigLayersAndVulkanDLL.ps1 so we can run it.
- # It will be deleted later when we remove the install directory.
- File ConfigLayersAndVulkanDLL.ps1
+SectionEnd
- # Delete vulkaninfo.exe in C:\Windows\System32 and C:\Windows\SysWOW64
- Delete /REBOOTOK $WINDIR\SysWow64\vulkaninfo.exe
- Delete /REBOOTOK "$WINDIR\SysWow64\vulkaninfo-$FileVersion.exe"
- Delete /REBOOTOK $WINDIR\System32\vulkaninfo.exe
- Delete /REBOOTOK "$WINDIR\System32\vulkaninfo-$FileVersion.exe"
-
- # Delete vullkan dll files: vulkan-<majorabi>.dll and vulkan-<majorabi>-<major>-<minor>-<patch>-<buildno>.dll
- Delete /REBOOTOK $WINDIR\SysWow64\vulkan-${VERSION_ABI_MAJOR}.dll
- Delete /REBOOTOK $WINDIR\SysWow64\vulkan-$FileVersion.dll
- Delete /REBOOTOK $WINDIR\System32\vulkan-${VERSION_ABI_MAJOR}.dll
- Delete /REBOOTOK $WINDIR\System32\vulkan-$FileVersion.dll
-
- # Run the ConfigLayersAndVulkanDLL.ps1 script to:
- # Copy the most recent version of vulkan-<abimajor>-*.dll to vulkan-<abimajor>.dll
- # Copy the most recent version of vulkaninfo-<abimajor>-*.exe to vulkaninfo.exe
- # Set up layer registry entries to use layers from the corresponding SDK
- nsExec::ExecToStack 'powershell -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -ExecutionPolicy RemoteSigned -File "$INSTDIR\ConfigLayersAndVulkanDLL.ps1" ${VERSION_ABI_MAJOR}'
-
- # Delete vulkaninfo from start menu.
- # Delete vulkan start menu if the vulkan start menu is empty
- SetShellVarContext all
- Delete "$SMPROGRAMS\Vulkan ${PRODUCTVERSION}\Demos\vulkaninfo.lnk"
- StrCpy $0 "$SMPROGRAMS\Vulkan ${PRODUCTVERSION}\Demos"
- Call un.DeleteDirIfEmpty
- StrCpy $0 "$SMPROGRAMS\Vulkan ${PRODUCTVERSION}"
- Call un.DeleteDirIfEmpty
+# Uninstaller section start
+Section "uninstall"
- # Modify registry for Programs and Features
- DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}"
-
- # Remove files in install dir
- Delete /REBOOTOK "$INSTDIR\LICENSE.rtf"
- Delete /REBOOTOK "$INSTDIR\UninstallVulkanRT.exe"
- Delete /REBOOTOK "$INSTDIR\Vulkan.ico"
- Delete /REBOOTOK "$INSTDIR\ConfigLayersAndVulkanDLL.ps1"
- Delete /REBOOTOK "$INSTDIR\vulkaninfo.exe"
-
- # Need to do a SetOutPath to something outside of INSTDIR,
- # or the uninstall will think INSTDIR is busy
- SetOutPath "$TEMP"
-
- # Remove install directories
- Rmdir /REBOOTOK "$INSTDIR"
- StrCpy $0 "C:\Program Files (x86)\${PRODUCTNAME}"
- Call un.DeleteDirIfEmpty
-
- # If any of the remove commands failed, request a reboot
- IfRebootFlag 0 noreboot
- MessageBox MB_YESNO "A reboot is required to finish the uninstall. Do you wish to reboot now?" IDNO noreboot
- Reboot
- noreboot:
- ${EndIf}
+ # If running on a 64-bit OS machine
+ ${If} ${RunningX64}
+
+ ${DisableX64FSRedirection}
+ SetRegView 64
+
+ SetOutPath "$INSTDIR"
+
+ # Set up version number for file names
+ ${StrRep} $0 ${VERSION_BUILDNO} "." "-"
+ StrCpy $FileVersion ${VERSION_ABI_MAJOR}-${VERSION_API_MAJOR}-${VERSION_MINOR}-${VERSION_PATCH}-$0
+
+ # Decrement the number of times we have been installed.
+ ReadRegDword $1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "IC"
+ IntOp $1 $1 - 1
+ WriteRegDword HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}" "IC" $1
+
+ # Ref count is in $1. If it is zero, uninstall.
+ ${If} $1 <= 0
+
+ # Install the ConfigLayersAndVulkanDLL.ps1 so we can run it.
+ # It will be deleted later when we remove the install directory.
+ File ConfigLayersAndVulkanDLL.ps1
+
+ # Delete vulkaninfo.exe in C:\Windows\System32 and C:\Windows\SysWOW64
+ Delete /REBOOTOK $WINDIR\SysWow64\vulkaninfo.exe
+ Delete /REBOOTOK "$WINDIR\SysWow64\vulkaninfo-$FileVersion.exe"
+ Delete /REBOOTOK $WINDIR\System32\vulkaninfo.exe
+ Delete /REBOOTOK "$WINDIR\System32\vulkaninfo-$FileVersion.exe"
+
+ # Delete vullkan dll files: vulkan-<majorabi>.dll and vulkan-<majorabi>-<major>-<minor>-<patch>-<buildno>.dll
+ Delete /REBOOTOK $WINDIR\SysWow64\vulkan-${VERSION_ABI_MAJOR}.dll
+ Delete /REBOOTOK $WINDIR\SysWow64\vulkan-$FileVersion.dll
+ Delete /REBOOTOK $WINDIR\System32\vulkan-${VERSION_ABI_MAJOR}.dll
+ Delete /REBOOTOK $WINDIR\System32\vulkan-$FileVersion.dll
+
+ # Run the ConfigLayersAndVulkanDLL.ps1 script to:
+ # Copy the most recent version of vulkan-<abimajor>-*.dll to vulkan-<abimajor>.dll
+ # Copy the most recent version of vulkaninfo-<abimajor>-*.exe to vulkaninfo.exe
+ # Set up layer registry entries to use layers from the corresponding SDK
+ nsExec::ExecToStack 'powershell -NoLogo -NonInteractive -WindowStyle Hidden -inputformat none -ExecutionPolicy RemoteSigned -File "$INSTDIR\ConfigLayersAndVulkanDLL.ps1" ${VERSION_ABI_MAJOR}'
+
+ # Delete vulkaninfo from start menu.
+ # Delete vulkan start menu if the vulkan start menu is empty
+ SetShellVarContext all
+ Delete "$SMPROGRAMS\Vulkan ${PRODUCTVERSION}\Demos\vulkaninfo.lnk"
+ StrCpy $0 "$SMPROGRAMS\Vulkan ${PRODUCTVERSION}\Demos"
+ Call un.DeleteDirIfEmpty
+ StrCpy $0 "$SMPROGRAMS\Vulkan ${PRODUCTVERSION}"
+ Call un.DeleteDirIfEmpty
+
+ # Modify registry for Programs and Features
+ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}${PRODUCTVERSION}"
+
+ # Remove files in install dir
+ Delete /REBOOTOK "$INSTDIR\LICENSE.rtf"
+ Delete /REBOOTOK "$INSTDIR\UninstallVulkanRT.exe"
+ Delete /REBOOTOK "$INSTDIR\Vulkan.ico"
+ Delete /REBOOTOK "$INSTDIR\ConfigLayersAndVulkanDLL.ps1"
+ Delete /REBOOTOK "$INSTDIR\vulkaninfo.exe"
+
+ # Need to do a SetOutPath to something outside of INSTDIR,
+ # or the uninstall will think INSTDIR is busy
+ SetOutPath "$TEMP"
+
+ # Remove install directories
+ Rmdir /REBOOTOK "$INSTDIR"
+ StrCpy $0 "C:\Program Files (x86)\${PRODUCTNAME}"
+ Call un.DeleteDirIfEmpty
+
+ # If any of the remove commands failed, request a reboot
+ IfRebootFlag 0 noreboot
+ MessageBox MB_YESNO "A reboot is required to finish the uninstall. Do you wish to reboot now?" IDNO noreboot
+ Reboot
+ noreboot:
+ ${EndIf}
+
+ # Else, running on a 32-bit OS machine
+ ${Else}
+
+ ${Endif}
SectionEnd