[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30003] trunk/blender: * use blender_decimal_version() in places where '.blender/' was still being used

Nathan Letwory nathan at letworyinteractive.com
Mon Jul 5 21:59:28 CEST 2010


Revision: 30003
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30003
Author:   jesterking
Date:     2010-07-05 21:59:27 +0200 (Mon, 05 Jul 2010)

Log Message:
-----------
* use blender_decimal_version() in places where '.blender/' was still being used
* simplify the NSIS file creation (and add those files back).

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

Modified Paths:
--------------
    trunk/blender/source/blender/blenlib/intern/path_util.c
    trunk/blender/tools/btools.py

Added Paths:
-----------
    trunk/blender/release/windows/installer/
    trunk/blender/release/windows/installer/00.checked.bmp
    trunk/blender/release/windows/installer/00.header.bmp
    trunk/blender/release/windows/installer/00.installer.ico
    trunk/blender/release/windows/installer/00.sconsblender.nsi
    trunk/blender/release/windows/installer/1100.sconsblender.nsi

Added: trunk/blender/release/windows/installer/00.checked.bmp
===================================================================
(Binary files differ)


Property changes on: trunk/blender/release/windows/installer/00.checked.bmp
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/blender/release/windows/installer/00.header.bmp
===================================================================
(Binary files differ)


Property changes on: trunk/blender/release/windows/installer/00.header.bmp
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/blender/release/windows/installer/00.installer.ico
===================================================================
(Binary files differ)


