fix mingw compile
[blender.git] / release / windows / installer / 00.sconsblender.nsi
1 ;\r
2 ; $Id$\r
3 ;\r
4 ; Blender Self-Installer for Windows (NSIS - http://nsis.sourceforge.net)\r
5 ;\r
6 ; Requires the MoreInfo plugin - http://nsis.sourceforge.net/MoreInfo_plug-in\r
7 ;\r
8 \r
9 !include "MUI.nsh"\r
10 !include "WinVer.nsh"\r
11 !include "FileFunc.nsh"\r
12 !include "WordFunc.nsh"\r
13 !include "nsDialogs.nsh"\r
14 \r
15 SetCompressor /SOLID lzma\r
16 \r
17 Name "Blender [VERSION]" \r
18 \r
19 !define MUI_ABORTWARNING\r
20 \r
21 !define MUI_WELCOMEPAGE_TEXT  "This wizard will guide you through the installation of Blender. It is recommended that you close all other applications before starting Setup."\r
22 !define MUI_WELCOMEFINISHPAGE_BITMAP "[RELDIR]\01.installer.bmp"\r
23 !define MUI_HEADERIMAGE\r
24 !define MUI_HEADERIMAGE_BITMAP  "[RELDIR]\00.header.bmp"\r
25 !define MUI_COMPONENTSPAGE_SMALLDESC\r
26 !define MUI_FINISHPAGE_RUN "$INSTDIR\blender.exe"\r
27 !define MUI_CHECKBITMAP "[RELDIR]\00.checked.bmp"\r
28 \r
29 !insertmacro MUI_PAGE_WELCOME\r
30 !insertmacro MUI_PAGE_LICENSE "[DISTDIR]\Copyright.txt"\r
31 !insertmacro MUI_PAGE_COMPONENTS\r
32     \r
33 !insertmacro MUI_PAGE_DIRECTORY\r
34 Page custom DataLocation DataLocationOnLeave\r
35 !insertmacro MUI_PAGE_INSTFILES\r
36 !insertmacro MUI_PAGE_FINISH\r
37   \r
38 !insertmacro MUI_UNPAGE_WELCOME\r
39 !insertmacro MUI_UNPAGE_CONFIRM\r
40 !insertmacro MUI_UNPAGE_INSTFILES\r
41 !insertmacro MUI_UNPAGE_FINISH\r
42 \r
43 !insertmacro Locate\r
44 !insertmacro VersionCompare\r
45 \r
46 \r
47 Icon "[RELDIR]\00.installer.ico"\r
48 UninstallIcon "[RELDIR]\00.installer.ico"\r
49 \r
50 ;--------------------------------\r
51 ;Languages\r
52  \r
53   !insertmacro MUI_LANGUAGE "English"\r
54     \r
55 ;--------------------------------\r
56 ;Language Strings\r
57 \r
58   ;Description\r
59   LangString DESC_SecCopyUI ${LANG_ENGLISH} "Copy all required files to the application folder."\r
60   LangString DESC_Section2 ${LANG_ENGLISH} "Add shortcut items to the Start Menu. (Recommended)"\r
61   LangString DESC_Section3 ${LANG_ENGLISH} "Add a shortcut to Blender on your desktop."\r
62   LangString DESC_Section4 ${LANG_ENGLISH} "Blender can register itself with .blend files to allow double-clicking from Windows Explorer, etc."\r
63   LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Specify User Data Location"\r
64 ;--------------------------------\r
65 ;Data\r
66 \r
67 Caption "Blender [VERSION] Installer"\r
68 OutFile "[DISTDIR]\..\blender-[VERSION]-windows[BITNESS].exe"\r
69 InstallDir "$PROGRAMFILES[BITNESS]\Blender Foundation\Blender"\r
70 \r
71 BrandingText "Blender Foundation | http://www.blender.org"\r
72 ComponentText "This will install Blender [VERSION] on your computer."\r
73 \r
74 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."\r
75 \r
76 SilentUnInstall normal\r
77 \r
78 Var BLENDERHOME\r
79 Var SHORTVERSION ; This is blender_version_decimal() from path_util.c\r
80 \r
81 ; custom controls\r
82 Var HWND\r
83 \r
84 Var HWND_APPDATA\r
85 Var HWND_INSTDIR\r
86 Var HWND_HOMEDIR\r
87 \r
88 Function .onInit\r
89   StrCpy $SHORTVERSION "[SHORTVERSION]"\r
90 FunctionEnd\r
91 \r
92 Function DataLocation\r
93   nsDialogs::Create /NOUNLOAD 1018\r
94   Pop $HWND\r
95   \r
96   ${If} $HWND == error\r
97     Abort\r
98   ${EndIf}\r
99   \r
100   ${NSD_CreateLabel} 0 0 100% 12u "Please specify where you wish to install Blender's user data files."\r
101   ${NSD_CreateRadioButton} 0 20 100% 12u "Use the Application Data directory (Requires Windows 2000 or better)"\r
102   Pop $HWND_APPDATA\r
103   ${NSD_CreateRadioButton} 0 50 100% 12u "Use the installation directory (ie. location chosen to install blender.exe)."\r
104   Pop $HWND_INSTDIR\r
105   ${NSD_CreateRadioButton} 0 80 100% 12u "I have defined a %HOME% variable, please install files here."\r
106   Pop $HWND_HOMEDIR\r
107   \r
108   ${If} ${AtMostWinME}\r
109     GetDlgItem $0 $HWND $HWND_APPDATA\r
110     EnableWindow $0 0\r
111     SendMessage $HWND_INSTDIR ${BM_SETCHECK} 1 0\r
112   ${Else}\r
113     SendMessage $HWND_APPDATA ${BM_SETCHECK} 1 0\r
114   ${EndIf}\r
115   \r
116   nsDialogs::Show\r
117   \r
118 FunctionEnd\r
119 \r
120 Function DataLocationOnLeave\r
121   ${NSD_GetState} $HWND_APPDATA $R0\r
122   ${If} $R0 == "1"\r
123     StrCpy $BLENDERHOME "$APPDATA\Blender Foundation\Blender"\r
124   ${Else}\r
125     ${NSD_GetState} $HWND_INSTDIR $R0\r
126     ${If} $R0 == "1"\r
127       StrCpy $BLENDERHOME $INSTDIR\r
128     ${Else}\r
129       ${NSD_GetState} $HWND_HOMEDIR $R0\r
130       ${If} $R0 == "1"\r
131         ReadEnvStr $BLENDERHOME "HOME"\r
132       ${EndIf}\r
133     ${EndIf}\r
134   ${EndIf}\r
135 FunctionEnd\r
136 \r
137 Section "Blender-[VERSION] (required)" SecCopyUI\r
138   SectionIn RO\r
139 \r
140   ; Set output path to the installation directory.\r
141   SetOutPath $INSTDIR\r
142   ; the contents of Blender installation root dir\r
143   [ROOTDIRCONTS]\r
144   \r
145   ; all datafiles (python, scripts, config)\r
146   [DODATAFILES]\r
147   \r
148   SetOutPath $INSTDIR\r
149   ; Write the installation path into the registry\r
150   WriteRegStr HKLM "SOFTWARE\BlenderFoundation" "Install_Dir" "$INSTDIR"\r
151   WriteRegStr HKLM "SOFTWARE\BlenderFoundation" "ConfigData_Dir" "$BLENDERHOME"\r
152   WriteRegStr HKLM "SOFTWARE\BlenderFoundation" "ShortVersion" "[SHORTVERSION]"\r
153   ; Write the uninstall keys for Windows\r
154   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender" "DisplayName" "Blender (remove only)"\r
155   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender" "UninstallString" '"$INSTDIR\uninstall.exe"'\r
156   WriteUninstaller "uninstall.exe"\r
157 \r
158   ; Let's now run silent vcredist installer\r
159   SetOutPath $TEMP\r
160   [VCREDIST]\r
161 \r
162 SectionEnd\r
163 \r
164 Section "Add Start Menu shortcuts" Section2\r
165   SetOutPath $INSTDIR\r
166   CreateDirectory "$SMPROGRAMS\Blender Foundation\Blender\"\r
167   CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0\r
168   CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Blender.lnk" "$INSTDIR\Blender.exe" "" "$INSTDIR\blender.exe" 0\r
169   CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Readme.lnk" "$INSTDIR\Blender.html" "" "" 0\r
170   CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Copyright.lnk" "$INSTDIR\Copyright.txt" "" "$INSTDIR\copyright.txt" 0\r
171   CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\GPL-license.lnk" "$INSTDIR\GPL-license.txt" "" "$INSTDIR\GPL-license.txt" 0\r
172   CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Help.lnk" "$INSTDIR\Help.url"\r
173 SectionEnd\r
174 \r
175 Section "Add Desktop Blender-[VERSION] shortcut" Section3\r
176   SetOutPath $INSTDIR\r
177   CreateShortCut "$DESKTOP\Blender.lnk" "$INSTDIR\blender.exe" "" "$INSTDIR\blender.exe" 0\r
178 SectionEnd\r
179 \r
180 Section "Open .blend files with Blender-[VERSION]" Section4\r
181   SetOutPath $INSTDIR\r
182   ;ExecShell "open" '"$INSTDIR\blender.exe"' "-R -b"\r
183   ;do it the manual way! ;)\r
184   \r
185   WriteRegStr HKCR ".blend" "" "blendfile"\r
186   WriteRegStr HKCR "blendfile" "" "Blender .blend File"\r
187   WriteRegStr HKCR "blendfile\shell" "" "open"\r
188   WriteRegStr HKCR "blendfile\DefaultIcon" "" $INSTDIR\blender.exe,1\r
189   WriteRegStr HKCR "blendfile\shell\open\command" "" \\r
190     '"$INSTDIR\blender.exe" "%1"'\r
191   \r
192 SectionEnd\r
193 \r
194 UninstallText "This will uninstall Blender [VERSION], and all datafiles from the installation dir. Hit next to continue."\r
195 \r
196 Section "Uninstall"\r
197   ; remove registry keys\r
198   ReadRegStr $BLENDERHOME HKLM "SOFTWARE\BlenderFoundation" "ConfigData_Dir"\r
199   ReadRegStr $SHORTVERSION HKLM "SOFTWARE\BlenderFoundation" "ShortVersion"\r
200   DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender"\r
201   DeleteRegKey HKLM "SOFTWARE\BlenderFoundation"\r
202   ; remove files\r
203   [DELROOTDIRCONTS]\r
204 \r
205   Delete "$INSTDIR\uninstall.exe"\r
206 \r
207   MessageBox MB_YESNO "Erase $BLENDERHOME? This includes all installed scripts and configuration files and any file you may have created there." IDNO Next\r
208   RMDir /r "$BLENDERHOME"\r
209 Next:\r
210   ; remove shortcuts, if any.\r
211   Delete "$SMPROGRAMS\Blender Foundation\Blender\*.*"\r
212   Delete "$DESKTOP\Blender.lnk"\r
213   ; remove all link related directories and files\r
214   RMDir /r "$SMPROGRAMS\Blender Foundation"\r
215   ; remove entire installation directory, including any file created by the user\r
216   RMDir /r "$INSTDIR"\r
217 SectionEnd\r
218 \r
219 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN\r
220   !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyUI} $(DESC_SecCopyUI)\r
221   !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)\r
222   !insertmacro MUI_DESCRIPTION_TEXT ${Section3} $(DESC_Section3)\r
223   !insertmacro MUI_DESCRIPTION_TEXT ${Section4} $(DESC_Section4)\r
224 !insertmacro MUI_FUNCTION_DESCRIPTION_END\r
225 \r