mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -04:00
Windows installer improvements and fixes:
- copy .ico file - write installer log to install.log - restore python DLL to bin directory
This commit is contained in:
parent
c4d232b0be
commit
127cbc3b38
@ -141,8 +141,9 @@ SectionGroup "Panda3D Libraries"
|
||||
SetDetailsPrint listonly
|
||||
|
||||
SetOutPath "$INSTDIR"
|
||||
File "${BUILT}\LICENSE"
|
||||
File /r /x CVS "${BUILT}\ReleaseNotes"
|
||||
File /nonfatal "${BUILT}\LICENSE"
|
||||
File /nonfatal "${BUILT}\ReleaseNotes"
|
||||
File /nonfatal "${BUILT}\pandaIcon.ico"
|
||||
|
||||
SetOutPath $INSTDIR\etc
|
||||
File /r "${BUILT}\etc\*"
|
||||
@ -532,15 +533,17 @@ Section "Sample programs" SecSamples
|
||||
WriteINIStr $INSTDIR\Manual.url "InternetShortcut" "URL" "https://www.panda3d.org/manual/index.php"
|
||||
WriteINIStr $INSTDIR\Samples.url "InternetShortcut" "URL" "https://www.panda3d.org/manual/index.php/Sample_Programs_in_the_Distribution"
|
||||
SetOutPath $INSTDIR
|
||||
CreateShortCut "$SMPROGRAMS\${TITLE}\Panda3D Manual.lnk" "$INSTDIR\Manual.url" "" "$INSTDIR\bin\eggcacher.exe" 0 "" "" "Panda3D Manual"
|
||||
CreateShortCut "$SMPROGRAMS\${TITLE}\Panda3D Website.lnk" "$INSTDIR\Website.url" "" "$INSTDIR\bin\eggcacher.exe" 0 "" "" "Panda3D Website"
|
||||
CreateShortCut "$SMPROGRAMS\${TITLE}\Sample Program Manual.lnk" "$INSTDIR\Samples.url" "" "$INSTDIR\bin\eggcacher.exe" 0 "" "" "Sample Program Manual"
|
||||
CreateShortCut "$SMPROGRAMS\${TITLE}\Panda3D Manual.lnk" "$INSTDIR\Manual.url" "" "$INSTDIR\pandaIcon.ico" 0 "" "" "Panda3D Manual"
|
||||
CreateShortCut "$SMPROGRAMS\${TITLE}\Panda3D Website.lnk" "$INSTDIR\Website.url" "" "$INSTDIR\pandaIcon.ico" 0 "" "" "Panda3D Website"
|
||||
CreateShortCut "$SMPROGRAMS\${TITLE}\Sample Program Manual.lnk" "$INSTDIR\Samples.url" "" "$INSTDIR\pandaIcon.ico" 0 "" "" "Sample Program Manual"
|
||||
|
||||
FindFirst $0 $1 $INSTDIR\samples\*
|
||||
loop:
|
||||
StrCmp $1 "" done
|
||||
StrCmp $1 "." next
|
||||
StrCmp $1 ".." next
|
||||
FindFirst $2 $3 $INSTDIR\samples\$1\*.py
|
||||
StrCmp $3 "" next
|
||||
Push $1
|
||||
Push "-"
|
||||
Push " "
|
||||
@ -557,14 +560,13 @@ Section "Sample programs" SecSamples
|
||||
DetailPrint "Creating shortcuts for sample program $READABLE"
|
||||
CreateDirectory "$SMPROGRAMS\${TITLE}\Sample Programs\$READABLE"
|
||||
SetOutPath $INSTDIR\samples\$1
|
||||
WriteINIStr $INSTDIR\samples\$1\ManualPage.url "InternetShortcut" "URL" "http://panda3d.org/wiki/index.php/Sample_Programs:_$MANPAGE"
|
||||
CreateShortCut "$SMPROGRAMS\${TITLE}\Sample Programs\$READABLE\Manual Page.lnk" "$INSTDIR\samples\$1\ManualPage.url" "" "$INSTDIR\bin\eggcacher.exe" 0 "" "" "Manual Entry on this Sample Program"
|
||||
WriteINIStr $INSTDIR\samples\$1\ManualPage.url "InternetShortcut" "URL" "https://www.panda3d.org/wiki/index.php/Sample_Programs:_$MANPAGE"
|
||||
CreateShortCut "$SMPROGRAMS\${TITLE}\Sample Programs\$READABLE\Manual Page.lnk" "$INSTDIR\samples\$1\ManualPage.url" "" "$INSTDIR\pandaIcon.ico" 0 "" "" "Manual Entry on this Sample Program"
|
||||
CreateShortCut "$SMPROGRAMS\${TITLE}\Sample Programs\$READABLE\View Source Code.lnk" "$INSTDIR\samples\$1"
|
||||
FindFirst $2 $3 $INSTDIR\samples\$1\*.py
|
||||
iloop:
|
||||
StrCmp $3 "" idone
|
||||
CreateShortCut "$SMPROGRAMS\${TITLE}\Sample Programs\$READABLE\Run $3.lnk" "$INSTDIR\python\python.exe" "-E $3" "$INSTDIR\bin\eggcacher.exe" 0 SW_SHOWMINIMIZED "" "Run $3"
|
||||
CreateShortCut "$INSTDIR\samples\$1\Run $3.lnk" "$INSTDIR\python\python.exe" "-E $3" "$INSTDIR\bin\eggcacher.exe" 0 SW_SHOWMINIMIZED "" "Run $3"
|
||||
CreateShortCut "$SMPROGRAMS\${TITLE}\Sample Programs\$READABLE\Run $3.lnk" "$INSTDIR\python\python.exe" "-E $3" "$INSTDIR\pandaIcon.ico" 0 SW_SHOWMINIMIZED "" "Run $3"
|
||||
CreateShortCut "$INSTDIR\samples\$1\Run $3.lnk" "$INSTDIR\python\python.exe" "-E $3" "$INSTDIR\pandaIcon.ico" 0 SW_SHOWMINIMIZED "" "Run $3"
|
||||
FindNext $2 $3
|
||||
goto iloop
|
||||
idone:
|
||||
@ -684,6 +686,10 @@ Section -post
|
||||
DetailPrint "Broadcasting WM_WININICHANGE message..."
|
||||
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=500
|
||||
|
||||
# Now dump the log to disk.
|
||||
StrCpy $0 "$INSTDIR\install.log"
|
||||
Push $0
|
||||
Call DumpLog
|
||||
SectionEnd
|
||||
|
||||
Section Uninstall
|
||||
@ -1235,3 +1241,47 @@ done:
|
||||
Exch $R3
|
||||
|
||||
FunctionEnd
|
||||
|
||||
!define LVM_GETITEMCOUNT 0x1004
|
||||
!define LVM_GETITEMTEXT 0x102D
|
||||
|
||||
Function DumpLog
|
||||
Exch $5
|
||||
Push $0
|
||||
Push $1
|
||||
Push $2
|
||||
Push $3
|
||||
Push $4
|
||||
Push $6
|
||||
|
||||
FindWindow $0 "#32770" "" $HWNDPARENT
|
||||
GetDlgItem $0 $0 1016
|
||||
StrCmp $0 0 exit
|
||||
FileOpen $5 $5 "w"
|
||||
StrCmp $5 "" exit
|
||||
SendMessage $0 ${LVM_GETITEMCOUNT} 0 0 $6
|
||||
System::Alloc ${NSIS_MAX_STRLEN}
|
||||
Pop $3
|
||||
StrCpy $2 0
|
||||
System::Call "*(i, i, i, i, i, i, i, i, i) i \
|
||||
(0, 0, 0, 0, 0, r3, ${NSIS_MAX_STRLEN}) .r1"
|
||||
loop: StrCmp $2 $6 done
|
||||
System::Call "User32::SendMessageA(i, i, i, i) i \
|
||||
($0, ${LVM_GETITEMTEXT}, $2, r1)"
|
||||
System::Call "*$3(&t${NSIS_MAX_STRLEN} .r4)"
|
||||
FileWrite $5 "$4$\r$\n"
|
||||
IntOp $2 $2 + 1
|
||||
Goto loop
|
||||
done:
|
||||
FileClose $5
|
||||
System::Free $1
|
||||
System::Free $3
|
||||
exit:
|
||||
Pop $6
|
||||
Pop $4
|
||||
Pop $3
|
||||
Pop $2
|
||||
Pop $1
|
||||
Pop $0
|
||||
Exch $5
|
||||
FunctionEnd
|
||||
|
@ -2871,11 +2871,13 @@ if tp_dir is not None:
|
||||
CopyAllFiles(GetOutputDir() + "/bin/", tp_dir + "extras/bin/")
|
||||
|
||||
if not PkgSkip("PYTHON") and not RTDIST:
|
||||
#XXX rdb I don't think we need to copy over the Python DLL, do we?
|
||||
#pydll = "/" + SDK["PYTHONVERSION"].replace(".", "")
|
||||
#if (GetOptimize() <= 2): pydll += "_d.dll"
|
||||
#else: pydll += ".dll"
|
||||
#CopyFile(GetOutputDir() + "/bin" + pydll, SDK["PYTHON"] + pydll)
|
||||
# We need to copy the Python DLL to the bin directory for now.
|
||||
pydll = "/" + SDK["PYTHONVERSION"].replace(".", "")
|
||||
if GetOptimize() <= 2:
|
||||
pydll += "_d.dll"
|
||||
else:
|
||||
pydll += ".dll"
|
||||
CopyFile(GetOutputDir() + "/bin" + pydll, SDK["PYTHON"] + pydll)
|
||||
|
||||
#for fn in glob.glob(SDK["PYTHON"] + "/vcruntime*.dll"):
|
||||
# CopyFile(GetOutputDir() + "/bin/", fn)
|
||||
@ -2949,6 +2951,7 @@ if GetTarget() == 'windows':
|
||||
# Convert to Windows newlines so they can be opened by notepad.
|
||||
WriteFile(GetOutputDir() + "/LICENSE", ReadFile("doc/LICENSE"), newline='\r\n')
|
||||
WriteFile(GetOutputDir() + "/ReleaseNotes", ReadFile("doc/ReleaseNotes"), newline='\r\n')
|
||||
CopyFile(GetOutputDir() + "/pandaIcon.ico", "panda/src/configfiles/pandaIcon.ico")
|
||||
else:
|
||||
CopyFile(GetOutputDir()+"/", "doc/LICENSE")
|
||||
CopyFile(GetOutputDir()+"/", "doc/ReleaseNotes")
|
||||
@ -6596,7 +6599,7 @@ def MakeInstallerNSIS(file, title, installdir):
|
||||
AddToPathEnv("PATH", GetOutputDir() + "\\bin")
|
||||
AddToPathEnv("PATH", GetOutputDir() + "\\plugins")
|
||||
|
||||
cmd = sys.executable + " -B -u direct\\src\\plugin_installer\\make_installer.py"
|
||||
cmd = sys.executable + " -B -u " + os.path.join("direct", "src", "plugin_installer", "make_installer.py")
|
||||
cmd += " --version %s --regview %s" % (VERSION, regview)
|
||||
|
||||
if GetTargetArch() == 'x64':
|
||||
@ -6605,7 +6608,7 @@ def MakeInstallerNSIS(file, title, installdir):
|
||||
cmd += " --install \"$PROGRAMFILES32\\Panda3D\" "
|
||||
|
||||
oscmd(cmd)
|
||||
shutil.move("direct\\src\\plugin_installer\\p3d-setup.exe", file)
|
||||
shutil.move(os.path.join("direct", "src", "plugin_installer", "p3d-setup.exe"), file)
|
||||
return
|
||||
|
||||
print("Building "+title+" installer at %s" % (file))
|
||||
|
Loading…
x
Reference in New Issue
Block a user