Property changes on: trunk/blender/release/windows/installer/00.installer.ico
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/blender/release/windows/installer/00.sconsblender.nsi
===================================================================
--- trunk/blender/release/windows/installer/00.sconsblender.nsi	                        (rev 0)
+++ trunk/blender/release/windows/installer/00.sconsblender.nsi	2010-07-05 19:59:27 UTC (rev 30003)
@@ -0,0 +1,418 @@
+;
+; $Id$
+;
+; Blender Self-Installer for Windows (NSIS - http://nsis.sourceforge.net)
+;
+; Requires the MoreInfo plugin - http://nsis.sourceforge.net/MoreInfo_plug-in
+;
+
+!include "MUI.nsh"
+!include "WinVer.nsh"
+!include "FileFunc.nsh"
+!include "WordFunc.nsh"
+!include "nsDialogs.nsh"
+
+SetCompressor /SOLID lzma
+
+Name "Blender [VERSION]" 
+
+!define MUI_ABORTWARNING
+
+!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."
+!define MUI_WELCOMEFINISHPAGE_BITMAP "[RELDIR]\01.installer.bmp"
+!define MUI_HEADERIMAGE
+!define MUI_HEADERIMAGE_BITMAP  "[RELDIR]\00.header.bmp"
+!define MUI_COMPONENTSPAGE_SMALLDESC
+!define MUI_FINISHPAGE_RUN "$INSTDIR\blender.exe"
+!define MUI_CHECKBITMAP "[RELDIR]\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 DataLocationOnLeave
+Page custom AppDataChoice AppDataChoiceOnLeave
+Page custom PreMigrateUserSettings MigrateUserSettings
+!insertmacro MUI_PAGE_INSTFILES
+!insertmacro MUI_PAGE_FINISH
+  
+!insertmacro MUI_UNPAGE_WELCOME
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+!insertmacro MUI_UNPAGE_FINISH
+
+!insertmacro Locate
+!insertmacro VersionCompare
+
+
+Icon "[RELDIR]\00.installer.ico"
+UninstallIcon "[RELDIR]\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"
+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
+
+# Uses $0
+Function openLinkNewWindow
+  Push $3 
+  Push $2
+  Push $1
+  Push $0
+  ReadRegStr $0 HKCR "http\shell\open\command" ""
+# Get browser path
+    DetailPrint $0
+  StrCpy $2 '"'
+  StrCpy $1 $0 1
+  StrCmp $1 $2 +2 # if path is not enclosed in " look for space as final char
+    StrCpy $2 ' '
+  StrCpy $3 1
+  loop:
+    StrCpy $1 $0 1 $3
+    DetailPrint $1
+    StrCmp $1 $2 found
+    StrCmp $1 "" found
+    IntOp $3 $3 + 1
+    Goto loop
+ 
+  found:
+    StrCpy $1 $0 $3
+    StrCmp $2 " " +2
+      StrCpy $1 '$1"'
+ 
+  Pop $0
+  Exec '$1 $0'
+  Pop $1
+  Pop $2
+  Pop $3
+FunctionEnd
+
+Var BLENDERHOME
+Var DLL_found
+Var PREVHOME
+
+Function SetWinXPPathCurrentUser
+  SetShellVarContext current
+  StrCpy $BLENDERHOME "$APPDATA\Blender Foundation\Blender"
+FunctionEnd
+
+Function SetWinXPPathAllUsers
+  SetShellVarContext all
+  StrCpy $BLENDERHOME "$APPDATA\Blender Foundation\Blender"
+FunctionEnd
+
+Function SetWin9xPath
+  StrCpy $BLENDERHOME $INSTDIR
+FunctionEnd
+
+; custom controls
+Var HWND
+
+Var HWND_APPDATA
+Var HWND_INSTDIR
+Var HWND_HOMEDIR
+
+Var HWND_BUTTON_YES
+Var HWND_BUTTON_NO
+
+Var SETUSERCONTEXT
+
+Function PreMigrateUserSettings
+  StrCpy $PREVHOME "$PROFILE\Application Data\Blender Foundation\Blender"
+  StrCpy $0 "$PROFILE\Application Data\Blender Foundation\Blender\.blender"
+  
+  IfFileExists $0 0 nochange
+  
+  StrCmp $BLENDERHOME $PREVHOME nochange
+  
+  nsDialogs::Create /NOUNLOAD 1018
+  Pop $HWND
+  
+  ${If} $HWND == error
+  Abort
+  ${EndIf}
+  
+  ${NSD_CreateLabel} 0 0 100% 12u "You have existing settings at:"
+  ${NSD_CreateLabel} 0 20 100% 12u $PREVHOME
+  ${NSD_CreateLabel} 0 40 100% 12u "Do you wish to migrate this data to:"
+  ${NSD_CreateLabel} 0 60 100% 12u $BLENDERHOME
+  ${NSD_CreateLabel} 0 80 100% 12u "Please note: If you choose no, Blender will not be able to use these files!"
+  ${NSD_CreateRadioButton} 0 100 100% 12u "Yes"
+  Pop $HWND_BUTTON_YES
+  ${NSD_CreateRadioButton} 0 120 100% 12u "No"
+  Pop $HWND_BUTTON_NO
+  
+  SendMessage $HWND_BUTTON_YES ${BM_SETCHECK} 1 0
+  
+  nsDialogs::Show
+  nochange:
+  
+FunctionEnd
+
+Function MigrateUserSettings
+  ${NSD_GetState} $HWND_BUTTON_YES $R0
+  ${If} $R0 == "1"
+    CreateDirectory $BLENDERHOME
+    CopyFiles $PREVHOME\*.* $BLENDERHOME
+    ;RMDir /r $PREVHOME
+  ${EndIf}  
+FunctionEnd
+
+!define DLL_VER "8.00.50727.42"
+!define DLL_VER2 "7.10.3052.4"
+
+Function LocateCallback_80
+  MoreInfo::GetProductVersion "$R9"
+  Pop $0
+
+        ${VersionCompare} "$0" "${DLL_VER}" $R1
+
+        StrCmp $R1 0 0 new
+      new:
+        StrCmp $R1 1 0 old
+      old:
+        StrCmp $R1 2 0 end
+  ; Found DLL is older
+        Call DownloadDLL
+
+     end:
+  StrCpy "$0" StopLocate
+  StrCpy $DLL_found "true"
+  Push "$0"
+
+FunctionEnd
+
+Function LocateCallback_71
+  MoreInfo::GetProductVersion "$R9"
+  Pop $0
+
+        ${VersionCompare} "$0" "${DLL_VER2}" $R1
+
+        StrCmp $R1 0 0 new
+      new:
+        StrCmp $R1 1 0 old
+      old:
+        StrCmp $R1 2 0 end
+  ; Found DLL is older
+
+     end:
+  StrCpy "$0" StopLocate
+  StrCpy $DLL_found "true"
+  Push "$0"
+
+FunctionEnd
+
+Function DownloadDLL
+    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."
+    StrCpy $0 "http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en"
+    Call openLinkNewWindow
+FunctionEnd
+
+Function DataLocation
+  nsDialogs::Create /NOUNLOAD 1018
+  Pop $HWND
+  
+  ${If} $HWND == error
+    Abort
+  ${EndIf}
+  
+  ${NSD_CreateLabel} 0 0 100% 12u "Please specify where you wish to install Blender's user data files."
+  ${NSD_CreateRadioButton} 0 20 100% 12u "Use the Application Data directory (Requires Windows 2000 or better)"
+  Pop $HWND_APPDATA
+  ${NSD_CreateRadioButton} 0 50 100% 12u "Use the installation directory (ie. location chosen to install blender.exe)."
+  Pop $HWND_INSTDIR
+  ${NSD_CreateRadioButton} 0 80 100% 12u "I have defined a %HOME% variable, please install files here."
+  Pop $HWND_HOMEDIR
+  
+  ${If} ${AtMostWinME}
+    GetDlgItem $0 $HWND $HWND_APPDATA
+    EnableWindow $0 0
+    SendMessage $HWND_INSTDIR ${BM_SETCHECK} 1 0
+  ${Else}
+    SendMessage $HWND_APPDATA ${BM_SETCHECK} 1 0
+  ${EndIf}
+  
+  nsDialogs::Show
+  
+FunctionEnd
+
+Function DataLocationOnLeave
+  StrCpy $SETUSERCONTEXT "false"
+  ${NSD_GetState} $HWND_APPDATA $R0
+  ${If} $R0 == "1"
+    StrCpy $SETUSERCONTEXT "true"
+  ${Else}
+    ${NSD_GetState} $HWND_INSTDIR $R0
+    ${If} $R0 == "1"
+      Call SetWin9xPath
+    ${Else}
+      ${NSD_GetState} $HWND_HOMEDIR $R0
+      ${If} $R0 == "1"
+        ReadEnvStr $BLENDERHOME "HOME"
+      ${EndIf}
+    ${EndIf}
+  ${EndIf}
+FunctionEnd
+
+Var HWND_APPDATA_CURRENT
+Var HWND_APPDATA_ALLUSERS
+
+Function AppDataChoice
+  StrCmp $SETUSERCONTEXT "false" skip
+  
+  nsDialogs::Create /NOUNLOAD 1018
+  Pop $HWND
+  
+  ${NSD_CreateLabel} 0 0 100% 12u "Please choose which Application Data directory to use."
+  ${NSD_CreateRadioButton} 0 40 100% 12u "Current User"
+  Pop $HWND_APPDATA_CURRENT
+  ${NSD_CreateRadioButton} 0 70 100% 12u "All Users"
+  Pop $HWND_APPDATA_ALLUSERS
+  
+  SendMessage $HWND_APPDATA_CURRENT ${BM_SETCHECK} 1 0
+  
+  StrCmp $SETUSERCONTEXT "true" 0 skip ; show dialog if we need to set context, otherwise skip it
+  nsDialogs::Show
+  
+skip:
+
+FunctionEnd
+
+Function AppDataChoiceOnLeave
+  StrCmp $SETUSERCONTEXT "false" skip
+  ${NSD_GetState} $HWND_APPDATA_CURRENT $R0
+  ${If} $R0 == "1"
+     Call SetWinXPPathCurrentUser
+  ${Else}
+     Call SetWinXPPathAllUsers
+  ${EndIf}
+skip:
+
+FunctionEnd
+
+Section "Blender-[VERSION] (required)" SecCopyUI
+  SectionIn RO
+
+  ; Set output path to the installation directory.
+  SetOutPath $INSTDIR
+  ; Put file there
+  [ROOTDIRCONTS]
+  
+  ;SetOutPath $BLENDERHOME\$BLENDERVERSION
+  ;[DATAFILES] ; and we write datafiles to user accessable dir
+  [DODATAFILES]
+  
+  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)"

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list