forked from bartvdbraak/blender
4cf3c94958
.blender/scripts folder.
337 lines
9.2 KiB
Plaintext
337 lines
9.2 KiB
Plaintext
;
|
|
; $Id$
|
|
;
|
|
; Blender Self-Installer for Windows (NSIS - http://nsis.sourceforge.net)
|
|
;
|
|
|
|
!include "MUI.nsh"
|
|
|
|
Name "Blender VERSION"
|
|
|
|
!define MUI_ABORTWARNING
|
|
|
|
!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of Blender.\r\n\r\nIt is recommended that you close all other applications before starting Setup.\r\n\r\nNote to Win2k/XP users: You may require administrator privileges to install Blender successfully."
|
|
!define MUI_WELCOMEFINISHPAGE_BITMAP "01.installer.bmp"
|
|
!define MUI_HEADERIMAGE
|
|
!define MUI_HEADERIMAGE_BITMAP "00.header.bmp"
|
|
!define MUI_COMPONENTSPAGE_SMALLDESC
|
|
!define MUI_FINISHPAGE_RUN "$INSTDIR\blender.exe"
|
|
!define MUI_CHECKBITMAP "00.checked.bmp"
|
|
|
|
!insertmacro MUI_PAGE_WELCOME
|
|
!insertmacro MUI_PAGE_LICENSE "DISTDIR\Copyright.txt"
|
|
!insertmacro MUI_PAGE_COMPONENTS
|
|
|
|
!insertmacro MUI_PAGE_DIRECTORY
|
|
Page custom DataLocation
|
|
!insertmacro MUI_PAGE_INSTFILES
|
|
!insertmacro MUI_PAGE_FINISH
|
|
|
|
!insertmacro MUI_UNPAGE_WELCOME
|
|
!insertmacro MUI_UNPAGE_CONFIRM
|
|
!insertmacro MUI_UNPAGE_INSTFILES
|
|
!insertmacro MUI_UNPAGE_FINISH
|
|
|
|
|
|
Icon "00.installer.ico"
|
|
UninstallIcon "00.installer.ico"
|
|
|
|
;--------------------------------
|
|
;Languages
|
|
|
|
!insertmacro MUI_LANGUAGE "English"
|
|
|
|
;--------------------------------
|
|
;Language Strings
|
|
|
|
;Description
|
|
LangString DESC_SecCopyUI ${LANG_ENGLISH} "Copy all required files to the application folder."
|
|
LangString DESC_Section2 ${LANG_ENGLISH} "Add shortcut items to the Start Menu. (Recommended)"
|
|
LangString DESC_Section3 ${LANG_ENGLISH} "Add a shortcut to Blender on your desktop."
|
|
LangString DESC_Section4 ${LANG_ENGLISH} "Blender can register itself with .blend files to allow double-clicking from Windows Explorer, etc."
|
|
LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Specify User Data Location"
|
|
;--------------------------------
|
|
;Data
|
|
|
|
Caption "Blender VERSION Installer"
|
|
OutFile "DISTDIR\..\blender-VERSION-windows.exe"
|
|
|
|
InstallDir "$PROGRAMFILES\Blender Foundation\Blender"
|
|
|
|
BrandingText "http://www.blender.org/bf"
|
|
ComponentText "This will install Blender VERSION on your computer."
|
|
|
|
DirText "Use the field below to specify the folder where you want Blender to be copied to. To specify a different folder, type a new name or use the Browse button to select an existing folder."
|
|
|
|
SilentUnInstall normal
|
|
|
|
; GetWindowsVersion
|
|
;
|
|
; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/
|
|
; Updated by Joost Verburg
|
|
;
|
|
; Returns on top of stack
|
|
;
|
|
; Windows Version (95, 98, ME, NT x.x, 2000, XP, 2003)
|
|
; or
|
|
; '' (Unknown Windows Version)
|
|
;
|
|
; Usage:
|
|
; Call GetWindowsVersion
|
|
; Pop $R0
|
|
; ; at this point $R0 is "NT 4.0" or whatnot
|
|
|
|
Function GetWindowsVersion
|
|
|
|
Push $R0
|
|
Push $R1
|
|
|
|
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 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_error:
|
|
Strcpy $R0 ''
|
|
lbl_done:
|
|
|
|
Pop $R1
|
|
Exch $R0
|
|
|
|
FunctionEnd
|
|
|
|
Var BLENDERHOME
|
|
Var winversion
|
|
|
|
Function SetWinXPPath
|
|
StrCpy $BLENDERHOME "$PROFILE\Application Data\Blender Foundation\Blender"
|
|
FunctionEnd
|
|
|
|
Function SetWin9xPath
|
|
StrCpy $BLENDERHOME $INSTDIR
|
|
FunctionEnd
|
|
|
|
Function .onInit
|
|
Call GetWindowsVersion
|
|
Pop $R0
|
|
Strcpy $winversion $R0
|
|
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "data.ini"
|
|
FunctionEnd
|
|
|
|
Var HWND
|
|
Var DLGITEM
|
|
Var is2KXP
|
|
|
|
Function DataLocation
|
|
!insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" ""
|
|
|
|
; Set default choice
|
|
!insertmacro MUI_INSTALLOPTIONS_WRITE "data.ini" "Field 3" "State" 1
|
|
|
|
StrCpy $R1 $winversion 2
|
|
StrCmp $R1 "NT" do_win2kxp
|
|
StrCmp $winversion "2000" do_win2kxp
|
|
StrCmp $winversion "XP" do_win2kxp
|
|
StrCmp $winversion "2003" do_win2kxp
|
|
|
|
;else...
|
|
Strcpy $is2KXP "false"
|
|
|
|
Goto continue
|
|
|
|
do_win2kXP:
|
|
Strcpy $is2KXP "true"
|
|
|
|
continue:
|
|
|
|
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "data.ini"
|
|
Pop $HWND
|
|
|
|
Strcmp $is2KXP "true" do_dlg
|
|
|
|
; Disable App Data option on Win9x
|
|
|
|
GetDlgItem $DLGITEM $HWND 1201
|
|
EnableWindow $DLGITEM 0
|
|
|
|
do_dlg:
|
|
|
|
!insertmacro MUI_INSTALLOPTIONS_SHOW
|
|
!insertmacro MUI_INSTALLOPTIONS_READ $R0 "data.ini" "Field 2" "State" ; App Dir
|
|
Strcmp $R0 1 do_app_data
|
|
!insertmacro MUI_INSTALLOPTIONS_READ $R0 "data.ini" "Field 3" "State" ; Inst Dir
|
|
Strcmp $R0 1 do_inst_path
|
|
!insertmacro MUI_INSTALLOPTIONS_READ $R0 "data.ini" "Field 4" "State" ; Home Dir
|
|
Strcmp $R0 1 do_home_path
|
|
|
|
Goto end
|
|
|
|
do_app_data:
|
|
Call SetWinXPPath
|
|
Goto end
|
|
do_home_path:
|
|
ReadEnvStr $BLENDERHOME "HOME"
|
|
Goto end
|
|
do_inst_path:
|
|
Call SetWin9xPath
|
|
end:
|
|
|
|
FunctionEnd
|
|
|
|
Section "Blender-VERSION (required)" SecCopyUI
|
|
SectionIn RO
|
|
|
|
; Sets $BLENDERHOME to suit Windows version...
|
|
|
|
; Set output path to the installation directory.
|
|
SetOutPath $INSTDIR
|
|
; Put file there
|
|
[ROOTDIRCONTS]
|
|
|
|
SetOutPath $BLENDERHOME\.blender
|
|
[DOTBLENDERCONTS]
|
|
|
|
SetOutPath $BLENDERHOME\.blender\scripts
|
|
[SCRIPTCONTS]
|
|
SetOutPath $BLENDERHOME\.blender\scripts\bpymodules
|
|
[SCRIPTMODCONTS]
|
|
SetOutPath $BLENDERHOME\.blender\scripts\bpydata
|
|
[SCRIPTDATACONTS]
|
|
SetOutPath $BLENDERHOME\.blender\scripts\bpydata\config
|
|
[SCRIPTDATACFGCONTS]
|
|
SetOutPath $BLENDERHOME\plugins\include
|
|
[PLUGINCONTS]
|
|
|
|
; Language files
|
|
[LANGUAGECONTS]
|
|
|
|
SetOutPath $INSTDIR
|
|
; Write the installation path into the registry
|
|
WriteRegStr HKLM SOFTWARE\BlenderFoundation "Install_Dir" "$INSTDIR"
|
|
; Write the uninstall keys for Windows
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender" "DisplayName" "Blender (remove only)"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
|
WriteUninstaller "uninstall.exe"
|
|
SectionEnd
|
|
|
|
Section "Add Start Menu shortcuts" Section2
|
|
SetOutPath $INSTDIR
|
|
CreateDirectory "$SMPROGRAMS\Blender Foundation\Blender\"
|
|
CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
|
|
CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Blender.lnk" "$INSTDIR\Blender.exe" "" "$INSTDIR\blender.exe" 0
|
|
CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Readme.lnk" "$INSTDIR\Blender.html" "" "" 0
|
|
CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Copyright.lnk" "$INSTDIR\Copyright.txt" "" "$INSTDIR\copyright.txt" 0
|
|
CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\GPL-license.lnk" "$INSTDIR\GPL-license.txt" "" "$INSTDIR\GPL-license.txt" 0
|
|
CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Help.lnk" "$INSTDIR\Help.url"
|
|
SectionEnd
|
|
|
|
Section "Add Desktop Blender-VERSION shortcut" Section3
|
|
SetOutPath $INSTDIR
|
|
CreateShortCut "$DESKTOP\Blender.lnk" "$INSTDIR\blender.exe" "" "$INSTDIR\blender.exe" 0
|
|
SectionEnd
|
|
|
|
Section "Open .blend files with Blender-VERSION" Section4
|
|
SetOutPath $INSTDIR
|
|
;ExecShell "open" '"$INSTDIR\blender.exe"' "-R -b"
|
|
;do it the manual way! ;)
|
|
|
|
WriteRegStr HKCR ".blend" "" "blendfile"
|
|
WriteRegStr HKCR "blendfile" "" "Blender .blend File"
|
|
WriteRegStr HKCR "blendfile\shell" "" "open"
|
|
WriteRegStr HKCR "blendfile\DefaultIcon" "" $INSTDIR\blender.exe,1
|
|
WriteRegStr HKCR "blendfile\shell\open\command" "" \
|
|
'"$INSTDIR\blender.exe" "%1"'
|
|
|
|
SectionEnd
|
|
|
|
UninstallText "This will uninstall Blender VERSION. Hit next to continue."
|
|
|
|
Section "Uninstall"
|
|
; remove registry keys
|
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender"
|
|
DeleteRegKey HKLM SOFTWARE\BlenderFoundation
|
|
; remove files
|
|
[DELROOTDIRCONTS]
|
|
|
|
Delete $INSTDIR\.blender\.bfont.ttf
|
|
Delete $INSTDIR\.blender\.Blanguages
|
|
; remove shortcuts, if any.
|
|
Delete "$SMPROGRAMS\Blender Foundation\Blender\*.*"
|
|
Delete "$DESKTOP\Blender.lnk"
|
|
; remove directories used.
|
|
RMDir /r $INSTDIR\.blender\locale
|
|
MessageBox MB_YESNO "Erase .blender\scripts folder? (ALL contents will be erased!)" IDNO Next
|
|
RMDir /r $INSTDIR\.blender\scripts
|
|
RMDir /r $INSTDIR\.blender\scripts\bpymodules
|
|
RMDir /r $INSTDIR\.blender\scripts\bpydata
|
|
RMDir /r $INSTDIR\.blender\scripts\bpydata\config
|
|
Next:
|
|
RMDir /r $INSTDIR\plugins\include
|
|
RMDir /r $INSTDIR\plugins
|
|
RMDir $INSTDIR\.blender
|
|
RMDir "$SMPROGRAMS\Blender Foundation\Blender"
|
|
RMDir "$SMPROGRAMS\Blender Foundation"
|
|
RMDir "$INSTDIR"
|
|
RMDir "$INSTDIR\.."
|
|
SectionEnd
|
|
|
|
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${SecCopyUI} $(DESC_SecCopyUI)
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${Section3} $(DESC_Section3)
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${Section4} $(DESC_Section4)
|
|
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|