mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-01 09:23:03 -04:00
Windows: add right-click file associations for .pz/.mf/.egg/.bam files, produce .zip files containing the .pdb files
This commit is contained in:
parent
b53d58c5c6
commit
4fb5d19df9
@ -42,7 +42,7 @@ SetCompressor ${COMPRESSOR}
|
|||||||
!define MUI_FINISHPAGE_RUN_TEXT "Visit the Panda3D Manual"
|
!define MUI_FINISHPAGE_RUN_TEXT "Visit the Panda3D Manual"
|
||||||
|
|
||||||
!insertmacro MUI_PAGE_WELCOME
|
!insertmacro MUI_PAGE_WELCOME
|
||||||
!insertmacro MUI_PAGE_LICENSE "../doc/LICENSE"
|
!insertmacro MUI_PAGE_LICENSE "${SOURCE}/doc/LICENSE"
|
||||||
!insertmacro MUI_PAGE_DIRECTORY
|
!insertmacro MUI_PAGE_DIRECTORY
|
||||||
|
|
||||||
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE ConfirmPythonSelection
|
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE ConfirmPythonSelection
|
||||||
@ -61,7 +61,7 @@ SetCompressor ${COMPRESSOR}
|
|||||||
ShowInstDetails hide
|
ShowInstDetails hide
|
||||||
ShowUninstDetails hide
|
ShowUninstDetails hide
|
||||||
|
|
||||||
LicenseData "${LICENSE}"
|
LicenseData "${SOURCE}/doc/LICENSE"
|
||||||
|
|
||||||
InstType "Full (Recommended)"
|
InstType "Full (Recommended)"
|
||||||
InstType "Minimal"
|
InstType "Minimal"
|
||||||
@ -259,6 +259,26 @@ Section "Tools and utilities" SecTools
|
|||||||
File /nonfatal /r "${BUILT}\bin\*.p3d"
|
File /nonfatal /r "${BUILT}\bin\*.p3d"
|
||||||
SetOutPath "$INSTDIR\NSIS"
|
SetOutPath "$INSTDIR\NSIS"
|
||||||
File /r /x CVS "${NSISDIR}\*"
|
File /r /x CVS "${NSISDIR}\*"
|
||||||
|
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Model" "" "Panda3D model/animation"
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Model\DefaultIcon" "" "$INSTDIR\bin\pview.exe"
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Model\shell" "" "open"
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Model\shell\open\command" "" '"$INSTDIR\bin\pview.exe" -l "%1"'
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Model\shell\compress" "" "Compress to .pz"
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Model\shell\compress\command" "" '"$INSTDIR\bin\pzip.exe" "%1"'
|
||||||
|
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Compressed" "" "Compressed file"
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Compressed\DefaultIcon" "" "$INSTDIR\bin\pzip.exe"
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Compressed\shell" "" "open"
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Compressed\shell\open\command" "" '"$INSTDIR\bin\pview.exe" -l "%1"'
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Compressed\shell\decompress" "" "Decompress"
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Compressed\shell\decompress\command" "" '"$INSTDIR\bin\punzip.exe" "%1"'
|
||||||
|
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Multifile" "" "Panda3D Multifile"
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Multifile\DefaultIcon" "" "$INSTDIR\bin\multify.exe"
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Multifile\shell" "" "open"
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Multifile\shell\extract" "" "Extract here"
|
||||||
|
WriteRegStr HKCU "Software\Classes\Panda3D.Multifile\shell\extract\command" "" '"$INSTDIR\bin\multify.exe" -xf "%1"'
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
SectionGroup "Python support"
|
SectionGroup "Python support"
|
||||||
@ -369,7 +389,7 @@ SectionGroup "Python support"
|
|||||||
File /nonfatal "${BUILT}\bin\python*.dll"
|
File /nonfatal "${BUILT}\bin\python*.dll"
|
||||||
|
|
||||||
SetOutPath "$INSTDIR\python"
|
SetOutPath "$INSTDIR\python"
|
||||||
File /r "${BUILT}\python\*"
|
File /r /x *.pdb "${BUILT}\python\*"
|
||||||
|
|
||||||
SetDetailsPrint both
|
SetDetailsPrint both
|
||||||
DetailPrint "Adding registry keys for Python..."
|
DetailPrint "Adding registry keys for Python..."
|
||||||
@ -593,6 +613,33 @@ Section -post
|
|||||||
SetOutPath $INSTDIR
|
SetOutPath $INSTDIR
|
||||||
CreateShortcut "$SMPROGRAMS\${TITLE}\Uninstall ${TITLE}.lnk" "$INSTDIR\uninst.exe" ""
|
CreateShortcut "$SMPROGRAMS\${TITLE}\Uninstall ${TITLE}.lnk" "$INSTDIR\uninst.exe" ""
|
||||||
|
|
||||||
|
SetDetailsPrint both
|
||||||
|
DetailPrint "Registering file type associations..."
|
||||||
|
SetDetailsPrint listonly
|
||||||
|
|
||||||
|
; Even though we need the runtime to run these, we might as well tell
|
||||||
|
; Windows what this kind of file is.
|
||||||
|
WriteRegStr HKCU "Software\Classes\.p3d" "" "Panda3D applet"
|
||||||
|
WriteRegStr HKCU "Software\Classes\.p3d" "Content Type" "application/x-panda3d"
|
||||||
|
WriteRegStr HKCU "Software\Classes\.p3d" "PerceivedType" "application"
|
||||||
|
|
||||||
|
; Register various model files
|
||||||
|
WriteRegStr HKCU "Software\Classes\.egg" "" "Panda3D.Model"
|
||||||
|
WriteRegStr HKCU "Software\Classes\.egg" "Content Type" "application/x-egg"
|
||||||
|
WriteRegStr HKCU "Software\Classes\.egg" "PerceivedType" "gamemedia"
|
||||||
|
WriteRegStr HKCU "Software\Classes\.bam" "" "Panda3D.Model"
|
||||||
|
WriteRegStr HKCU "Software\Classes\.bam" "Content Type" "application/x-bam"
|
||||||
|
WriteRegStr HKCU "Software\Classes\.bam" "PerceivedType" "gamemedia"
|
||||||
|
WriteRegStr HKCU "Software\Classes\.pz" "" "Panda3D.Compressed"
|
||||||
|
WriteRegStr HKCU "Software\Classes\.pz" "PerceivedType" "compressed"
|
||||||
|
WriteRegStr HKCU "Software\Classes\.mf" "" "Panda3D.Multifile"
|
||||||
|
WriteRegStr HKCU "Software\Classes\.mf" "PerceivedType" "compressed"
|
||||||
|
|
||||||
|
; For convenience, if nobody registered .pyd, we will.
|
||||||
|
ReadRegStr $0 HKCR "Software\Classes\.pyd" ""
|
||||||
|
StrCmp $0 "" 0 +2
|
||||||
|
WriteRegStr HKCU "Software\Classes\.pyd" "" "dllfile"
|
||||||
|
|
||||||
SetDetailsPrint both
|
SetDetailsPrint both
|
||||||
DetailPrint "Adding directories to system PATH..."
|
DetailPrint "Adding directories to system PATH..."
|
||||||
SetDetailsPrint listonly
|
SetDetailsPrint listonly
|
||||||
@ -628,15 +675,28 @@ Section Uninstall
|
|||||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${TITLE}"
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${TITLE}"
|
||||||
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${TITLE}"
|
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${TITLE}"
|
||||||
|
|
||||||
|
ReadRegStr $0 HKCU "Software\Classes\Panda3D.Model\DefaultIcon" ""
|
||||||
|
StrCmp $0 "$INSTDIR\bin\pview.exe" 0 +3
|
||||||
|
DeleteRegKey HKCU "Software\Classes\Panda3D.Model\DefaultIcon"
|
||||||
|
DeleteRegKey HKCU "Software\Classes\Panda3D.Model\shell"
|
||||||
|
|
||||||
|
ReadRegStr $0 HKCU "Software\Classes\Panda3D.Compressed\DefaultIcon" ""
|
||||||
|
StrCmp $0 "$INSTDIR\bin\pzip.exe" 0 +3
|
||||||
|
DeleteRegKey HKCU "Software\Classes\Panda3D.Compressed\DefaultIcon"
|
||||||
|
DeleteRegKey HKCU "Software\Classes\Panda3D.Compressed\shell"
|
||||||
|
|
||||||
|
ReadRegStr $0 HKCU "Software\Classes\Panda3D.Multifile\DefaultIcon" ""
|
||||||
|
StrCmp $0 "$INSTDIR\bin\multify.exe" 0 +3
|
||||||
|
DeleteRegKey HKCU "Software\Classes\Panda3D.Multifile\DefaultIcon"
|
||||||
|
DeleteRegKey HKCU "Software\Classes\Panda3D.Multifile\shell"
|
||||||
|
|
||||||
ReadRegStr $0 HKLM "Software\Python\PythonCore\${PYVER}\InstallPath" ""
|
ReadRegStr $0 HKLM "Software\Python\PythonCore\${PYVER}\InstallPath" ""
|
||||||
StrCmp $0 "$INSTDIR\python" 0 SkipUnRegHKLM
|
StrCmp $0 "$INSTDIR\python" 0 +2
|
||||||
DeleteRegKey HKLM "Software\Python\PythonCore\${PYVER}"
|
DeleteRegKey HKLM "Software\Python\PythonCore\${PYVER}"
|
||||||
SkipUnRegHKLM:
|
|
||||||
|
|
||||||
ReadRegStr $0 HKCU "Software\Python\PythonCore\${PYVER}\InstallPath" ""
|
ReadRegStr $0 HKCU "Software\Python\PythonCore\${PYVER}\InstallPath" ""
|
||||||
StrCmp $0 "$INSTDIR\python" 0 SkipUnRegHKCU
|
StrCmp $0 "$INSTDIR\python" 0 +2
|
||||||
DeleteRegKey HKCU "Software\Python\PythonCore\${PYVER}"
|
DeleteRegKey HKCU "Software\Python\PythonCore\${PYVER}"
|
||||||
SkipUnRegHKCU:
|
|
||||||
|
|
||||||
SetDetailsPrint both
|
SetDetailsPrint both
|
||||||
DetailPrint "Deleting files..."
|
DetailPrint "Deleting files..."
|
||||||
@ -702,9 +762,13 @@ SectionEnd
|
|||||||
!endif
|
!endif
|
||||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecTools} $(DESC_SecTools)
|
!insertmacro MUI_DESCRIPTION_TEXT ${SecTools} $(DESC_SecTools)
|
||||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings} $(DESC_SecPyBindings)
|
!insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings} $(DESC_SecPyBindings)
|
||||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecPython} $(DESC_SecPython)
|
!ifdef HAVE_PYTHON
|
||||||
|
!insertmacro MUI_DESCRIPTION_TEXT ${SecPython} $(DESC_SecPython)
|
||||||
|
!endif
|
||||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecHeadersLibs} $(DESC_SecHeadersLibs)
|
!insertmacro MUI_DESCRIPTION_TEXT ${SecHeadersLibs} $(DESC_SecHeadersLibs)
|
||||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecSamples} $(DESC_SecSamples)
|
!ifdef HAVE_SAMPLES
|
||||||
|
!insertmacro MUI_DESCRIPTION_TEXT ${SecSamples} $(DESC_SecSamples)
|
||||||
|
!endif
|
||||||
!ifdef HAVE_MAX_PLUGINS
|
!ifdef HAVE_MAX_PLUGINS
|
||||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecMaxPlugins} $(DESC_SecMaxPlugins)
|
!insertmacro MUI_DESCRIPTION_TEXT ${SecMaxPlugins} $(DESC_SecMaxPlugins)
|
||||||
!endif
|
!endif
|
||||||
|
@ -6538,17 +6538,14 @@ def MakeInstallerNSIS(file, title, installdir):
|
|||||||
if (os.path.exists("nsis-output.exe")):
|
if (os.path.exists("nsis-output.exe")):
|
||||||
os.remove("nsis-output.exe")
|
os.remove("nsis-output.exe")
|
||||||
WriteFile(GetOutputDir()+"/tmp/__init__.py", "")
|
WriteFile(GetOutputDir()+"/tmp/__init__.py", "")
|
||||||
psource = os.path.abspath(".")
|
|
||||||
panda = os.path.abspath(GetOutputDir())
|
|
||||||
|
|
||||||
nsis_defs = {
|
nsis_defs = {
|
||||||
'COMPRESSOR' : COMPRESSOR,
|
'COMPRESSOR' : COMPRESSOR,
|
||||||
'TITLE' : title,
|
'TITLE' : title,
|
||||||
'INSTALLDIR' : installdir,
|
'INSTALLDIR' : installdir,
|
||||||
'OUTFILE' : os.path.join(psource, 'nsis-output.exe'),
|
'OUTFILE' : '..\\' + file,
|
||||||
'LICENSE' : os.path.join(panda, 'LICENSE'),
|
'BUILT' : '..\\' + GetOutputDir(),
|
||||||
'BUILT' : panda,
|
'SOURCE' : '..',
|
||||||
'SOURCE' : psource,
|
|
||||||
'PYVER' : SDK["PYTHONVERSION"][6:9],
|
'PYVER' : SDK["PYTHONVERSION"][6:9],
|
||||||
'REGVIEW' : regview,
|
'REGVIEW' : regview,
|
||||||
}
|
}
|
||||||
@ -6562,10 +6559,29 @@ def MakeInstallerNSIS(file, title, installdir):
|
|||||||
for item in nsis_defs.items():
|
for item in nsis_defs.items():
|
||||||
cmd += ' -D%s="%s"' % item
|
cmd += ' -D%s="%s"' % item
|
||||||
|
|
||||||
cmd += ' "%s"' % (os.path.join(psource, 'makepanda', 'installer.nsi'))
|
cmd += ' "makepanda\installer.nsi"'
|
||||||
oscmd(cmd)
|
oscmd(cmd)
|
||||||
os.rename("nsis-output.exe", file)
|
|
||||||
|
|
||||||
|
def MakeDebugSymbolArchive(zipname, dirname):
|
||||||
|
import zipfile
|
||||||
|
zip = zipfile.ZipFile(zipname, 'w', zipfile.ZIP_DEFLATED)
|
||||||
|
|
||||||
|
for fn in glob.glob(os.path.join(GetOutputDir(), 'bin', '*.pdb')):
|
||||||
|
zip.write(fn, dirname + '/bin/' + os.path.basename(fn))
|
||||||
|
|
||||||
|
for fn in glob.glob(os.path.join(GetOutputDir(), 'panda3d', '*.pdb')):
|
||||||
|
zip.write(fn, dirname + '/panda3d/' + os.path.basename(fn))
|
||||||
|
|
||||||
|
for fn in glob.glob(os.path.join(GetOutputDir(), 'plugins', '*.pdb')):
|
||||||
|
zip.write(fn, dirname + '/plugins/' + os.path.basename(fn))
|
||||||
|
|
||||||
|
for fn in glob.glob(os.path.join(GetOutputDir(), 'python', '*.pdb')):
|
||||||
|
zip.write(fn, dirname + '/python/' + os.path.basename(fn))
|
||||||
|
|
||||||
|
for fn in glob.glob(os.path.join(GetOutputDir(), 'python', 'DLLs', '*.pdb')):
|
||||||
|
zip.write(fn, dirname + '/python/DLLs/' + os.path.basename(fn))
|
||||||
|
|
||||||
|
zip.close()
|
||||||
|
|
||||||
INSTALLER_DEB_FILE="""
|
INSTALLER_DEB_FILE="""
|
||||||
Package: panda3dMAJOR
|
Package: panda3dMAJOR
|
||||||
@ -7135,7 +7151,7 @@ try:
|
|||||||
target = GetTarget()
|
target = GetTarget()
|
||||||
if target == 'windows':
|
if target == 'windows':
|
||||||
fn = "Panda3D-"
|
fn = "Panda3D-"
|
||||||
dir = "C:\\Panda3D-" + VERSION
|
dir = "Panda3D-" + VERSION
|
||||||
|
|
||||||
if RUNTIME:
|
if RUNTIME:
|
||||||
fn += "Runtime-"
|
fn += "Runtime-"
|
||||||
@ -7154,8 +7170,9 @@ try:
|
|||||||
fn += '-x64'
|
fn += '-x64'
|
||||||
dir += '-x64'
|
dir += '-x64'
|
||||||
|
|
||||||
fn += '.exe'
|
MakeInstallerNSIS(fn + '.exe', title, 'C:\\' + dir)
|
||||||
MakeInstallerNSIS(fn, title, dir)
|
if not RUNTIME:
|
||||||
|
MakeDebugSymbolArchive(fn + '-pdb.zip', dir)
|
||||||
elif (target == 'linux'):
|
elif (target == 'linux'):
|
||||||
MakeInstallerLinux()
|
MakeInstallerLinux()
|
||||||
elif (target == 'darwin'):
|
elif (target == 'darwin'):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user