Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Letwory <nathan@letworyinteractive.com>2004-07-14 18:13:20 +0400
committerNathan Letwory <nathan@letworyinteractive.com>2004-07-14 18:13:20 +0400
commita2f9523780d54417be1220bed10879619066c8b9 (patch)
treefd0990f8008a6365021386b2e98c1a6825372fc0 /release
parent80dc492a5e75f82c4064d330949724f430b864f2 (diff)
* the installer script so you can do 'scons wininst' (on win32 only, of course)
This installer script is modified from the original one so that the SConstruct will dynamically add the files that need to go into the installer. This means that adding a script to release/scripts will automatically put it in the installer. Also, adding new resource files in bin/.blender/ will make sure that those get added to the installer.
Diffstat (limited to 'release')
-rw-r--r--release/windows/installer/00.sconsblender.nsi341
1 files changed, 341 insertions, 0 deletions
diff --git a/release/windows/installer/00.sconsblender.nsi b/release/windows/installer/00.sconsblender.nsi
new file mode 100644
index 00000000000..f96cbd771af
--- /dev/null
+++ b/release/windows/installer/00.sconsblender.nsi
@@ -0,0 +1,341 @@
+;
+; $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."
+
+; 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)" ""
+
+ 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"
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "data.ini" "Field 3" "State" 1
+
+ Goto continue
+
+ do_win2kXP:
+ Strcpy $is2KXP "true"
+
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "data.ini" "Field 2" "State" 1
+
+ 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:
+ Strcmp $is2KXP "true" warning
+ Call SetWin9xPath
+ Goto end
+ warning:
+ IfFileExists "$PROFILE\Application Data\Blender Foundation\Blender\.blender\.bfont.ttf" disp_warning
+ Call SetWin9xPath
+ Goto end
+ disp_warning:
+ MessageBox MB_OK "Please note that user data files have been found in $PROFILE\Application Data\Blender Foundation\Blender. Blender will automatically use these instead of the files in $INSTDIR. Please remove the .blender folder from Application Data if you wish to use this option."
+ 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\bpydata
+ File DISTDIR\.blender\bpydata\readme.txt
+
+ SetOutPath $BLENDERHOME\.blender\locale\ca\LC_MESSAGES
+ ;File DISTDIR\.blender\locale\ca\LC_MESSAGES\blender.mo
+ [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
+ Delete $INSTDIR\blender.exe
+ Delete $INSTDIR\python23.dll
+ Delete $INSTDIR\sdl.dll
+ Delete $INSTDIR\gnu_gettext.dll
+ Delete $INSTDIR\Copyright.txt
+ Delete $INSTDIR\Blender.html
+ Delete $INSTDIR\GPL-license.txt
+ Delete $INSTDIR\python-license.txt
+ Delete $INSTDIR\Release_SHORTVERS.txt
+ Delete $INSTDIR\Help.url
+ Delete $INSTDIR\uninstall.exe
+ 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
+ RMDir /r $INSTDIR\.blender\scripts
+ RMDir /r $INSTDIR\.blender\bpydata
+ 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