-
Notifications
You must be signed in to change notification settings - Fork 119
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Work on installing MSVCRT for bundled Python 3.5
- Loading branch information
Showing
3 changed files
with
171 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
[% extends "pyapp.nsi" %] | ||
|
||
[% block sections %] | ||
!include windowsversion.nsh | ||
!include x64.nsh | ||
|
||
Section "-msvcrt" | ||
${GetWindowsVersion} $R0 | ||
|
||
StrCpy $0 "--" | ||
|
||
${If} ${RunningX64} | ||
${If} $R0 == "8.1" | ||
StrCpy $0 "8.1 x64 URL" | ||
${ElseIf} $R0 == "8" | ||
StrCpy $0 "8 x64 URL" | ||
${ElseIf} $R0 == "7" | ||
StrCpy $0 "7 x64 URL" | ||
${EndIf} | ||
${Else} | ||
${If} $R0 == "8.1" | ||
StrCpy $0 "8.1 x32 URL" | ||
${ElseIf} $R0 == "8" | ||
StrCpy $0 "8 x32 URL" | ||
${ElseIf} $R0 == "7" | ||
StrCpy $0 "7 x32 URL" | ||
${EndIf} | ||
${EndIf} | ||
|
||
IfFileExists "$SYSDIR\ucrtbase.dll" skip_msvcrt | ||
StrCmp $0 "--" skip_msvcrt | ||
|
||
DetailPrint "Downloading and installing MSVCRT from $0" | ||
NSISdl::download $0 msvcrt.msu | ||
ExecWait 'wusa /quiet /norestart "$INSTDIR\msvcrt.msu"' $1 | ||
Delete "$INSTDIR\msvcrt.msu" | ||
|
||
# This WUSA exit code means a reboot is needed. | ||
${If} $1 = 0x00240005 | ||
SetRebootFlag true | ||
${EndIf} | ||
|
||
skip_msvcrt: | ||
SectionEnd | ||
[% endblock sections %] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
; GetWindowsVersion 4.1 (2014-10-01) | ||
; | ||
; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/ | ||
; Update by Joost Verburg | ||
; Update (Macro, Define, Windows 7 detection) - John T. Haller of PortableApps.com - 2008-01-07 | ||
; Update (Windows 8 detection) - Marek Mizanin (Zanir) - 2013-02-07 | ||
; Update (Windows 8.1 detection) - John T. Haller of PortableApps.com - 2014-04-04 | ||
; Update (Windows 10 TP detection) - John T. Haller of PortableApps.com - 2014-10-01 | ||
; Got from http://nsis.sourceforge.net/Get_Windows_version | ||
; | ||
; Usage: ${GetWindowsVersion} $R0 | ||
; | ||
; $R0 contains: 95, 98, ME, NT x.x, 2000, XP, 2003, Vista, 7, 8, 8.1, 10.0 or '' (for unknown) | ||
|
||
Function GetWindowsVersion | ||
|
||
Push $R0 | ||
Push $R1 | ||
|
||
ClearErrors | ||
|
||
ReadRegStr $R0 HKLM \ | ||
"SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion | ||
|
||
IfErrors 0 lbl_winnt | ||
|
||
; we are not NT | ||
ReadRegStr $R0 HKLM \ | ||
"SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber | ||
|
||
StrCpy $R1 $R0 1 | ||
StrCmp $R1 '4' 0 lbl_error | ||
|
||
StrCpy $R1 $R0 3 | ||
|
||
StrCmp $R1 '4.0' lbl_win32_95 | ||
StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98 | ||
|
||
lbl_win32_95: | ||
StrCpy $R0 '95' | ||
Goto lbl_done | ||
|
||
lbl_win32_98: | ||
StrCpy $R0 '98' | ||
Goto lbl_done | ||
|
||
lbl_win32_ME: | ||
StrCpy $R0 'ME' | ||
Goto lbl_done | ||
|
||
lbl_winnt: | ||
|
||
StrCpy $R1 $R0 1 | ||
|
||
StrCmp $R1 '3' lbl_winnt_x | ||
StrCmp $R1 '4' lbl_winnt_x | ||
|
||
StrCpy $R1 $R0 3 | ||
|
||
StrCmp $R1 '5.0' lbl_winnt_2000 | ||
StrCmp $R1 '5.1' lbl_winnt_XP | ||
StrCmp $R1 '5.2' lbl_winnt_2003 | ||
StrCmp $R1 '6.0' lbl_winnt_vista | ||
StrCmp $R1 '6.1' lbl_winnt_7 | ||
StrCmp $R1 '6.2' lbl_winnt_8 | ||
StrCmp $R1 '6.3' lbl_winnt_81 | ||
StrCmp $R1 '6.4' lbl_winnt_10 lbl_error | ||
|
||
lbl_winnt_x: | ||
StrCpy $R0 "NT $R0" 6 | ||
Goto lbl_done | ||
|
||
lbl_winnt_2000: | ||
Strcpy $R0 '2000' | ||
Goto lbl_done | ||
|
||
lbl_winnt_XP: | ||
Strcpy $R0 'XP' | ||
Goto lbl_done | ||
|
||
lbl_winnt_2003: | ||
Strcpy $R0 '2003' | ||
Goto lbl_done | ||
|
||
lbl_winnt_vista: | ||
Strcpy $R0 'Vista' | ||
Goto lbl_done | ||
|
||
lbl_winnt_7: | ||
Strcpy $R0 '7' | ||
Goto lbl_done | ||
|
||
lbl_winnt_8: | ||
Strcpy $R0 '8' | ||
Goto lbl_done | ||
|
||
lbl_winnt_81: | ||
Strcpy $R0 '8.1' | ||
Goto lbl_done | ||
|
||
lbl_winnt_10: | ||
Strcpy $R0 '10.0' | ||
Goto lbl_done | ||
|
||
lbl_error: | ||
Strcpy $R0 '' | ||
lbl_done: | ||
|
||
Pop $R1 | ||
Exch $R0 | ||
|
||
FunctionEnd | ||
|
||
!macro GetWindowsVersion OUTPUT_VALUE | ||
Call GetWindowsVersion | ||
Pop `${OUTPUT_VALUE}` | ||
!macroend | ||
|
||
!define GetWindowsVersion '!insertmacro "GetWindowsVersion"' |