* use blender_decimal_version() in places where '.blender/' was still being used
authorNathan Letwory <nathan@letworyinteractive.com>
Mon, 5 Jul 2010 19:59:27 +0000 (19:59 +0000)
committerNathan Letwory <nathan@letworyinteractive.com>
Mon, 5 Jul 2010 19:59:27 +0000 (19:59 +0000)
* simplify the NSIS file creation (and add those files back).

NOTE: The installer is still pretty much WIP, tomorrow more improvements.

release/windows/installer/00.checked.bmp [new file with mode: 0644]
release/windows/installer/00.header.bmp [new file with mode: 0644]
release/windows/installer/00.installer.ico [new file with mode: 0644]
release/windows/installer/00.sconsblender.nsi [new file with mode: 0644]
release/windows/installer/1100.sconsblender.nsi [new file with mode: 0644]
source/blender/blenlib/intern/path_util.c
tools/btools.py

diff --git a/release/windows/installer/00.checked.bmp b/release/windows/installer/00.checked.bmp
new file mode 100644 (file)
index 0000000..6c2e98d
Binary files /dev/null and b/release/windows/installer/00.checked.bmp differ
diff --git a/release/windows/installer/00.header.bmp b/release/windows/installer/00.header.bmp
new file mode 100644 (file)
index 0000000..b631ba7
Binary files /dev/null and b/release/windows/installer/00.header.bmp differ
diff --git a/release/windows/installer/00.installer.ico b/release/windows/installer/00.installer.ico
new file mode 100644 (file)
index 0000000..922c9d4
Binary files /dev/null and b/release/windows/installer/00.installer.ico differ
diff --git a/release/windows/installer/00.sconsblender.nsi b/release/windows/installer/00.sconsblender.nsi
new file mode 100644 (file)
index 0000000..356972d
--- /dev/null
@@ -0,0 +1,418 @@
+;\r
+; $Id$\r
+;\r
+; Blender Self-Installer for Windows (NSIS - http://nsis.sourceforge.net)\r
+;\r
+; Requires the MoreInfo plugin - http://nsis.sourceforge.net/MoreInfo_plug-in\r
+;\r
+\r
+!include "MUI.nsh"\r
+!include "WinVer.nsh"\r
+!include "FileFunc.nsh"\r
+!include "WordFunc.nsh"\r
+!include "nsDialogs.nsh"\r
+\r
+SetCompressor /SOLID lzma\r
+\r
+Name "Blender [VERSION]" \r
+\r
+!define MUI_ABORTWARNING\r
+\r
+!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
+!define MUI_WELCOMEFINISHPAGE_BITMAP "[RELDIR]\01.installer.bmp"\r
+!define MUI_HEADERIMAGE\r
+!define MUI_HEADERIMAGE_BITMAP  "[RELDIR]\00.header.bmp"\r
+!define MUI_COMPONENTSPAGE_SMALLDESC\r
+!define MUI_FINISHPAGE_RUN "$INSTDIR\blender.exe"\r
+!define MUI_CHECKBITMAP "[RELDIR]\00.checked.bmp"\r
+\r
+!insertmacro MUI_PAGE_WELCOME\r
+!insertmacro MUI_PAGE_LICENSE "[DISTDIR]\Copyright.txt"\r
+!insertmacro MUI_PAGE_COMPONENTS\r
+    \r
+!insertmacro MUI_PAGE_DIRECTORY\r
+Page custom DataLocation DataLocationOnLeave\r
+Page custom AppDataChoice AppDataChoiceOnLeave\r
+Page custom PreMigrateUserSettings MigrateUserSettings\r
+!insertmacro MUI_PAGE_INSTFILES\r
+!insertmacro MUI_PAGE_FINISH\r
+  \r
+!insertmacro MUI_UNPAGE_WELCOME\r
+!insertmacro MUI_UNPAGE_CONFIRM\r
+!insertmacro MUI_UNPAGE_INSTFILES\r
+!insertmacro MUI_UNPAGE_FINISH\r
+\r
+!insertmacro Locate\r
+!insertmacro VersionCompare\r
+\r
+\r
+Icon "[RELDIR]\00.installer.ico"\r
+UninstallIcon "[RELDIR]\00.installer.ico"\r
+\r
+;--------------------------------\r
+;Languages\r
\r
+  !insertmacro MUI_LANGUAGE "English"\r
+    \r
+;--------------------------------\r
+;Language Strings\r
+\r
+  ;Description\r
+  LangString DESC_SecCopyUI ${LANG_ENGLISH} "Copy all required files to the application folder."\r
+  LangString DESC_Section2 ${LANG_ENGLISH} "Add shortcut items to the Start Menu. (Recommended)"\r
+  LangString DESC_Section3 ${LANG_ENGLISH} "Add a shortcut to Blender on your desktop."\r
+  LangString DESC_Section4 ${LANG_ENGLISH} "Blender can register itself with .blend files to allow double-clicking from Windows Explorer, etc."\r
+  LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Specify User Data Location"\r
+;--------------------------------\r
+;Data\r
+\r
+Caption "Blender [VERSION] Installer"\r
+OutFile "[DISTDIR]\..\blender-[VERSION]-windows.exe"\r
+InstallDir "$PROGRAMFILES\Blender Foundation\Blender"\r
+\r
+BrandingText "http://www.blender.org"\r
+ComponentText "This will install Blender [VERSION] on your computer."\r
+\r
+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
+\r
+SilentUnInstall normal\r
+\r
+# Uses $0\r
+Function openLinkNewWindow\r
+  Push $3 \r
+  Push $2\r
+  Push $1\r
+  Push $0\r
+  ReadRegStr $0 HKCR "http\shell\open\command" ""\r
+# Get browser path\r
+    DetailPrint $0\r
+  StrCpy $2 '"'\r
+  StrCpy $1 $0 1\r
+  StrCmp $1 $2 +2 # if path is not enclosed in " look for space as final char\r
+    StrCpy $2 ' '\r
+  StrCpy $3 1\r
+  loop:\r
+    StrCpy $1 $0 1 $3\r
+    DetailPrint $1\r
+    StrCmp $1 $2 found\r
+    StrCmp $1 "" found\r
+    IntOp $3 $3 + 1\r
+    Goto loop\r
\r
+  found:\r
+    StrCpy $1 $0 $3\r
+    StrCmp $2 " " +2\r
+      StrCpy $1 '$1"'\r
\r
+  Pop $0\r
+  Exec '$1 $0'\r
+  Pop $1\r
+  Pop $2\r
+  Pop $3\r
+FunctionEnd\r
+\r
+Var BLENDERHOME\r
+Var DLL_found\r
+Var PREVHOME\r
+\r
+Function SetWinXPPathCurrentUser\r
+  SetShellVarContext current\r
+  StrCpy $BLENDERHOME "$APPDATA\Blender Foundation\Blender"\r
+FunctionEnd\r
+\r
+Function SetWinXPPathAllUsers\r
+  SetShellVarContext all\r
+  StrCpy $BLENDERHOME "$APPDATA\Blender Foundation\Blender"\r
+FunctionEnd\r
+\r
+Function SetWin9xPath\r
+  StrCpy $BLENDERHOME $INSTDIR\r
+FunctionEnd\r
+\r
+; custom controls\r
+Var HWND\r
+\r
+Var HWND_APPDATA\r
+Var HWND_INSTDIR\r
+Var HWND_HOMEDIR\r
+\r
+Var HWND_BUTTON_YES\r
+Var HWND_BUTTON_NO\r
+\r
+Var SETUSERCONTEXT\r
+\r
+Function PreMigrateUserSettings\r
+  StrCpy $PREVHOME "$PROFILE\Application Data\Blender Foundation\Blender"\r
+  StrCpy $0 "$PROFILE\Application Data\Blender Foundation\Blender\.blender"\r
+  \r
+  IfFileExists $0 0 nochange\r
+  \r
+  StrCmp $BLENDERHOME $PREVHOME nochange\r
+  \r
+  nsDialogs::Create /NOUNLOAD 1018\r
+  Pop $HWND\r
+  \r
+  ${If} $HWND == error\r
+  Abort\r
+  ${EndIf}\r
+  \r
+  ${NSD_CreateLabel} 0 0 100% 12u "You have existing settings at:"\r
+  ${NSD_CreateLabel} 0 20 100% 12u $PREVHOME\r
+  ${NSD_CreateLabel} 0 40 100% 12u "Do you wish to migrate this data to:"\r
+  ${NSD_CreateLabel} 0 60 100% 12u $BLENDERHOME\r
+  ${NSD_CreateLabel} 0 80 100% 12u "Please note: If you choose no, Blender will not be able to use these files!"\r
+  ${NSD_CreateRadioButton} 0 100 100% 12u "Yes"\r
+  Pop $HWND_BUTTON_YES\r
+  ${NSD_CreateRadioButton} 0 120 100% 12u "No"\r
+  Pop $HWND_BUTTON_NO\r
+  \r
+  SendMessage $HWND_BUTTON_YES ${BM_SETCHECK} 1 0\r
+  \r
+  nsDialogs::Show\r
+  nochange:\r
+  \r
+FunctionEnd\r
+\r
+Function MigrateUserSettings\r
+  ${NSD_GetState} $HWND_BUTTON_YES $R0\r
+  ${If} $R0 == "1"\r
+    CreateDirectory $BLENDERHOME\r
+    CopyFiles $PREVHOME\*.* $BLENDERHOME\r
+    ;RMDir /r $PREVHOME\r
+  ${EndIf}  \r
+FunctionEnd\r
+\r
+!define DLL_VER "8.00.50727.42"\r
+!define DLL_VER2 "7.10.3052.4"\r
+\r
+Function LocateCallback_80\r
+  MoreInfo::GetProductVersion "$R9"\r
+  Pop $0\r
+\r
+        ${VersionCompare} "$0" "${DLL_VER}" $R1\r
+\r
+        StrCmp $R1 0 0 new\r
+      new:\r
+        StrCmp $R1 1 0 old\r
+      old:\r
+        StrCmp $R1 2 0 end\r
+  ; Found DLL is older\r
+        Call DownloadDLL\r
+\r
+     end:\r
+  StrCpy "$0" StopLocate\r
+  StrCpy $DLL_found "true"\r
+  Push "$0"\r
+\r
+FunctionEnd\r
+\r
+Function LocateCallback_71\r
+  MoreInfo::GetProductVersion "$R9"\r
+  Pop $0\r
+\r
+        ${VersionCompare} "$0" "${DLL_VER2}" $R1\r
+\r
+        StrCmp $R1 0 0 new\r
+      new:\r
+        StrCmp $R1 1 0 old\r
+      old:\r
+        StrCmp $R1 2 0 end\r
+  ; Found DLL is older\r
+\r
+     end:\r
+  StrCpy "$0" StopLocate\r
+  StrCpy $DLL_found "true"\r
+  Push "$0"\r
+\r
+FunctionEnd\r
+\r
+Function DownloadDLL\r
+    MessageBox MB_OK "You will need to download the Microsoft Visual C++ 2005 Redistributable Package in order to run Blender. Pressing OK will take you to the download page, please follow the instructions on the page that appears."\r
+    StrCpy $0 "http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en"\r
+    Call openLinkNewWindow\r
+FunctionEnd\r
+\r
+Function DataLocation\r
+  nsDialogs::Create /NOUNLOAD 1018\r
+  Pop $HWND\r
+  \r
+  ${If} $HWND == error\r
+    Abort\r
+  ${EndIf}\r
+  \r
+  ${NSD_CreateLabel} 0 0 100% 12u "Please specify where you wish to install Blender's user data files."\r
+  ${NSD_CreateRadioButton} 0 20 100% 12u "Use the Application Data directory (Requires Windows 2000 or better)"\r
+  Pop $HWND_APPDATA\r
+  ${NSD_CreateRadioButton} 0 50 100% 12u "Use the installation directory (ie. location chosen to install blender.exe)."\r
+  Pop $HWND_INSTDIR\r
+  ${NSD_CreateRadioButton} 0 80 100% 12u "I have defined a %HOME% variable, please install files here."\r
+  Pop $HWND_HOMEDIR\r
+  \r
+  ${If} ${AtMostWinME}\r
+    GetDlgItem $0 $HWND $HWND_APPDATA\r
+    EnableWindow $0 0\r
+    SendMessage $HWND_INSTDIR ${BM_SETCHECK} 1 0\r
+  ${Else}\r
+    SendMessage $HWND_APPDATA ${BM_SETCHECK} 1 0\r
+  ${EndIf}\r
+  \r
+  nsDialogs::Show\r
+  \r
+FunctionEnd\r
+\r
+Function DataLocationOnLeave\r
+  StrCpy $SETUSERCONTEXT "false"\r
+  ${NSD_GetState} $HWND_APPDATA $R0\r
+  ${If} $R0 == "1"\r
+    StrCpy $SETUSERCONTEXT "true"\r
+  ${Else}\r
+    ${NSD_GetState} $HWND_INSTDIR $R0\r
+    ${If} $R0 == "1"\r
+      Call SetWin9xPath\r
+    ${Else}\r
+      ${NSD_GetState} $HWND_HOMEDIR $R0\r
+      ${If} $R0 == "1"\r
+        ReadEnvStr $BLENDERHOME "HOME"\r
+      ${EndIf}\r
+    ${EndIf}\r
+  ${EndIf}\r
+FunctionEnd\r
+\r
+Var HWND_APPDATA_CURRENT\r
+Var HWND_APPDATA_ALLUSERS\r
+\r
+Function AppDataChoice\r
+  StrCmp $SETUSERCONTEXT "false" skip\r
+  \r
+  nsDialogs::Create /NOUNLOAD 1018\r
+  Pop $HWND\r
+  \r
+  ${NSD_CreateLabel} 0 0 100% 12u "Please choose which Application Data directory to use."\r
+  ${NSD_CreateRadioButton} 0 40 100% 12u "Current User"\r
+  Pop $HWND_APPDATA_CURRENT\r
+  ${NSD_CreateRadioButton} 0 70 100% 12u "All Users"\r
+  Pop $HWND_APPDATA_ALLUSERS\r
+  \r
+  SendMessage $HWND_APPDATA_CURRENT ${BM_SETCHECK} 1 0\r
+  \r
+  StrCmp $SETUSERCONTEXT "true" 0 skip ; show dialog if we need to set context, otherwise skip it\r
+  nsDialogs::Show\r
+  \r
+skip:\r
+\r
+FunctionEnd\r
+\r
+Function AppDataChoiceOnLeave\r
+  StrCmp $SETUSERCONTEXT "false" skip\r
+  ${NSD_GetState} $HWND_APPDATA_CURRENT $R0\r
+  ${If} $R0 == "1"\r
+     Call SetWinXPPathCurrentUser\r
+  ${Else}\r
+     Call SetWinXPPathAllUsers\r
+  ${EndIf}\r
+skip:\r
+\r
+FunctionEnd\r
+\r
+Section "Blender-[VERSION] (required)" SecCopyUI\r
+  SectionIn RO\r
+\r
+  ; Set output path to the installation directory.\r
+  SetOutPath $INSTDIR\r
+  ; Put file there\r
+  [ROOTDIRCONTS]\r
+  \r
+  ;SetOutPath $BLENDERHOME\$BLENDERVERSION\r
+  ;[DATAFILES] ; and we write datafiles to user accessable dir\r
+  [DODATAFILES]\r
+  \r
+  SetOutPath $INSTDIR\r
+  ; Write the installation path into the registry\r
+  WriteRegStr HKLM SOFTWARE\BlenderFoundation "Install_Dir" "$INSTDIR"\r
+  ; Write the uninstall keys for Windows\r
+  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender" "DisplayName" "Blender (remove only)"\r
+  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender" "UninstallString" '"$INSTDIR\uninstall.exe"'\r
+  WriteUninstaller "uninstall.exe"\r
+\r
+  ; Check for msvcr80.dll - give notice to download if not found\r
+  MessageBox MB_OK "The installer will now check your system for the required system dlls."\r
+  StrCpy $1 $WINDIR\r
+  StrCpy $DLL_found "false"\r
+  ${Locate} "$1" "/L=F /M=MSVCR80.DLL /S=0B" "LocateCallback_80"\r
+  StrCmp $DLL_found "false" 0 +2\r
+    Call DownloadDLL\r
+  StrCpy $1 $WINDIR\r
+  StrCpy $DLL_found "false"\r
+  ${Locate} "$1" "/L=F /M=MSVCR71.DLL /S=0B" "LocateCallback_71"\r
+  StrCmp $DLL_found "false" 0 +2\r
+  \r
+SectionEnd\r
+\r
+Section "Add Start Menu shortcuts" Section2\r
+  SetOutPath $INSTDIR\r
+  CreateDirectory "$SMPROGRAMS\Blender Foundation\Blender\"\r
+  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0\r
+  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Blender.lnk" "$INSTDIR\Blender.exe" "" "$INSTDIR\blender.exe" 0\r
+  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Readme.lnk" "$INSTDIR\Blender.html" "" "" 0\r
+  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Copyright.lnk" "$INSTDIR\Copyright.txt" "" "$INSTDIR\copyright.txt" 0\r
+  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\GPL-license.lnk" "$INSTDIR\GPL-license.txt" "" "$INSTDIR\GPL-license.txt" 0\r
+  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Help.lnk" "$INSTDIR\Help.url"\r
+SectionEnd\r
+\r
+Section "Add Desktop Blender-[VERSION] shortcut" Section3\r
+  SetOutPath $INSTDIR\r
+  CreateShortCut "$DESKTOP\Blender.lnk" "$INSTDIR\blender.exe" "" "$INSTDIR\blender.exe" 0\r
+SectionEnd\r
+\r
+Section "Open .blend files with Blender-[VERSION]" Section4\r
+  SetOutPath $INSTDIR\r
+  ;ExecShell "open" '"$INSTDIR\blender.exe"' "-R -b"\r
+  ;do it the manual way! ;)\r
+  \r
+  WriteRegStr HKCR ".blend" "" "blendfile"\r
+  WriteRegStr HKCR "blendfile" "" "Blender .blend File"\r
+  WriteRegStr HKCR "blendfile\shell" "" "open"\r
+  WriteRegStr HKCR "blendfile\DefaultIcon" "" $INSTDIR\blender.exe,1\r
+  WriteRegStr HKCR "blendfile\shell\open\command" "" \\r
+    '"$INSTDIR\blender.exe" "%1"'\r
+  \r
+SectionEnd\r
+\r
+UninstallText "This will uninstall Blender [VERSION]. Hit next to continue."\r
+\r
+Section "Uninstall"\r
+  ; remove registry keys\r
+  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender"\r
+  DeleteRegKey HKLM SOFTWARE\BlenderFoundation\r
+  ; remove files\r
+  [DELROOTDIRCONTS]\r
+  \r
+  Delete $INSTDIR\.blender\.bfont.ttf\r
+  Delete $INSTDIR\.blender\.Blanguages\r
+  ; remove shortcuts, if any.\r
+  Delete "$SMPROGRAMS\Blender Foundation\Blender\*.*"\r
+  Delete "$DESKTOP\Blender.lnk"\r
+  ; remove directories used.\r
+  RMDir /r $INSTDIR\.blender\locale\r
+  MessageBox MB_YESNO "Erase .blender\scripts folder? (ALL contents will be erased!)" IDNO Next\r
+  RMDir /r $INSTDIR\.blender\scripts\r
+  RMDir /r $INSTDIR\.blender\scripts\bpymodules\r
+  RMDir /r $INSTDIR\.blender\scripts\bpydata\r
+  RMDir /r $INSTDIR\.blender\scripts\bpydata\config\r
+Next:\r
+  RMDir /r $INSTDIR\plugins\include\r
+  RMDir /r $INSTDIR\plugins\r
+  RMDir $INSTDIR\.blender\r
+  RMDir "$SMPROGRAMS\Blender Foundation\Blender"\r
+  RMDir "$SMPROGRAMS\Blender Foundation"\r
+  RMDir "$INSTDIR"\r
+  RMDir "$INSTDIR\.."\r
+SectionEnd\r
+\r
+!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN\r
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyUI} $(DESC_SecCopyUI)\r
+  !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)\r
+  !insertmacro MUI_DESCRIPTION_TEXT ${Section3} $(DESC_Section3)\r
+  !insertmacro MUI_DESCRIPTION_TEXT ${Section4} $(DESC_Section4)\r
+!insertmacro MUI_FUNCTION_DESCRIPTION_END\r
+\r
diff --git a/release/windows/installer/1100.sconsblender.nsi b/release/windows/installer/1100.sconsblender.nsi
new file mode 100644 (file)
index 0000000..3b34537
--- /dev/null
@@ -0,0 +1,425 @@
+;\r
+; $Id: 00.sconsblender.nsi 14503 2008-04-21 15:53:32Z aphex $\r
+;\r
+; Blender Self-Installer for Windows (NSIS - http://nsis.sourceforge.net)\r
+;\r
+; Requires the MoreInfo plugin - http://nsis.sourceforge.net/MoreInfo_plug-in\r
+;\r
+\r
+!include "MUI.nsh"\r
+!include "WinVer.nsh"\r
+!include "FileFunc.nsh"\r
+!include "WordFunc.nsh"\r
+!include "nsDialogs.nsh"\r
+\r
+SetCompressor /SOLID lzma\r
+\r
+Name "Blender VERSION" \r
+\r
+!define MUI_ABORTWARNING\r
+\r
+!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."\r
+!define MUI_WELCOMEFINISHPAGE_BITMAP "RELDIR\01.installer.bmp"\r
+!define MUI_HEADERIMAGE\r
+!define MUI_HEADERIMAGE_BITMAP  "RELDIR\00.header.bmp"\r
+!define MUI_COMPONENTSPAGE_SMALLDESC\r
+!define MUI_FINISHPAGE_RUN "$INSTDIR\blender.exe"\r
+!define MUI_CHECKBITMAP "RELDIR\00.checked.bmp"\r
+\r
+!insertmacro MUI_PAGE_WELCOME\r
+!insertmacro MUI_PAGE_LICENSE "DISTDIR\Copyright.txt"\r
+!insertmacro MUI_PAGE_COMPONENTS\r
+    \r
+!insertmacro MUI_PAGE_DIRECTORY\r
+Page custom DataLocation DataLocationOnLeave\r
+Page custom AppDataChoice AppDataChoiceOnLeave\r
+Page custom PreMigrateUserSettings MigrateUserSettings\r
+!insertmacro MUI_PAGE_INSTFILES\r
+!insertmacro MUI_PAGE_FINISH\r
+  \r
+!insertmacro MUI_UNPAGE_WELCOME\r
+!insertmacro MUI_UNPAGE_CONFIRM\r
+!insertmacro MUI_UNPAGE_INSTFILES\r
+!insertmacro MUI_UNPAGE_FINISH\r
+\r
+!insertmacro Locate\r
+!insertmacro VersionCompare\r
+\r
+\r
+Icon "RELDIR\00.installer.ico"\r
+UninstallIcon "RELDIR\00.installer.ico"\r
+\r
+;--------------------------------\r
+;Languages\r
\r
+  !insertmacro MUI_LANGUAGE "English"\r
+    \r
+;--------------------------------\r
+;Language Strings\r
+\r
+  ;Description\r
+  LangString DESC_SecCopyUI ${LANG_ENGLISH} "Copy all required files to the application folder."\r
+  LangString DESC_Section2 ${LANG_ENGLISH} "Add shortcut items to the Start Menu. (Recommended)"\r
+  LangString DESC_Section3 ${LANG_ENGLISH} "Add a shortcut to Blender on your desktop."\r
+  LangString DESC_Section4 ${LANG_ENGLISH} "Blender can register itself with .blend files to allow double-clicking from Windows Explorer, etc."\r
+  LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Specify User Data Location"\r
+;--------------------------------\r
+;Data\r
+\r
+Caption "Blender VERSION Installer"\r
+OutFile "DISTDIR\..\blender-VERSION-windows.exe"\r
+InstallDir "$PROGRAMFILES\Blender Foundation\Blender"\r
+\r
+BrandingText "http://www.blender.org"\r
+ComponentText "This will install Blender VERSION on your computer."\r
+\r
+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
+\r
+SilentUnInstall normal\r
+\r
+# Uses $0\r
+Function openLinkNewWindow\r
+  Push $3 \r
+  Push $2\r
+  Push $1\r
+  Push $0\r
+  ReadRegStr $0 HKCR "http\shell\open\command" ""\r
+# Get browser path\r
+    DetailPrint $0\r
+  StrCpy $2 '"'\r
+  StrCpy $1 $0 1\r
+  StrCmp $1 $2 +2 # if path is not enclosed in " look for space as final char\r
+    StrCpy $2 ' '\r
+  StrCpy $3 1\r
+  loop:\r
+    StrCpy $1 $0 1 $3\r
+    DetailPrint $1\r
+    StrCmp $1 $2 found\r
+    StrCmp $1 "" found\r
+    IntOp $3 $3 + 1\r
+    Goto loop\r
\r
+  found:\r
+    StrCpy $1 $0 $3\r
+    StrCmp $2 " " +2\r
+      StrCpy $1 '$1"'\r
\r
+  Pop $0\r
+  Exec '$1 $0'\r
+  Pop $1\r
+  Pop $2\r
+  Pop $3\r
+FunctionEnd\r
+\r
+Var BLENDERHOME\r
+Var DLL_found\r
+Var PREVHOME\r
+\r
+Function SetWinXPPathCurrentUser\r
+  SetShellVarContext current\r
+  StrCpy $BLENDERHOME "$APPDATA\Blender Foundation\Blender"\r
+FunctionEnd\r
+\r
+Function SetWinXPPathAllUsers\r
+  SetShellVarContext all\r
+  StrCpy $BLENDERHOME "$APPDATA\Blender Foundation\Blender"\r
+FunctionEnd\r
+\r
+Function SetWin9xPath\r
+  StrCpy $BLENDERHOME $INSTDIR\r
+FunctionEnd\r
+\r
+; custom controls\r
+Var HWND\r
+\r
+Var HWND_APPDATA\r
+Var HWND_INSTDIR\r
+Var HWND_HOMEDIR\r
+\r
+Var HWND_BUTTON_YES\r
+Var HWND_BUTTON_NO\r
+\r
+Var SETUSERCONTEXT\r
+\r
+Function PreMigrateUserSettings\r
+  StrCpy $PREVHOME "$PROFILE\Application Data\Blender Foundation\Blender"\r
+  StrCpy $0 "$PROFILE\Application Data\Blender Foundation\Blender\.blender"\r
+  \r
+  IfFileExists $0 0 nochange\r
+  \r
+  StrCmp $BLENDERHOME $PREVHOME nochange\r
+  \r
+  nsDialogs::Create /NOUNLOAD 1018\r
+  Pop $HWND\r
+  \r
+  ${If} $HWND == error\r
+       Abort\r
+  ${EndIf}\r
+  \r
+  ${NSD_CreateLabel} 0 0 100% 12u "You have existing settings at:"\r
+  ${NSD_CreateLabel} 0 20 100% 12u $PREVHOME\r
+  ${NSD_CreateLabel} 0 40 100% 12u "Do you wish to migrate this data to:"\r
+  ${NSD_CreateLabel} 0 60 100% 12u $BLENDERHOME\r
+  ${NSD_CreateLabel} 0 80 100% 12u "Please note: If you choose no, Blender will not be able to use these files!"\r
+  ${NSD_CreateRadioButton} 0 100 100% 12u "Yes"\r
+  Pop $HWND_BUTTON_YES\r
+  ${NSD_CreateRadioButton} 0 120 100% 12u "No"\r
+  Pop $HWND_BUTTON_NO\r
+  \r
+  SendMessage $HWND_BUTTON_YES ${BM_SETCHECK} 1 0\r
+  \r
+  nsDialogs::Show\r
+  nochange:\r
+  \r
+FunctionEnd\r
+\r
+Function MigrateUserSettings\r
+  ${NSD_GetState} $HWND_BUTTON_YES $R0\r
+  ${If} $R0 == "1"\r
+    CreateDirectory $BLENDERHOME\r
+    CopyFiles $PREVHOME\*.* $BLENDERHOME\r
+    ;RMDir /r $PREVHOME\r
+  ${EndIf}  \r
+FunctionEnd\r
+\r
+!define DLL_VER "8.00.50727.42"\r
+!define DLL_VER2 "7.10.3052.4"\r
+\r
+Function LocateCallback_80\r
+       MoreInfo::GetProductVersion "$R9"\r
+       Pop $0\r
+\r
+        ${VersionCompare} "$0" "${DLL_VER}" $R1\r
+\r
+        StrCmp $R1 0 0 new\r
+      new:\r
+        StrCmp $R1 1 0 old\r
+      old:\r
+        StrCmp $R1 2 0 end\r
+       ; Found DLL is older\r
+        Call DownloadDLL\r
+\r
+     end:\r
+       StrCpy "$0" StopLocate\r
+       StrCpy $DLL_found "true"\r
+       Push "$0"\r
+\r
+FunctionEnd\r
+\r
+Function LocateCallback_71\r
+       MoreInfo::GetProductVersion "$R9"\r
+       Pop $0\r
+\r
+        ${VersionCompare} "$0" "${DLL_VER2}" $R1\r
+\r
+        StrCmp $R1 0 0 new\r
+      new:\r
+        StrCmp $R1 1 0 old\r
+      old:\r
+        StrCmp $R1 2 0 end\r
+       ; Found DLL is older\r
+        Call PythonInstall\r
+\r
+     end:\r
+       StrCpy "$0" StopLocate\r
+       StrCpy $DLL_found "true"\r
+       Push "$0"\r
+\r
+FunctionEnd\r
+\r
+Function DownloadDLL\r
+    MessageBox MB_OK "You will need to download the Microsoft Visual C++ 2005 Redistributable Package in order to run Blender. Pressing OK will take you to the download page, please follow the instructions on the page that appears."\r
+    StrCpy $0 "http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en"\r
+    Call openLinkNewWindow\r
+FunctionEnd\r
+\r
+Function PythonInstall\r
+    MessageBox MB_OK "You will need to install python 2.5 in order to run blender. Pressing OK will take you to the python.org website."\r
+    StrCpy $0 "http://www.python.org"\r
+    Call openLinkNewWindow\r
+FunctionEnd\r
+\r
+Function DataLocation\r
+  nsDialogs::Create /NOUNLOAD 1018\r
+  Pop $HWND\r
+  \r
+  ${If} $HWND == error\r
+    Abort\r
+  ${EndIf}\r
+  \r
+  ${NSD_CreateLabel} 0 0 100% 12u "Please specify where you wish to install Blender's user data files."\r
+  ${NSD_CreateRadioButton} 0 20 100% 12u "Use the Application Data directory (Requires Windows 2000 or better)"\r
+  Pop $HWND_APPDATA\r
+  ${NSD_CreateRadioButton} 0 50 100% 12u "Use the installation directory (ie. location chosen to install blender.exe)."\r
+  Pop $HWND_INSTDIR\r
+  ${NSD_CreateRadioButton} 0 80 100% 12u "I have defined a %HOME% variable, please install files here."\r
+  Pop $HWND_HOMEDIR\r
+  \r
+  ${If} ${AtMostWinME}\r
+    GetDlgItem $0 $HWND $HWND_APPDATA\r
+    EnableWindow $0 0\r
+    SendMessage $HWND_INSTDIR ${BM_SETCHECK} 1 0\r
+  ${Else}\r
+    SendMessage $HWND_APPDATA ${BM_SETCHECK} 1 0\r
+  ${EndIf}\r
+  \r
+  nsDialogs::Show\r
+  \r
+FunctionEnd\r
+\r
+Function DataLocationOnLeave\r
+       StrCpy $SETUSERCONTEXT "false"\r
+       ${NSD_GetState} $HWND_APPDATA $R0\r
+       ${If} $R0 == "1"\r
+         StrCpy $SETUSERCONTEXT "true"\r
+       ${Else}\r
+         ${NSD_GetState} $HWND_INSTDIR $R0\r
+         ${If} $R0 == "1"\r
+           Call SetWin9xPath\r
+         ${Else}\r
+           ${NSD_GetState} $HWND_HOMEDIR $R0\r
+           ${If} $R0 == "1"\r
+             ReadEnvStr $BLENDERHOME "HOME"\r
+           ${EndIf}\r
+         ${EndIf}\r
+       ${EndIf}\r
+FunctionEnd\r
+\r
+Var HWND_APPDATA_CURRENT\r
+Var HWND_APPDATA_ALLUSERS\r
+\r
+Function AppDataChoice\r
+  StrCmp $SETUSERCONTEXT "false" skip\r
+  \r
+  nsDialogs::Create /NOUNLOAD 1018\r
+  Pop $HWND\r
+  \r
+  ${NSD_CreateLabel} 0 0 100% 12u "Please choose which Application Data directory to use."\r
+  ${NSD_CreateRadioButton} 0 40 100% 12u "Current User"\r
+  Pop $HWND_APPDATA_CURRENT\r
+  ${NSD_CreateRadioButton} 0 70 100% 12u "All Users"\r
+  Pop $HWND_APPDATA_ALLUSERS\r
+  \r
+  SendMessage $HWND_APPDATA_CURRENT ${BM_SETCHECK} 1 0\r
+  \r
+  StrCmp $SETUSERCONTEXT "true" 0 skip ; show dialog if we need to set context, otherwise skip it\r
+  nsDialogs::Show\r
+  \r
+skip:\r
+\r
+FunctionEnd\r
+\r
+Function AppDataChoiceOnLeave\r
+       StrCmp $SETUSERCONTEXT "false" skip\r
+       ${NSD_GetState} $HWND_APPDATA_CURRENT $R0\r
+       ${If} $R0 == "1"\r
+          Call SetWinXPPathCurrentUser\r
+       ${Else}\r
+          Call SetWinXPPathAllUsers\r
+       ${EndIf}\r
+skip:\r
+\r
+FunctionEnd\r
+\r
+Section "Blender-VERSION (required)" SecCopyUI\r
+  SectionIn RO\r
+\r
+  ; Set output path to the installation directory.\r
+  SetOutPath $INSTDIR\r
+  ; Put file there\r
+  [ROOTDIRCONTS]\r
+  \r
+  ;SetOutPath $BLENDERHOME\$BLENDERVERSION\r
+  ;[DATAFILES] ; and we write datafiles to user accessable dir\r
+  [DODATAFILES]\r
+  \r
+  SetOutPath $INSTDIR\r
+  ; Write the installation path into the registry\r
+  WriteRegStr HKLM SOFTWARE\BlenderFoundation "Install_Dir" "$INSTDIR"\r
+  ; Write the uninstall keys for Windows\r
+  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender" "DisplayName" "Blender (remove only)"\r
+  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender" "UninstallString" '"$INSTDIR\uninstall.exe"'\r
+  WriteUninstaller "uninstall.exe"\r
+\r
+  ; Check for msvcr80.dll - give notice to download if not found\r
+  MessageBox MB_OK "The installer will now check your system for the required system dlls."\r
+  StrCpy $1 $WINDIR\r
+  StrCpy $DLL_found "false"\r
+  ${Locate} "$1" "/L=F /M=MSVCR80.DLL /S=0B" "LocateCallback_80"\r
+  StrCmp $DLL_found "false" 0 +2\r
+    Call DownloadDLL\r
+  StrCpy $1 $WINDIR\r
+  StrCpy $DLL_found "false"\r
+  ${Locate} "$1" "/L=F /M=MSVCR71.DLL /S=0B" "LocateCallback_71"\r
+  StrCmp $DLL_found "false" 0 +2\r
+    Call PythonInstall\r
+  \r
+SectionEnd\r
+\r
+Section "Add Start Menu shortcuts" Section2\r
+  SetOutPath $INSTDIR\r
+  CreateDirectory "$SMPROGRAMS\Blender Foundation\Blender\"\r
+  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0\r
+  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Blender.lnk" "$INSTDIR\Blender.exe" "" "$INSTDIR\blender.exe" 0\r
+  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Readme.lnk" "$INSTDIR\Blender.html" "" "" 0\r
+  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Copyright.lnk" "$INSTDIR\Copyright.txt" "" "$INSTDIR\copyright.txt" 0\r
+  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\GPL-license.lnk" "$INSTDIR\GPL-license.txt" "" "$INSTDIR\GPL-license.txt" 0\r
+  CreateShortCut "$SMPROGRAMS\Blender Foundation\Blender\Help.lnk" "$INSTDIR\Help.url"\r
+SectionEnd\r
+\r
+Section "Add Desktop Blender-VERSION shortcut" Section3\r
+  SetOutPath $INSTDIR\r
+  CreateShortCut "$DESKTOP\Blender.lnk" "$INSTDIR\blender.exe" "" "$INSTDIR\blender.exe" 0\r
+SectionEnd\r
+\r
+Section "Open .blend files with Blender-VERSION" Section4\r
+  SetOutPath $INSTDIR\r
+  ;ExecShell "open" '"$INSTDIR\blender.exe"' "-R -b"\r
+  ;do it the manual way! ;)\r
+  \r
+  WriteRegStr HKCR ".blend" "" "blendfile"\r
+  WriteRegStr HKCR "blendfile" "" "Blender .blend File"\r
+  WriteRegStr HKCR "blendfile\shell" "" "open"\r
+  WriteRegStr HKCR "blendfile\DefaultIcon" "" $INSTDIR\blender.exe,1\r
+  WriteRegStr HKCR "blendfile\shell\open\command" "" \\r
+    '"$INSTDIR\blender.exe" "%1"'\r
+  \r
+SectionEnd\r
+\r
+UninstallText "This will uninstall Blender VERSION. Hit next to continue."\r
+\r
+Section "Uninstall"\r
+  ; remove registry keys\r
+  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Blender"\r
+  DeleteRegKey HKLM SOFTWARE\BlenderFoundation\r
+  ; remove files\r
+  [DELROOTDIRCONTS]\r
+  \r
+  Delete $INSTDIR\.blender\.bfont.ttf\r
+  Delete $INSTDIR\.blender\.Blanguages\r
+  ; remove shortcuts, if any.\r
+  Delete "$SMPROGRAMS\Blender Foundation\Blender\*.*"\r
+  Delete "$DESKTOP\Blender.lnk"\r
+  ; remove directories used.\r
+  RMDir /r $INSTDIR\.blender\locale\r
+  MessageBox MB_YESNO "Erase .blender\scripts folder? (ALL contents will be erased!)" IDNO Next\r
+  RMDir /r $INSTDIR\.blender\scripts\r
+  RMDir /r $INSTDIR\.blender\scripts\bpymodules\r
+  RMDir /r $INSTDIR\.blender\scripts\bpydata\r
+  RMDir /r $INSTDIR\.blender\scripts\bpydata\config\r
+Next:\r
+  RMDir /r $INSTDIR\plugins\include\r
+  RMDir /r $INSTDIR\plugins\r
+  RMDir $INSTDIR\.blender\r
+  RMDir "$SMPROGRAMS\Blender Foundation\Blender"\r
+  RMDir "$SMPROGRAMS\Blender Foundation"\r
+  RMDir "$INSTDIR"\r
+  RMDir "$INSTDIR\.."\r
+SectionEnd\r
+\r
+!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN\r
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyUI} $(DESC_SecCopyUI)\r
+  !insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)\r
+  !insertmacro MUI_DESCRIPTION_TEXT ${Section3} $(DESC_Section3)\r
+  !insertmacro MUI_DESCRIPTION_TEXT ${Section4} $(DESC_Section4)\r
+!insertmacro MUI_FUNCTION_DESCRIPTION_END\r
index 7be8e069bd03d60be6901fede08ba3ea6df53edd..36348f0cbac56a86843e4837223cbc01b007e73c 100644 (file)
@@ -72,6 +72,7 @@
 /* local */
 
 static int add_win32_extension(char *name);
+static char *blender_version_decimal(void);
 
 /* implementation */
 
@@ -745,17 +746,15 @@ char *BLI_gethome(void) {
 
                ret = getenv("HOME");
                if(ret) {
-                       sprintf(dir, "%s\\.blender", ret);
+                       sprintf(dir, "%s\\%s", ret, blender_version_decimal());
                        if (BLI_exists(dir)) return dir;
                }
 
                /* else, check install dir (path containing blender.exe) */
 
-               BLI_getInstallationDir(dir);
-
-               if (BLI_exists(dir))
+               if(BLI_getInstallationDir(ret))
                {
-                       strcat(dir,"\\.blender");
+                       sprintf(dir, "%s", ret, blender_version_decimal());
                        if (BLI_exists(dir)) return(dir);
                }
 
@@ -773,7 +772,7 @@ char *BLI_gethome(void) {
                                sprintf(dir, "%s\\Blender Foundation\\Blender", appdatapath);
                                BLI_recurdir_fileops(dir);
                                if (BLI_exists(dir)) {
-                                       strcat(dir,"\\.blender");
+                                       sprintf(dir,"%s\\%s", dir, blender_version_decimal());
                                        if(BLI_exists(dir)) return(dir);
                                }
                        }
@@ -785,7 +784,7 @@ char *BLI_gethome(void) {
                                        sprintf(dir, "%s\\Blender Foundation\\Blender", appdatapath);
                                        BLI_recurdir_fileops(dir);
                                        if (BLI_exists(dir)) {
-                                               strcat(dir,"\\.blender");
+                                               sprintf(dir,"%s\\%s", dir, blender_version_decimal());
                                                if(BLI_exists(dir)) return(dir);
                                        }
                                }
index cb3ccd3ba037cbd0caa24181365f4dbaba957f7d..9add22d8270405a0f5c81638970f86c34d0d1da2 100644 (file)
@@ -451,26 +451,37 @@ def NSIS_print(target, source, env):
 
 def NSIS_Installer(target=None, source=None, env=None):
 
-    if env['OURPLATFORM'] != 'win32-vc' and env['OURPLATFORM'] != 'win32-mingw':
+    if env['OURPLATFORM'] not in ('win32-vc', 'win32-mingw', 'win64-vc'):
         print "NSIS installer is only available on Windows."
         Exit()
         
     start_dir = os.getcwd()
-    rel_dir = start_dir + "\\release\\windows\\installer\\"
-    install_base_dir = start_dir + "\\"
-    
-    if not os.path.exists(install_base_dir+env['BF_INSTALLDIR']+'/plugins/include'):
-        os.mkdir(install_base_dir+env['BF_INSTALLDIR']+'/plugins/include')
-        
-    for f in glob.glob('source/blender/blenpluginapi/*.h'):
-        shutil.copy(f,install_base_dir+env['BF_INSTALLDIR']+'/plugins/include')
+    rel_dir = os.path.join(start_dir,'release','windows','installer')
+    install_base_dir = start_dir + os.sep
+
+    bf_installdir = os.path.join(os.getcwd(),env['BF_INSTALLDIR'])
+    bf_installdir = os.path.normpath(bf_installdir)
+
+    doneroot = False
+    rootdirconts = []
+    datafiles = ''
+    l = len(bf_installdir)
+    for dp,dn,df in os.walk(bf_installdir):
+        if not doneroot:
+            for f in df:
+                rootdirconts.append(os.path.join(dp,f))
+            doneroot = True
+        else:
+            datafiles += "\n"+r'SetOutPath $BLENDERHOME'+dp[l:]+"\n\n"
+
+            for f in df:
+                outfile = os.path.join(dp,f)
+                datafiles += '  File '+outfile + "\n"
 
-    shutil.copy('source/blender/blenpluginapi/plugin.def',install_base_dir+env['BF_INSTALLDIR']+'/plugins/include/')
     
     os.chdir("release")
     v = open("VERSION")
     version = v.read()[:-1]    
-    shortver = version.split('.')[0] + version.split('.')[1]
     v.close()
 
     #### change to suit install dir ####
@@ -484,136 +495,34 @@ def NSIS_Installer(target=None, source=None, env=None):
     ns_cnt = str(ns.read())
     ns.close()
 
-    # set Python version we compile against
-    ns_cnt = string.replace(ns_cnt, "[PYTHON_VERSION]", env['BF_PYTHON_VERSION'])
+    # var replacements
+    ns_cnt = string.replace(ns_cnt, "[DISTDIR]", os.path.normpath(inst_dir+"\\"))
+    ns_cnt = string.replace(ns_cnt, "[VERSION]", version)
+    ns_cnt = string.replace(ns_cnt, "[RELDIR]", os.path.normpath(rel_dir))
 
     # do root
     rootlist = []
-    rootdir = os.listdir(inst_dir+"\\")
-    for rootitem in rootdir:
-        if os.path.isdir(inst_dir+"\\"+ rootitem) == 0:
-            rootlist.append("File \"" + os.path.normpath(inst_dir) + "\\" + rootitem+"\"")
+    for rootitem in rootdirconts:
+        rootlist.append("File \"" + rootitem + "\"")
     rootstring = string.join(rootlist, "\n  ")
+    rootstring = rootstring
     rootstring += "\n\n"
     ns_cnt = string.replace(ns_cnt, "[ROOTDIRCONTS]", rootstring)
 
+    #print rootstring
+    #print datafiles
+    print "="*50
+
     # do delete items
     delrootlist = []
-    for rootitem in rootdir:
-        if os.path.isdir(inst_dir + rootitem) == 0:
-            delrootlist.append("Delete $INSTDIR\\" + rootitem)
+    for rootitem in rootdirconts:
+        delrootlist.append("Delete $INSTDIR\\" + rootitem[l+1:])
     delrootstring = string.join(delrootlist, "\n ")
     delrootstring += "\n"
     ns_cnt = string.replace(ns_cnt, "[DELROOTDIRCONTS]", delrootstring)
 
-    # do scripts
-    scriptlist = []
-    scriptpath = "%s%s" % (inst_dir, "\\.blender\\scripts")
-    scriptdir = os.listdir(scriptpath)
-    for scriptitem in scriptdir:
-        scriptfile = "%s\\%s" % (scriptpath, scriptitem)
-        if os.path.isdir(scriptfile) == 0:
-            scriptfile = os.path.normpath(scriptfile)
-            scriptlist.append("File \"%s\"" % scriptfile)
-    scriptstring = string.join(scriptlist, "\n  ")
-    scriptstring += "\n\n"
-    ns_cnt = string.replace(ns_cnt, "[SCRIPTCONTS]", scriptstring)
-
-    # do scripts\bpymodules
-    bpymodlist = []
-    bpymodpath = "%s%s" % (inst_dir, "\\.blender\\scripts\\bpymodules")
-    bpymoddir = os.listdir(bpymodpath)
-
-    for bpymoditem in bpymoddir:
-        bpymodfile = "%s\\%s" % (bpymodpath, bpymoditem)
-        if os.path.isdir(bpymodfile) == 0:
-            bpymodfile = os.path.normpath(bpymodfile)
-            bpymodlist.append("File \"%s\"" % bpymodfile)
-    bpymodstring = string.join(bpymodlist, "\n  ")
-    bpymodstring += "\n\n"
-    ns_cnt = string.replace(ns_cnt, "[SCRIPTMODCONTS]", bpymodstring)
-
-    # do scripts\bpymodules\colladaimex
-    colladalist = []
-    bpymodpath = "%s%s" % (inst_dir, "\\.blender\\scripts\\bpymodules\\ColladaImEx")
-    bpymoddir = os.listdir(bpymodpath)
-
-    for bpymoditem in bpymoddir:
-        bpymodfile = "%s\\%s" % (bpymodpath, bpymoditem)
-        if os.path.isdir(bpymodfile) == 0:
-            bpymodfile=os.path.normpath(bpymodfile)
-            colladalist.append("File \"%s\"" % bpymodfile)
-    bpymodstring = string.join(colladalist, "\n  ")
-    bpymodstring += "\n\n"
-    ns_cnt = string.replace(ns_cnt, "[SCRIPTMODCOLLADACONT]", bpymodstring)
-
-    # do scripts\bpydata
-    bpydatalist = []
-    bpydatapath = "%s%s" % (inst_dir, "\\.blender\\scripts\\bpydata")
-    bpydatadir = os.listdir(bpydatapath)
-    for bpydataitem in bpydatadir:
-        bpydatafile = "%s\\%s" % (bpydatapath, bpydataitem)
-        if os.path.isdir(bpydatafile) == 0:
-            bpydatalist.append("File \"%s\"" % bpydatafile)
-    bpydatastring = string.join(bpydatalist, "\n  ")
-    bpydatastring += "\n\n"
-    ns_cnt = string.replace(ns_cnt, "[SCRIPTDATACONTS]", bpydatastring)
-
-    # do plugins\include
-    plugincludelist = []
-    plugincludepath = "%s%s" % (inst_dir, "\\plugins\\include")
-    plugincludedir = os.listdir(plugincludepath)
-    for plugincludeitem in plugincludedir:
-        plugincludefile = "%s\\%s" % (plugincludepath, plugincludeitem)
-        if os.path.isdir(plugincludefile) == 0:
-            if plugincludefile.find('.h') or plugincludefile.find('.DEF'):
-                plugincludefile = os.path.normpath(plugincludefile)
-                plugincludelist.append("File \"%s\"" % plugincludefile)
-    plugincludestring = string.join(plugincludelist, "\n  ")
-    plugincludestring += "\n\n"
-    ns_cnt = string.replace(ns_cnt, "[PLUGINCONTS]", plugincludestring)
-
-    # do scripts\bpydata\config
-    cfglist = []
-    cfgpath = "%s%s" % (inst_dir, "\\.blender\\scripts\\bpydata\\config")
-    cfgdir = os.listdir(cfgpath)
-    for cfgitem in cfgdir:
-        cfgfile = "%s\\%s" % (cfgpath, cfgitem)
-        if os.path.isdir(cfgfile) == 0:
-            cfglist.append("File \"%s\"" % cfgfile)
-    cfgstring = string.join(cfglist, "\n  ")
-    cfgstring += "\n\n"
-    ns_cnt = string.replace(ns_cnt, "[SCRIPTDATACFGCONTS]", cfgstring)
-
-    # do dotblender
-    dotblendlist = []
-    dotblenddir = os.listdir(inst_dir+"\\.blender")
-    for dotblenditem in dotblenddir:
-        if os.path.isdir(inst_dir + "\\.blender\\" + dotblenditem) == 0:
-            dotblendlist.append("File \"" + os.path.normpath(inst_dir) + "\\.blender\\" +
-            dotblenditem+"\"")
-    dotblendstring = string.join(dotblendlist, "\n  ")
-    dotblendstring += "\n\n"
-    ns_cnt = string.replace(ns_cnt, "[DOTBLENDERCONTS]", dotblendstring)
-
-    # do language files
-    langlist = []
-    langfiles = []
-    langdir = os.listdir(inst_dir + "\\.blender\\locale")
-    for langitem in langdir:
-        if os.path.isdir(inst_dir + "\\.blender\\locale\\" + langitem) == 1:
-            langfiles.append("SetOutPath $BLENDERHOME\\.blender\\locale\\" + langitem + "\\LC_MESSAGES")
-            langfiles.append("File \"" + os.path.normpath(inst_dir) + "\\.blender\\locale\\"
-                    + langitem + "\\LC_MESSAGES\\blender.mo\"")
-    langstring = string.join(langfiles, "\n  ")
-    langstring += "\n\n"
-    ns_cnt = string.replace(ns_cnt, "[LANGUAGECONTS]", langstring)
+    ns_cnt = string.replace(ns_cnt, "[DODATAFILES]", datafiles)
 
-    # var replacements
-    ns_cnt = string.replace(ns_cnt, "DISTDIR", os.path.normpath(inst_dir+"\\"))
-    ns_cnt = string.replace(ns_cnt, "SHORTVER", shortver)
-    ns_cnt = string.replace(ns_cnt, "VERSION", version)
-    ns_cnt = string.replace(ns_cnt, "RELDIR", os.path.normpath(rel_dir))
 
     tmpnsi = os.path.normpath(install_base_dir+os.sep+env['BF_BUILDDIR']+os.sep+"00.blender_tmp.nsi")
     new_nsis = open(tmpnsi, 'w')