]> granicus.if.org Git - handbrake/commitdiff
WinGui: (WPF) Setup all the Installer (Nightly and Release, x86/64) and Build scripts...
authorsr55 <sr55.hb@outlook.com>
Sat, 24 Mar 2012 19:18:24 +0000 (19:18 +0000)
committersr55 <sr55.hb@outlook.com>
Sat, 24 Mar 2012 19:18:24 +0000 (19:18 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4533 b64f7644-9d1e-0410-96f1-a4d463321fa5

14 files changed:
win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj
win/CS/HandBrake10.sln
win/CS/HandBrakeCS.csproj
win/CS/HandBrakeWPF/HandBrakeWPF.csproj
win/CS/HandBrakeWPF/Installer/Installer.nsi [new file with mode: 0644]
win/CS/HandBrakeWPF/Installer/Installer64.nsi [new file with mode: 0644]
win/CS/HandBrakeWPF/Installer/MakeAlpha.nsi.tmpl [deleted file]
win/CS/HandBrakeWPF/Installer/MakeNightly.nsi.tmpl [new file with mode: 0644]
win/CS/HandBrakeWPF/Installer/MakeNightly64.nsi.tmpl [new file with mode: 0644]
win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs
win/CS/HandBrakeWPF/README BEFORE WRITING CODE.txt [deleted file]
win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs
win/CS/build.xml
win/CS/build2.xml [new file with mode: 0644]

index 4cee59f786d770c964dc7ff2ac03cd9bcd444957..406fdabd8383fb2d23f65e33c026c1b2bafe8619 100644 (file)
   -->\r
   <PropertyGroup>\r
     <PreBuildEvent>\r
-      subwcrev.exe "$(ProjectDir)." "$(ProjectDir)Properties\AssemblyInfo.cs.tmpl" "$(ProjectDir)Properties\AssemblyInfo.cs"\r
-      subwcrev.exe "$(ProjectDir)." "$(ProjectDir)Properties\AssemblyInfo.cs.tmpl" "$(ProjectDir)Properties\AssemblyInfo.cs"\r
     </PreBuildEvent>\r
   </PropertyGroup>\r
 </Project>
\ No newline at end of file
index fb031213b0f2f3507c8b7a2c38cbd6072d64c1df..77462c94f1f0a052b0a8eb10e0b75093050a145d 100644 (file)
@@ -12,6 +12,7 @@ EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{5CB7BC74-449C-4E95-98AB-E1E4387E514B}"\r
        ProjectSection(SolutionItems) = preProject\r
                build.xml = build.xml\r
+               build2.xml = build2.xml\r
        EndProjectSection\r
 EndProject\r
 Global\r
index c2e0f74aa3b3d4d690ebacdb03b9ada7bee070c2..dddd46cd39acfb68966eb37133c7c4c5f8a27187 100644 (file)
     <None Include="Installer\Installer64.nsi" />\r
     <None Include="Installer\MakeNightly64.nsi.tmpl" />\r
     <None Include="Installer\MakeNightly.nsi.tmpl" />\r
-    <None Include="Installer\MakeNightly.nsi" />\r
     <None Include="Installer\Installer.nsi" />\r
   </ItemGroup>\r
   <ItemGroup>\r
index 16989a2641d98a32a7a7e278ad88ba4b4ea7a416..3d8fb826ff8e46873a31085d1bfb529f65f8b8cd 100644 (file)
@@ -9,7 +9,7 @@
     <OutputType>WinExe</OutputType>\r
     <AppDesignerFolder>Properties</AppDesignerFolder>\r
     <RootNamespace>HandBrakeWPF</RootNamespace>\r
-    <AssemblyName>HandBrakeWPF</AssemblyName>\r
+    <AssemblyName>HandBrake</AssemblyName>\r
     <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>\r
     <TargetFrameworkProfile>Client</TargetFrameworkProfile>\r
     <FileAlignment>512</FileAlignment>\r
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>\r
     </EmbeddedResource>\r
     <None Include="app.config" />\r
-    <None Include="Installer\MakeAlpha.nsi.tmpl" />\r
+    <None Include="Installer\Installer.nsi" />\r
+    <None Include="Installer\Installer64.nsi" />\r
+    <None Include="Installer\MakeNightly.nsi.tmpl" />\r
+    <None Include="Installer\MakeNightly64.nsi.tmpl" />\r
     <None Include="Properties\AssemblyInfo.cs.tmpl" />\r
     <None Include="Properties\Settings.settings">\r
       <Generator>SettingsSingleFileGenerator</Generator>\r
diff --git a/win/CS/HandBrakeWPF/Installer/Installer.nsi b/win/CS/HandBrakeWPF/Installer/Installer.nsi
new file mode 100644 (file)
index 0000000..c19c0e2
--- /dev/null
@@ -0,0 +1,326 @@
+/*  Resources.Designer.cs $\r
+\r
+          This file is part of the HandBrake source code.\r
+          Homepage: <http://handbrake.fr/>.\r
+          It may be used under the terms of the GNU General Public License. */\r
+\r
+; Script generated by the HM NIS Edit Script Wizard.\r
+\r
+; HM NIS Edit Wizard helper defines\r
+!define PRODUCT_NAME "HandBrake"\r
+!define PRODUCT_VERSION "0.9.7"\r
+!define PRODUCT_VERSION_NUMBER "0.9.7"\r
+!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Handbrake.exe"\r
+!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"\r
+!define PRODUCT_UNINST_ROOT_KEY "HKLM"\r
+\r
+;Required .NET framework\r
+!define MIN_FRA_MAJOR "4"\r
+!define MIN_FRA_MINOR "0"\r
+!define MIN_FRA_BUILD "*"\r
+\r
+SetCompressor lzma\r
+\r
+; MUI 1.67 compatible ------\r
+!include "MUI.nsh"\r
+\r
+; MUI Settings\r
+!define MUI_ABORTWARNING\r
+!define MUI_ICON "handbrakepineapple.ico"\r
+!define MUI_UNICON "handbrakepineapple.ico"\r
+\r
+; Welcome page\r
+!insertmacro MUI_PAGE_WELCOME\r
+; License page\r
+!insertmacro MUI_PAGE_LICENSE "doc\COPYING"\r
+; Directory page\r
+!insertmacro MUI_PAGE_DIRECTORY\r
+; Instfiles page\r
+!insertmacro MUI_PAGE_INSTFILES\r
+; Finish page\r
+;!define MUI_FINISHPAGE_RUN "$INSTDIR\Handbrake.exe"\r
+!insertmacro MUI_PAGE_FINISH\r
+\r
+; Uninstaller pages\r
+!insertmacro MUI_UNPAGE_INSTFILES\r
+\r
+; Language files\r
+!insertmacro MUI_LANGUAGE "English"\r
+\r
+; MUI end ------\r
+\r
+Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"\r
+OutFile "HandBrake-${PRODUCT_VERSION_NUMBER}-Win_GUI.exe"\r
+\r
+!include WordFunc.nsh\r
+!insertmacro VersionCompare\r
+!include LogicLib.nsh\r
+\r
+InstallDir "$PROGRAMFILES\Handbrake"\r
+InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""\r
+ShowInstDetails show\r
+ShowUnInstDetails show\r
+\r
+Var InstallDotNET\r
+\r
+Function .onInit\r
+\r
+  ; Begin Only allow one version\r
+  System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'\r
+  Pop $R0\r
+\r
+  StrCmp $R0 0 +3\r
+  MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." /SD IDOK\r
+  Abort\r
+\r
+  ;Remove previous version\r
+  ReadRegStr $R0 HKLM \\r
+  "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}\" \\r
+  "UninstallString"\r
+  StrCmp $R0 "" done\r
+\r
+  MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \\r
+  "${PRODUCT_NAME} is already installed. $\n$\nClick `OK` to remove the \\r
+  previous version or `Cancel` to continue." /SD IDOK \\r
+  IDOK uninst\r
+  goto done\r
+\r
+ ;Run the uninstaller\r
+  uninst:\r
+   IfSilent +3\r
+   Exec $INSTDIR\uninst.exe\r
+   goto done\r
+   Exec '"$INSTDIR\uninst.exe" /S'\r
+  done:\r
+FunctionEnd\r
+\r
+Section "Handbrake" SEC01\r
+  SetOutPath "$INSTDIR"\r
+  SetOverwrite ifnewer\r
+\r
+  ; Begin Check .NET version\r
+  StrCpy $InstallDotNET "No"\r
+  Call CheckFramework\r
+     StrCmp $0 "1" +3\r
+        StrCpy $InstallDotNET "Yes"\r
+      MessageBox MB_OK|MB_ICONINFORMATION "${PRODUCT_NAME} requires that the .NET Framework 4.0 Client Profile is installed. The latest .NET Framework will be downloaded and installed automatically during installation of ${PRODUCT_NAME}." /SD IDOK\r
+     Pop $0\r
+\r
+  ; Get .NET if required\r
+  ${If} $InstallDotNET == "Yes"\r
+     SetDetailsView hide\r
+     inetc::get /caption "Downloading .NET Framework 4.0" /canceltext "Cancel" "http://www.microsoft.com/downloads/info.aspx?na=41&srcfamilyid=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&srcdisplaylang=en&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f5%2f6%2f2%2f562A10F9-C9F4-4313-A044-9C94E0A8FAC8%2fdotNetFx40_Client_x86_x64.exe" "$INSTDIR\dotnetfx.exe" /end\r
+     Pop $1\r
+\r
+     ${If} $1 != "OK"\r
+           Delete "$INSTDIR\dotnetfx.exe"\r
+           Abort "Installation cancelled, ${PRODUCT_NAME} requires the .NET 4.0 Framework"\r
+     ${EndIf}\r
+\r
+     ExecWait "$INSTDIR\dotnetfx.exe"\r
+     Delete "$INSTDIR\dotnetfx.exe"\r
+\r
+     SetDetailsView show\r
+  ${EndIf}\r
+  \r
+  ; Install Files\r
+  File "*.exe"\r
+  CreateDirectory "$SMPROGRAMS\Handbrake"\r
+  CreateShortCut "$SMPROGRAMS\Handbrake\Handbrake.lnk" "$INSTDIR\Handbrake.exe"\r
+  CreateShortCut "$DESKTOP\Handbrake.lnk" "$INSTDIR\Handbrake.exe"\r
+  File "*.dll"\r
+  File "*.config"\r
+  File "*.xml"\r
+  File "*.pdb"\r
+\r
+  ; Copy the standard doc set into the doc folder\r
+  SetOutPath "$INSTDIR\doc"\r
+  SetOverwrite ifnewer\r
+  File "doc\*.*"\r
+\r
+  ; Copy the standard fonts config set into the fonts folder\r
+  SetOutPath "$INSTDIR\fonts"\r
+  SetOverwrite ifnewer\r
+  File /r "fonts\*.*"\r
+SectionEnd\r
+\r
+Section -AdditionalIcons\r
+  CreateShortCut "$SMPROGRAMS\Handbrake\Uninstall.lnk" "$INSTDIR\uninst.exe"\r
+SectionEnd\r
+\r
+Section -Post\r
+  WriteUninstaller "$INSTDIR\uninst.exe"\r
+  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Handbrake.exe"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Handbrake.exe"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"\r
+SectionEnd\r
+\r
+\r
+Function un.onUninstSuccess\r
+  HideWindow\r
+  MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." /SD IDOK\r
+FunctionEnd\r
+\r
+Function un.onInit\r
+  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" /SD IDYES IDYES +2\r
+  Abort\r
+FunctionEnd\r
+\r
+Section Uninstall\r
+  Delete "$INSTDIR\uninst.exe"\r
+  \r
+  Delete "$INSTDIR\*.*"\r
+  Delete "$INSTDIR\doc\*.*"\r
+  Delete "$INSTDIR\fonts\*.*"\r
+  Delete "$INSTDIR\fonts\conf.d\*.*"\r
+  Delete "$INSTDIR\fonts\conf.avail\*.*"\r
+  RMDir  "$INSTDIR\doc"\r
+  RMDIR  "$INSTDIR\fonts\conf.d"\r
+  RMDIR  "$INSTDIR\fonts\conf.avail"\r
+  RMDIR  "$INSTDIR\fonts"\r
+  Delete "$SMPROGRAMS\Handbrake\Uninstall.lnk"\r
+  Delete "$DESKTOP\Handbrake.lnk"\r
+  Delete "$SMPROGRAMS\Handbrake\Handbrake.lnk"\r
+  RMDir  "$SMPROGRAMS\Handbrake"\r
+  RMDir  "$INSTDIR"\r
+\r
+  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"\r
+  DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"\r
+  SetAutoClose true\r
+SectionEnd\r
+\r
+;Check for .NET framework\r
+Function CheckFrameWork\r
+\r
+   ;Save the variables in case something else is using them\r
+  Push $0\r
+  Push $1\r
+  Push $2\r
+  Push $3\r
+  Push $4\r
+  Push $R1\r
+  Push $R2\r
+  Push $R3\r
+  Push $R4\r
+  Push $R5\r
+  Push $R6\r
+  Push $R7\r
+  Push $R8\r
+\r
+  StrCpy $R5 "0"\r
+  StrCpy $R6 "0"\r
+  StrCpy $R7 "0"\r
+  StrCpy $R8 "0.0.0"\r
+  StrCpy $0 0\r
+\r
+  loop:\r
+\r
+  ;Get each sub key under "SOFTWARE\Microsoft\NET Framework Setup\NDP"\r
+  EnumRegKey $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP" $0\r
+  StrCmp $1 "" done ;jump to end if no more registry keys\r
+  IntOp $0 $0 + 1\r
+  StrCpy $2 $1 1 ;Cut off the first character\r
+  StrCpy $3 $1 "" 1 ;Remainder of string\r
+\r
+  ;Loop if first character is not a 'v'\r
+  StrCmpS $2 "v" start_parse loop\r
+\r
+  ;Parse the string\r
+  start_parse:\r
+  StrCpy $R1 ""\r
+  StrCpy $R2 ""\r
+  StrCpy $R3 ""\r
+  StrCpy $R4 $3\r
+\r
+  StrCpy $4 1\r
+\r
+  parse:\r
+  StrCmp $3 "" parse_done ;If string is empty, we are finished\r
+  StrCpy $2 $3 1 ;Cut off the first character\r
+  StrCpy $3 $3 "" 1 ;Remainder of string\r
+  StrCmp $2 "." is_dot not_dot ;Move to next part if it's a dot\r
+\r
+  is_dot:\r
+  IntOp $4 $4 + 1 ; Move to the next section\r
+  goto parse ;Carry on parsing\r
+\r
+  not_dot:\r
+  IntCmp $4 1 major_ver\r
+  IntCmp $4 2 minor_ver\r
+  IntCmp $4 3 build_ver\r
+  IntCmp $4 4 parse_done\r
+\r
+  major_ver:\r
+  StrCpy $R1 $R1$2\r
+  goto parse ;Carry on parsing\r
+\r
+  minor_ver:\r
+  StrCpy $R2 $R2$2\r
+  goto parse ;Carry on parsing\r
+\r
+  build_ver:\r
+  StrCpy $R3 $R3$2\r
+  goto parse ;Carry on parsing\r
+\r
+  parse_done:\r
+\r
+  IntCmp $R1 $R5 this_major_same loop this_major_more\r
+  this_major_more:\r
+  StrCpy $R5 $R1\r
+  StrCpy $R6 $R2\r
+  StrCpy $R7 $R3\r
+  StrCpy $R8 $R4\r
+\r
+  goto loop\r
+\r
+  this_major_same:\r
+  IntCmp $R2 $R6 this_minor_same loop this_minor_more\r
+  this_minor_more:\r
+  StrCpy $R6 $R2\r
+  StrCpy $R7 R3\r
+  StrCpy $R8 $R4\r
+  goto loop\r
+\r
+  this_minor_same:\r
+  IntCmp $R3 $R7 loop loop this_build_more\r
+  this_build_more:\r
+  StrCpy $R7 $R3\r
+  StrCpy $R8 $R4\r
+  goto loop\r
+\r
+  done:\r
+\r
+  ;Have we got the framework we need?\r
+  IntCmp $R5 ${MIN_FRA_MAJOR} max_major_same fail OK\r
+  max_major_same:\r
+  IntCmp $R6 ${MIN_FRA_MINOR} max_minor_same fail OK\r
+  max_minor_same:\r
+  IntCmp $R7 ${MIN_FRA_BUILD} OK fail OK\r
+\r
+  ;Version on machine is greater than what we need\r
+  OK:\r
+  StrCpy $0 "1"\r
+  goto end\r
+\r
+  fail:\r
+  StrCmp $R8 "0.0.0" end\r
+\r
+\r
+  end:\r
+\r
+  ;Pop the variables we pushed earlier\r
+  Pop $R8\r
+  Pop $R7\r
+  Pop $R6\r
+  Pop $R5\r
+  Pop $R4\r
+  Pop $R3\r
+  Pop $R2\r
+  Pop $R1\r
+  Pop $4\r
+  Pop $3\r
+  Pop $2\r
+  Pop $1\r
+FunctionEnd
\ No newline at end of file
diff --git a/win/CS/HandBrakeWPF/Installer/Installer64.nsi b/win/CS/HandBrakeWPF/Installer/Installer64.nsi
new file mode 100644 (file)
index 0000000..9e6ff48
--- /dev/null
@@ -0,0 +1,329 @@
+/*  Resources.Designer.cs $\r
+\r
+          This file is part of the HandBrake source code.\r
+          Homepage: <http://handbrake.fr/>.\r
+          It may be used under the terms of the GNU General Public License. */\r
+\r
+; Script generated by the HM NIS Edit Script Wizard.\r
+\r
+; HM NIS Edit Wizard helper defines\r
+!define PRODUCT_NAME "HandBrake"\r
+!define PRODUCT_VERSION "0.9.7"\r
+!define PRODUCT_VERSION_NUMBER "0.9.7"\r
+!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Handbrake.exe"\r
+!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"\r
+!define PRODUCT_UNINST_ROOT_KEY "HKLM"\r
+\r
+;Required .NET framework\r
+!define MIN_FRA_MAJOR "4"\r
+!define MIN_FRA_MINOR "0"\r
+!define MIN_FRA_BUILD "*"\r
+\r
+SetCompressor lzma\r
+\r
+; MUI 1.67 compatible ------\r
+!include "MUI.nsh"\r
+\r
+; MUI Settings\r
+!define MUI_ABORTWARNING\r
+!define MUI_ICON "handbrakepineapple.ico"\r
+!define MUI_UNICON "handbrakepineapple.ico"\r
+\r
+; Welcome page\r
+!insertmacro MUI_PAGE_WELCOME\r
+; License page\r
+!insertmacro MUI_PAGE_LICENSE "doc\COPYING"\r
+; Directory page\r
+!insertmacro MUI_PAGE_DIRECTORY\r
+; Instfiles page\r
+!insertmacro MUI_PAGE_INSTFILES\r
+; Finish page\r
+;!define MUI_FINISHPAGE_RUN "$INSTDIR\Handbrake.exe"\r
+!insertmacro MUI_PAGE_FINISH\r
+\r
+; Uninstaller pages\r
+!insertmacro MUI_UNPAGE_INSTFILES\r
+\r
+; Language files\r
+!insertmacro MUI_LANGUAGE "English"\r
+\r
+; MUI end ------\r
+\r
+Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"\r
+OutFile "HandBrake-${PRODUCT_VERSION_NUMBER}-Win_GUI.exe"\r
+\r
+!include WordFunc.nsh\r
+!insertmacro VersionCompare\r
+!include LogicLib.nsh\r
+\r
+InstallDir "$PROGRAMFILES64\Handbrake"\r
+InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""\r
+ShowInstDetails show\r
+ShowUnInstDetails show\r
+\r
+Var InstallDotNET\r
+\r
+Function .onInit\r
+\r
+  ; Begin Only allow one version\r
+  System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'\r
+  Pop $R0\r
+\r
+  StrCmp $R0 0 +3\r
+  MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." /SD IDOK\r
+  Abort\r
+\r
+  ;Remove previous version\r
+  ReadRegStr $R0 HKLM \\r
+  "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}\" \\r
+  "UninstallString"\r
+  StrCmp $R0 "" done\r
+\r
+  MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \\r
+  "${PRODUCT_NAME} is already installed. $\n$\nClick `OK` to remove the \\r
+  previous version or `Cancel` to continue." /SD IDOK \\r
+  IDOK uninst\r
+  goto done\r
+\r
+ ;Run the uninstaller\r
+  uninst:\r
+   IfSilent +3\r
+   Exec $INSTDIR\uninst.exe\r
+   goto done\r
+   Exec '"$INSTDIR\uninst.exe" /S'\r
+  done:\r
+FunctionEnd\r
+\r
+Section "Handbrake" SEC01\r
+  SetOutPath "$INSTDIR"\r
+  SetOverwrite ifnewer\r
+\r
+  ; Begin Check .NET version\r
+  StrCpy $InstallDotNET "No"\r
+  Call CheckFramework\r
+     StrCmp $0 "1" +3\r
+        StrCpy $InstallDotNET "Yes"\r
+      MessageBox MB_OK|MB_ICONINFORMATION "${PRODUCT_NAME} requires that the .NET Framework 4.0 Client Profile is installed. The latest .NET Framework will be downloaded and installed automatically during installation of ${PRODUCT_NAME}." /SD IDOK\r
+     Pop $0\r
+\r
+  ; Get .NET if required\r
+  ${If} $InstallDotNET == "Yes"\r
+     SetDetailsView hide\r
+     inetc::get /caption "Downloading .NET Framework 4.0" /canceltext "Cancel" "http://www.microsoft.com/downloads/info.aspx?na=41&srcfamilyid=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&srcdisplaylang=en&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f5%2f6%2f2%2f562A10F9-C9F4-4313-A044-9C94E0A8FAC8%2fdotNetFx40_Client_x86_x64.exe" "$INSTDIR\dotnetfx.exe" /end\r
+     Pop $1\r
+\r
+     ${If} $1 != "OK"\r
+           Delete "$INSTDIR\dotnetfx.exe"\r
+           Abort "Installation cancelled, ${PRODUCT_NAME} requires the .NET 4.0 Framework"\r
+     ${EndIf}\r
+\r
+     ExecWait "$INSTDIR\dotnetfx.exe"\r
+     Delete "$INSTDIR\dotnetfx.exe"\r
+\r
+     SetDetailsView show\r
+  ${EndIf}\r
+  \r
+  ; Install Files\r
+  File "Handbrake.exe"\r
+  File "HandBrakeCLI.exe"\r
+  CreateDirectory "$SMPROGRAMS\Handbrake"\r
+  CreateShortCut "$SMPROGRAMS\Handbrake\Handbrake.lnk" "$INSTDIR\Handbrake.exe"\r
+  CreateShortCut "$DESKTOP\Handbrake.lnk" "$INSTDIR\Handbrake.exe"\r
+  File "*.dll"\r
+  File "*.config"\r
+  File "*.xml"\r
+  File "*.pdb"\r
+\r
+  ; Copy the standard doc set into the doc folder\r
+  SetOutPath "$INSTDIR\doc"\r
+  SetOverwrite ifnewer\r
+  File "doc\*.*"\r
+\r
+  ; Copy the standard fonts config set into the fonts folder\r
+  SetOutPath "$INSTDIR\fonts"\r
+  SetOverwrite ifnewer\r
+  File /r "fonts\*.*"\r
+\r
+  \r
+SectionEnd\r
+\r
+Section -AdditionalIcons\r
+  CreateShortCut "$SMPROGRAMS\Handbrake\Uninstall.lnk" "$INSTDIR\uninst.exe"\r
+SectionEnd\r
+\r
+Section -Post\r
+  WriteUninstaller "$INSTDIR\uninst.exe"\r
+  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Handbrake.exe"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Handbrake.exe"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"\r
+SectionEnd\r
+\r
+\r
+Function un.onUninstSuccess\r
+  HideWindow\r
+  MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." /SD IDOK\r
+FunctionEnd\r
+\r
+Function un.onInit\r
+  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" /SD IDYES IDYES +2\r
+  Abort\r
+FunctionEnd\r
+\r
+Section Uninstall\r
+  Delete "$INSTDIR\uninst.exe"\r
+  \r
+  Delete "$INSTDIR\*.*"\r
+  Delete "$INSTDIR\doc\*.*"\r
+  Delete "$INSTDIR\fonts\*.*"\r
+  Delete "$INSTDIR\fonts\conf.d\*.*"\r
+  Delete "$INSTDIR\fonts\conf.avail\*.*"\r
+  RMDir  "$INSTDIR\doc"\r
+  RMDIR  "$INSTDIR\fonts\conf.d"\r
+  RMDIR  "$INSTDIR\fonts\conf.avail"\r
+  RMDIR  "$INSTDIR\fonts"\r
+  Delete "$SMPROGRAMS\Handbrake\Uninstall.lnk"\r
+  Delete "$DESKTOP\Handbrake.lnk"\r
+  Delete "$SMPROGRAMS\Handbrake\Handbrake.lnk"\r
+  RMDir  "$SMPROGRAMS\Handbrake"\r
+  RMDir  "$INSTDIR"\r
+\r
+  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"\r
+  DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"\r
+  SetAutoClose true\r
+SectionEnd\r
+\r
+;Check for .NET framework\r
+Function CheckFrameWork\r
+\r
+   ;Save the variables in case something else is using them\r
+  Push $0\r
+  Push $1\r
+  Push $2\r
+  Push $3\r
+  Push $4\r
+  Push $R1\r
+  Push $R2\r
+  Push $R3\r
+  Push $R4\r
+  Push $R5\r
+  Push $R6\r
+  Push $R7\r
+  Push $R8\r
+\r
+  StrCpy $R5 "0"\r
+  StrCpy $R6 "0"\r
+  StrCpy $R7 "0"\r
+  StrCpy $R8 "0.0.0"\r
+  StrCpy $0 0\r
+\r
+  loop:\r
+\r
+  ;Get each sub key under "SOFTWARE\Microsoft\NET Framework Setup\NDP"\r
+  EnumRegKey $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP" $0\r
+  StrCmp $1 "" done ;jump to end if no more registry keys\r
+  IntOp $0 $0 + 1\r
+  StrCpy $2 $1 1 ;Cut off the first character\r
+  StrCpy $3 $1 "" 1 ;Remainder of string\r
+\r
+  ;Loop if first character is not a 'v'\r
+  StrCmpS $2 "v" start_parse loop\r
+\r
+  ;Parse the string\r
+  start_parse:\r
+  StrCpy $R1 ""\r
+  StrCpy $R2 ""\r
+  StrCpy $R3 ""\r
+  StrCpy $R4 $3\r
+\r
+  StrCpy $4 1\r
+\r
+  parse:\r
+  StrCmp $3 "" parse_done ;If string is empty, we are finished\r
+  StrCpy $2 $3 1 ;Cut off the first character\r
+  StrCpy $3 $3 "" 1 ;Remainder of string\r
+  StrCmp $2 "." is_dot not_dot ;Move to next part if it's a dot\r
+\r
+  is_dot:\r
+  IntOp $4 $4 + 1 ; Move to the next section\r
+  goto parse ;Carry on parsing\r
+\r
+  not_dot:\r
+  IntCmp $4 1 major_ver\r
+  IntCmp $4 2 minor_ver\r
+  IntCmp $4 3 build_ver\r
+  IntCmp $4 4 parse_done\r
+\r
+  major_ver:\r
+  StrCpy $R1 $R1$2\r
+  goto parse ;Carry on parsing\r
+\r
+  minor_ver:\r
+  StrCpy $R2 $R2$2\r
+  goto parse ;Carry on parsing\r
+\r
+  build_ver:\r
+  StrCpy $R3 $R3$2\r
+  goto parse ;Carry on parsing\r
+\r
+  parse_done:\r
+\r
+  IntCmp $R1 $R5 this_major_same loop this_major_more\r
+  this_major_more:\r
+  StrCpy $R5 $R1\r
+  StrCpy $R6 $R2\r
+  StrCpy $R7 $R3\r
+  StrCpy $R8 $R4\r
+\r
+  goto loop\r
+\r
+  this_major_same:\r
+  IntCmp $R2 $R6 this_minor_same loop this_minor_more\r
+  this_minor_more:\r
+  StrCpy $R6 $R2\r
+  StrCpy $R7 R3\r
+  StrCpy $R8 $R4\r
+  goto loop\r
+\r
+  this_minor_same:\r
+  IntCmp $R3 $R7 loop loop this_build_more\r
+  this_build_more:\r
+  StrCpy $R7 $R3\r
+  StrCpy $R8 $R4\r
+  goto loop\r
+\r
+  done:\r
+\r
+  ;Have we got the framework we need?\r
+  IntCmp $R5 ${MIN_FRA_MAJOR} max_major_same fail OK\r
+  max_major_same:\r
+  IntCmp $R6 ${MIN_FRA_MINOR} max_minor_same fail OK\r
+  max_minor_same:\r
+  IntCmp $R7 ${MIN_FRA_BUILD} OK fail OK\r
+\r
+  ;Version on machine is greater than what we need\r
+  OK:\r
+  StrCpy $0 "1"\r
+  goto end\r
+\r
+  fail:\r
+  StrCmp $R8 "0.0.0" end\r
+\r
+\r
+  end:\r
+\r
+  ;Pop the variables we pushed earlier\r
+  Pop $R8\r
+  Pop $R7\r
+  Pop $R6\r
+  Pop $R5\r
+  Pop $R4\r
+  Pop $R3\r
+  Pop $R2\r
+  Pop $R1\r
+  Pop $4\r
+  Pop $3\r
+  Pop $2\r
+  Pop $1\r
+FunctionEnd
\ No newline at end of file
diff --git a/win/CS/HandBrakeWPF/Installer/MakeAlpha.nsi.tmpl b/win/CS/HandBrakeWPF/Installer/MakeAlpha.nsi.tmpl
deleted file mode 100644 (file)
index 2be0874..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-/*  Resources.Designer.cs $\r
-\r
-          This file is part of the HandBrake source code.\r
-          Homepage: <http://handbrake.fr/>.\r
-          It may be used under the terms of the GNU General Public License. */\r
-\r
-; Script generated by the HM NIS Edit Script Wizard.\r
-\r
-; HM NIS Edit Wizard helper defines\r
-!define PRODUCT_NAME "HandBrake WPF (Pre-Alpha)"\r
-!define PRODUCT_VERSION "$WCREV$"\r
-!define PRODUCT_VERSION_NUMBER "svn$WCREV$"\r
-!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\HandBrakeWPF.exe"\r
-!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"\r
-!define PRODUCT_UNINST_ROOT_KEY "HKLM"\r
-\r
-;Required .NET framework\r
-!define MIN_FRA_MAJOR "4"\r
-!define MIN_FRA_MINOR "0"\r
-!define MIN_FRA_BUILD "*"\r
-\r
-SetCompressor lzma\r
-\r
-; MUI 1.67 compatible ------\r
-!include "MUI.nsh"\r
-\r
-; MUI Settings\r
-!define MUI_ABORTWARNING\r
-!define MUI_ICON "handbrakepineapple.ico"\r
-!define MUI_UNICON "handbrakepineapple.ico"\r
-\r
-; Welcome page\r
-!insertmacro MUI_PAGE_WELCOME\r
-; License page\r
-!insertmacro MUI_PAGE_LICENSE "doc\COPYING"\r
-; Directory page\r
-!insertmacro MUI_PAGE_DIRECTORY\r
-; Instfiles page\r
-!insertmacro MUI_PAGE_INSTFILES\r
-; Finish page\r
-;!define MUI_FINISHPAGE_RUN "$INSTDIR\HandBrakeWPF.exe"\r
-!insertmacro MUI_PAGE_FINISH\r
-\r
-; Uninstaller pages\r
-!insertmacro MUI_UNPAGE_INSTFILES\r
-\r
-; Language files\r
-!insertmacro MUI_LANGUAGE "English"\r
-\r
-; MUI end ------\r
-\r
-Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"\r
-OutFile "HandBrake-${PRODUCT_VERSION_NUMBER}-WPF_PRE_ALPHA.exe"\r
-\r
-!include WordFunc.nsh\r
-!insertmacro VersionCompare\r
-!include LogicLib.nsh\r
-\r
-InstallDir "$PROGRAMFILES\HandbrakeWPF"\r
-InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""\r
-ShowInstDetails show\r
-ShowUnInstDetails show\r
-\r
-Var InstallDotNET\r
-\r
-Function .onInit\r
-\r
-  ; Begin Only allow one version\r
-  System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'\r
-  Pop $R0\r
-\r
-  StrCmp $R0 0 +3\r
-  MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." /SD IDOK\r
-  Abort\r
-\r
-  ;Remove previous version\r
-  ReadRegStr $R0 HKLM \\r
-  "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}\" \\r
-  "UninstallString"\r
-  StrCmp $R0 "" done\r
-\r
-  MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \\r
-  "${PRODUCT_NAME} is already installed. $\n$\nClick `OK` to remove the \\r
-  previous version or `Cancel` to continue." /SD IDOK \\r
-  IDOK uninst\r
-  goto done\r
-\r
- ;Run the uninstaller\r
-  uninst:\r
-   IfSilent +3\r
-   Exec $INSTDIR\uninst.exe\r
-   goto done\r
-   Exec '"$INSTDIR\uninst.exe" /S'\r
-  done:\r
-FunctionEnd\r
-\r
-Section "Handbrake" SEC01\r
-  SetOutPath "$INSTDIR"\r
-  SetOverwrite ifnewer\r
\r
-  ; Install Files\r
-  File "*.exe"\r
-  CreateDirectory "$SMPROGRAMS\HandBrakeWPF"\r
-  CreateShortCut "$SMPROGRAMS\Handbrake\HandBrakeWPF.lnk" "$INSTDIR\HandBrakeWPF.exe"\r
-  CreateShortCut "$DESKTOP\HandBrakeWPF.lnk" "$INSTDIR\HandBrakeWPF.exe"\r
-  File "*.dll"\r
-  File "*.config"\r
-  File "*.xml"\r
-  File "*.pdb"\r
-\r
-  ; Copy the standard doc set into the doc folder\r
-  SetOutPath "$INSTDIR\doc"\r
-  SetOverwrite ifnewer\r
-  File "doc\*.*"\r
-  \r
-  ; Copy the standard fonts config set into the fonts folder\r
-  SetOutPath "$INSTDIR\fonts"\r
-  SetOverwrite ifnewer\r
-  File /r "fonts\*.*"\r
-SectionEnd\r
-\r
-Section -AdditionalIcons\r
-  CreateShortCut "$SMPROGRAMS\Handbrake\Uninstall.lnk" "$INSTDIR\uninst.exe"\r
-SectionEnd\r
-\r
-Section -Post\r
-  WriteUninstaller "$INSTDIR\uninst.exe"\r
-  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\HandBrakeWPF.exe"\r
-  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"\r
-  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"\r
-  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\HandBrakeWPF.exe"\r
-  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"\r
-SectionEnd\r
-\r
-\r
-Function un.onUninstSuccess\r
-  HideWindow\r
-  MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." /SD IDOK\r
-FunctionEnd\r
-\r
-Function un.onInit\r
-  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" /SD IDYES IDYES +2\r
-  Abort\r
-FunctionEnd\r
-\r
-Section Uninstall\r
-  Delete "$INSTDIR\uninst.exe"\r
-  \r
-  Delete "$INSTDIR\*.*"\r
-  Delete "$INSTDIR\doc\*.*"\r
-  Delete "$INSTDIR\fonts\*.*"\r
-  Delete "$INSTDIR\fonts\conf.d\*.*"\r
-  Delete "$INSTDIR\fonts\conf.avail\*.*"\r
-  RMDir  "$INSTDIR\doc"\r
-  RMDIR  "$INSTDIR\fonts\conf.d"\r
-  RMDIR  "$INSTDIR\fonts\conf.avail"\r
-  RMDIR  "$INSTDIR\fonts"\r
-  Delete "$SMPROGRAMS\HandBrakeWPF\Uninstall.lnk"\r
-  Delete "$DESKTOP\HandBrakeWPF.lnk"\r
-  Delete "$SMPROGRAMS\HandBrakeWPF\HandBrakeWPF.lnk"\r
-  RMDir  "$SMPROGRAMS\HandBrakeWPF"\r
-  RMDir  "$INSTDIR"\r
-\r
-  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"\r
-  DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"\r
-  SetAutoClose true\r
-SectionEnd\r
-\r
diff --git a/win/CS/HandBrakeWPF/Installer/MakeNightly.nsi.tmpl b/win/CS/HandBrakeWPF/Installer/MakeNightly.nsi.tmpl
new file mode 100644 (file)
index 0000000..07b9d62
--- /dev/null
@@ -0,0 +1,326 @@
+/*  Resources.Designer.cs $\r
+\r
+          This file is part of the HandBrake source code.\r
+          Homepage: <http://handbrake.fr/>.\r
+          It may be used under the terms of the GNU General Public License. */\r
+\r
+; Script generated by the HM NIS Edit Script Wizard.\r
+\r
+; HM NIS Edit Wizard helper defines\r
+!define PRODUCT_NAME "Handbrake"\r
+!define PRODUCT_VERSION "$WCREV$ Nightly"\r
+!define PRODUCT_VERSION_NUMBER "svn$WCREV$"\r
+!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Handbrake.exe"\r
+!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"\r
+!define PRODUCT_UNINST_ROOT_KEY "HKLM"\r
+\r
+;Required .NET framework\r
+!define MIN_FRA_MAJOR "4"\r
+!define MIN_FRA_MINOR "0"\r
+!define MIN_FRA_BUILD "*"\r
+\r
+SetCompressor lzma\r
+\r
+; MUI 1.67 compatible ------\r
+!include "MUI.nsh"\r
+\r
+; MUI Settings\r
+!define MUI_ABORTWARNING\r
+!define MUI_ICON "handbrakepineapple.ico"\r
+!define MUI_UNICON "handbrakepineapple.ico"\r
+\r
+; Welcome page\r
+!insertmacro MUI_PAGE_WELCOME\r
+; License page\r
+!insertmacro MUI_PAGE_LICENSE "doc\COPYING"\r
+; Directory page\r
+!insertmacro MUI_PAGE_DIRECTORY\r
+; Instfiles page\r
+!insertmacro MUI_PAGE_INSTFILES\r
+; Finish page\r
+;!define MUI_FINISHPAGE_RUN "$INSTDIR\Handbrake.exe"\r
+!insertmacro MUI_PAGE_FINISH\r
+\r
+; Uninstaller pages\r
+!insertmacro MUI_UNPAGE_INSTFILES\r
+\r
+; Language files\r
+!insertmacro MUI_LANGUAGE "English"\r
+\r
+; MUI end ------\r
+\r
+Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"\r
+OutFile "HandBrake-${PRODUCT_VERSION_NUMBER}_i686-Win_GUI.exe"\r
+\r
+!include WordFunc.nsh\r
+!insertmacro VersionCompare\r
+!include LogicLib.nsh\r
+\r
+InstallDir "$PROGRAMFILES\Handbrake"\r
+InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""\r
+ShowInstDetails show\r
+ShowUnInstDetails show\r
+\r
+Var InstallDotNET\r
+\r
+Function .onInit\r
+\r
+  ; Begin Only allow one version\r
+  System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'\r
+  Pop $R0\r
+\r
+  StrCmp $R0 0 +3\r
+  MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." /SD IDOK\r
+  Abort\r
+\r
+  ;Remove previous version\r
+  ReadRegStr $R0 HKLM \\r
+  "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}\" \\r
+  "UninstallString"\r
+  StrCmp $R0 "" done\r
+\r
+  MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \\r
+  "${PRODUCT_NAME} is already installed. $\n$\nClick `OK` to remove the \\r
+  previous version or `Cancel` to continue." /SD IDOK \\r
+  IDOK uninst\r
+  goto done\r
+\r
+ ;Run the uninstaller\r
+  uninst:\r
+   IfSilent +3\r
+   Exec $INSTDIR\uninst.exe\r
+   goto done\r
+   Exec '"$INSTDIR\uninst.exe" /S'\r
+  done:\r
+FunctionEnd\r
+\r
+Section "Handbrake" SEC01\r
+  SetOutPath "$INSTDIR"\r
+  SetOverwrite ifnewer\r
+\r
+  ; Begin Check .NET version\r
+  StrCpy $InstallDotNET "No"\r
+  Call CheckFramework\r
+     StrCmp $0 "1" +3\r
+        StrCpy $InstallDotNET "Yes"\r
+      MessageBox MB_OK|MB_ICONINFORMATION "${PRODUCT_NAME} requires that the .NET Framework 4.0 Client Profile is installed. The latest .NET Framework will be downloaded and installed automatically during installation of ${PRODUCT_NAME}." /SD IDOK\r
+     Pop $0\r
+\r
+  ; Get .NET if required\r
+  ${If} $InstallDotNET == "Yes"\r
+     SetDetailsView hide\r
+     inetc::get /caption "Downloading .NET Framework 4.0" /canceltext "Cancel" "http://www.microsoft.com/downloads/info.aspx?na=41&srcfamilyid=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&srcdisplaylang=en&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f5%2f6%2f2%2f562A10F9-C9F4-4313-A044-9C94E0A8FAC8%2fdotNetFx40_Client_x86_x64.exe" "$INSTDIR\dotnetfx.exe" /end\r
+     Pop $1\r
+\r
+     ${If} $1 != "OK"\r
+           Delete "$INSTDIR\dotnetfx.exe"\r
+           Abort "Installation cancelled, ${PRODUCT_NAME} requires the .NET 4.0 Framework"\r
+     ${EndIf}\r
+\r
+     ExecWait "$INSTDIR\dotnetfx.exe"\r
+     Delete "$INSTDIR\dotnetfx.exe"\r
+\r
+     SetDetailsView show\r
+  ${EndIf}\r
+  \r
+  ; Install Files\r
+  File "*.exe"\r
+  CreateDirectory "$SMPROGRAMS\Handbrake"\r
+  CreateShortCut "$SMPROGRAMS\Handbrake\Handbrake.lnk" "$INSTDIR\Handbrake.exe"\r
+  CreateShortCut "$DESKTOP\Handbrake.lnk" "$INSTDIR\Handbrake.exe"\r
+  File "*.dll"\r
+  File "*.config"\r
+  File "*.xml"\r
+  File "*.pdb"\r
+\r
+  ; Copy the standard doc set into the doc folder\r
+  SetOutPath "$INSTDIR\doc"\r
+  SetOverwrite ifnewer\r
+  File "doc\*.*"\r
+\r
+  ; Copy the standard fonts config set into the fonts folder\r
+  SetOutPath "$INSTDIR\fonts"\r
+  SetOverwrite ifnewer\r
+  File /r "fonts\*.*"\r
+SectionEnd\r
+\r
+Section -AdditionalIcons\r
+  CreateShortCut "$SMPROGRAMS\Handbrake\Uninstall.lnk" "$INSTDIR\uninst.exe"\r
+SectionEnd\r
+\r
+Section -Post\r
+  WriteUninstaller "$INSTDIR\uninst.exe"\r
+  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Handbrake.exe"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Handbrake.exe"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"\r
+SectionEnd\r
+\r
+\r
+Function un.onUninstSuccess\r
+  HideWindow\r
+  MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." /SD IDOK\r
+FunctionEnd\r
+\r
+Function un.onInit\r
+  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" /SD IDYES IDYES +2\r
+  Abort\r
+FunctionEnd\r
+\r
+Section Uninstall\r
+  Delete "$INSTDIR\uninst.exe"\r
+  \r
+  Delete "$INSTDIR\*.*"\r
+  Delete "$INSTDIR\doc\*.*"\r
+  Delete "$INSTDIR\fonts\*.*"\r
+  Delete "$INSTDIR\fonts\conf.d\*.*"\r
+  Delete "$INSTDIR\fonts\conf.avail\*.*"\r
+  RMDir  "$INSTDIR\doc"\r
+  RMDIR  "$INSTDIR\fonts\conf.d"\r
+  RMDIR  "$INSTDIR\fonts\conf.avail"\r
+  RMDIR  "$INSTDIR\fonts"\r
+  Delete "$SMPROGRAMS\Handbrake\Uninstall.lnk"\r
+  Delete "$DESKTOP\Handbrake.lnk"\r
+  Delete "$SMPROGRAMS\Handbrake\Handbrake.lnk"\r
+  RMDir  "$SMPROGRAMS\Handbrake"\r
+  RMDir  "$INSTDIR"\r
+\r
+  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"\r
+  DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"\r
+  SetAutoClose true\r
+SectionEnd\r
+\r
+;Check for .NET framework\r
+Function CheckFrameWork\r
+\r
+   ;Save the variables in case something else is using them\r
+  Push $0\r
+  Push $1\r
+  Push $2\r
+  Push $3\r
+  Push $4\r
+  Push $R1\r
+  Push $R2\r
+  Push $R3\r
+  Push $R4\r
+  Push $R5\r
+  Push $R6\r
+  Push $R7\r
+  Push $R8\r
+\r
+  StrCpy $R5 "0"\r
+  StrCpy $R6 "0"\r
+  StrCpy $R7 "0"\r
+  StrCpy $R8 "0.0.0"\r
+  StrCpy $0 0\r
+\r
+  loop:\r
+\r
+  ;Get each sub key under "SOFTWARE\Microsoft\NET Framework Setup\NDP"\r
+  EnumRegKey $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP" $0\r
+  StrCmp $1 "" done ;jump to end if no more registry keys\r
+  IntOp $0 $0 + 1\r
+  StrCpy $2 $1 1 ;Cut off the first character\r
+  StrCpy $3 $1 "" 1 ;Remainder of string\r
+\r
+  ;Loop if first character is not a 'v'\r
+  StrCmpS $2 "v" start_parse loop\r
+\r
+  ;Parse the string\r
+  start_parse:\r
+  StrCpy $R1 ""\r
+  StrCpy $R2 ""\r
+  StrCpy $R3 ""\r
+  StrCpy $R4 $3\r
+\r
+  StrCpy $4 1\r
+\r
+  parse:\r
+  StrCmp $3 "" parse_done ;If string is empty, we are finished\r
+  StrCpy $2 $3 1 ;Cut off the first character\r
+  StrCpy $3 $3 "" 1 ;Remainder of string\r
+  StrCmp $2 "." is_dot not_dot ;Move to next part if it's a dot\r
+\r
+  is_dot:\r
+  IntOp $4 $4 + 1 ; Move to the next section\r
+  goto parse ;Carry on parsing\r
+\r
+  not_dot:\r
+  IntCmp $4 1 major_ver\r
+  IntCmp $4 2 minor_ver\r
+  IntCmp $4 3 build_ver\r
+  IntCmp $4 4 parse_done\r
+\r
+  major_ver:\r
+  StrCpy $R1 $R1$2\r
+  goto parse ;Carry on parsing\r
+\r
+  minor_ver:\r
+  StrCpy $R2 $R2$2\r
+  goto parse ;Carry on parsing\r
+\r
+  build_ver:\r
+  StrCpy $R3 $R3$2\r
+  goto parse ;Carry on parsing\r
+\r
+  parse_done:\r
+\r
+  IntCmp $R1 $R5 this_major_same loop this_major_more\r
+  this_major_more:\r
+  StrCpy $R5 $R1\r
+  StrCpy $R6 $R2\r
+  StrCpy $R7 $R3\r
+  StrCpy $R8 $R4\r
+\r
+  goto loop\r
+\r
+  this_major_same:\r
+  IntCmp $R2 $R6 this_minor_same loop this_minor_more\r
+  this_minor_more:\r
+  StrCpy $R6 $R2\r
+  StrCpy $R7 R3\r
+  StrCpy $R8 $R4\r
+  goto loop\r
+\r
+  this_minor_same:\r
+  IntCmp $R3 $R7 loop loop this_build_more\r
+  this_build_more:\r
+  StrCpy $R7 $R3\r
+  StrCpy $R8 $R4\r
+  goto loop\r
+\r
+  done:\r
+\r
+  ;Have we got the framework we need?\r
+  IntCmp $R5 ${MIN_FRA_MAJOR} max_major_same fail OK\r
+  max_major_same:\r
+  IntCmp $R6 ${MIN_FRA_MINOR} max_minor_same fail OK\r
+  max_minor_same:\r
+  IntCmp $R7 ${MIN_FRA_BUILD} OK fail OK\r
+\r
+  ;Version on machine is greater than what we need\r
+  OK:\r
+  StrCpy $0 "1"\r
+  goto end\r
+\r
+  fail:\r
+  StrCmp $R8 "0.0.0" end\r
+\r
+\r
+  end:\r
+\r
+  ;Pop the variables we pushed earlier\r
+  Pop $R8\r
+  Pop $R7\r
+  Pop $R6\r
+  Pop $R5\r
+  Pop $R4\r
+  Pop $R3\r
+  Pop $R2\r
+  Pop $R1\r
+  Pop $4\r
+  Pop $3\r
+  Pop $2\r
+  Pop $1\r
+FunctionEnd
\ No newline at end of file
diff --git a/win/CS/HandBrakeWPF/Installer/MakeNightly64.nsi.tmpl b/win/CS/HandBrakeWPF/Installer/MakeNightly64.nsi.tmpl
new file mode 100644 (file)
index 0000000..15c35d2
--- /dev/null
@@ -0,0 +1,326 @@
+/*  Resources.Designer.cs $\r
+\r
+          This file is part of the HandBrake source code.\r
+          Homepage: <http://handbrake.fr/>.\r
+          It may be used under the terms of the GNU General Public License. */\r
+\r
+; Script generated by the HM NIS Edit Script Wizard.\r
+\r
+; HM NIS Edit Wizard helper defines\r
+!define PRODUCT_NAME "Handbrake"\r
+!define PRODUCT_VERSION "$WCREV$ Nightly"\r
+!define PRODUCT_VERSION_NUMBER "svn$WCREV$"\r
+!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Handbrake.exe"\r
+!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"\r
+!define PRODUCT_UNINST_ROOT_KEY "HKLM"\r
+\r
+;Required .NET framework\r
+!define MIN_FRA_MAJOR "4"\r
+!define MIN_FRA_MINOR "0"\r
+!define MIN_FRA_BUILD "*"\r
+\r
+SetCompressor lzma\r
+\r
+; MUI 1.67 compatible ------\r
+!include "MUI.nsh"\r
+\r
+; MUI Settings\r
+!define MUI_ABORTWARNING\r
+!define MUI_ICON "handbrakepineapple.ico"\r
+!define MUI_UNICON "handbrakepineapple.ico"\r
+\r
+; Welcome page\r
+!insertmacro MUI_PAGE_WELCOME\r
+; License page\r
+!insertmacro MUI_PAGE_LICENSE "doc\COPYING"\r
+; Directory page\r
+!insertmacro MUI_PAGE_DIRECTORY\r
+; Instfiles page\r
+!insertmacro MUI_PAGE_INSTFILES\r
+; Finish page\r
+;!define MUI_FINISHPAGE_RUN "$INSTDIR\Handbrake.exe"\r
+!insertmacro MUI_PAGE_FINISH\r
+\r
+; Uninstaller pages\r
+!insertmacro MUI_UNPAGE_INSTFILES\r
+\r
+; Language files\r
+!insertmacro MUI_LANGUAGE "English"\r
+\r
+; MUI end ------\r
+\r
+Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"\r
+OutFile "HandBrake-${PRODUCT_VERSION_NUMBER}_x86_64-Win_GUI.exe"\r
+\r
+!include WordFunc.nsh\r
+!insertmacro VersionCompare\r
+!include LogicLib.nsh\r
+\r
+InstallDir "$PROGRAMFILES64\Handbrake"\r
+InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""\r
+ShowInstDetails show\r
+ShowUnInstDetails show\r
+\r
+Var InstallDotNET\r
+\r
+Function .onInit\r
+\r
+  ; Begin Only allow one version\r
+  System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'\r
+  Pop $R0\r
+\r
+  StrCmp $R0 0 +3\r
+  MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." /SD IDOK\r
+  Abort\r
+\r
+  ;Remove previous version\r
+  ReadRegStr $R0 HKLM \\r
+  "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}\" \\r
+  "UninstallString"\r
+  StrCmp $R0 "" done\r
+\r
+  MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \\r
+  "${PRODUCT_NAME} is already installed. $\n$\nClick `OK` to remove the \\r
+  previous version or `Cancel` to continue." /SD IDOK \\r
+  IDOK uninst\r
+  goto done\r
+\r
+ ;Run the uninstaller\r
+  uninst:\r
+   IfSilent +3\r
+   Exec $INSTDIR\uninst.exe\r
+   goto done\r
+   Exec '"$INSTDIR\uninst.exe" /S'\r
+  done:\r
+FunctionEnd\r
+\r
+Section "Handbrake" SEC01\r
+  SetOutPath "$INSTDIR"\r
+  SetOverwrite ifnewer\r
+\r
+  ; Begin Check .NET version\r
+  StrCpy $InstallDotNET "No"\r
+  Call CheckFramework\r
+     StrCmp $0 "1" +3\r
+        StrCpy $InstallDotNET "Yes"\r
+      MessageBox MB_OK|MB_ICONINFORMATION "${PRODUCT_NAME} requires that the .NET Framework 4.0 Client Profile is installed. The latest .NET Framework will be downloaded and installed automatically during installation of ${PRODUCT_NAME}." /SD IDOK\r
+     Pop $0\r
+\r
+  ; Get .NET if required\r
+  ${If} $InstallDotNET == "Yes"\r
+     SetDetailsView hide\r
+     inetc::get /caption "Downloading .NET Framework 4.0" /canceltext "Cancel" "http://www.microsoft.com/downloads/info.aspx?na=41&srcfamilyid=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&srcdisplaylang=en&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f5%2f6%2f2%2f562A10F9-C9F4-4313-A044-9C94E0A8FAC8%2fdotNetFx40_Client_x86_x64.exe" "$INSTDIR\dotnetfx.exe" /end\r
+     Pop $1\r
+\r
+     ${If} $1 != "OK"\r
+           Delete "$INSTDIR\dotnetfx.exe"\r
+           Abort "Installation cancelled, ${PRODUCT_NAME} requires the .NET 4.0 Framework"\r
+     ${EndIf}\r
+\r
+     ExecWait "$INSTDIR\dotnetfx.exe"\r
+     Delete "$INSTDIR\dotnetfx.exe"\r
+\r
+     SetDetailsView show\r
+  ${EndIf}\r
+  \r
+  ; Install Files\r
+  File "*.exe"\r
+  CreateDirectory "$SMPROGRAMS\Handbrake"\r
+  CreateShortCut "$SMPROGRAMS\Handbrake\Handbrake.lnk" "$INSTDIR\Handbrake.exe"\r
+  CreateShortCut "$DESKTOP\Handbrake.lnk" "$INSTDIR\Handbrake.exe"\r
+  File "*.dll"\r
+  File "*.config"\r
+  File "*.xml"\r
+  File "*.pdb"\r
+\r
+  ; Copy the standard doc set into the doc folder\r
+  SetOutPath "$INSTDIR\doc"\r
+  SetOverwrite ifnewer\r
+  File "doc\*.*"\r
+\r
+  ; Copy the standard fonts config set into the fonts folder\r
+  SetOutPath "$INSTDIR\fonts"\r
+  SetOverwrite ifnewer\r
+  File /r "fonts\*.*"\r
+SectionEnd\r
+\r
+Section -AdditionalIcons\r
+  CreateShortCut "$SMPROGRAMS\Handbrake\Uninstall.lnk" "$INSTDIR\uninst.exe"\r
+SectionEnd\r
+\r
+Section -Post\r
+  WriteUninstaller "$INSTDIR\uninst.exe"\r
+  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Handbrake.exe"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Handbrake.exe"\r
+  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"\r
+SectionEnd\r
+\r
+\r
+Function un.onUninstSuccess\r
+  HideWindow\r
+  MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." /SD IDOK\r
+FunctionEnd\r
+\r
+Function un.onInit\r
+  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" /SD IDYES IDYES +2\r
+  Abort\r
+FunctionEnd\r
+\r
+Section Uninstall\r
+  Delete "$INSTDIR\uninst.exe"\r
+  \r
+  Delete "$INSTDIR\*.*"\r
+  Delete "$INSTDIR\doc\*.*"\r
+  Delete "$INSTDIR\fonts\*.*"\r
+  Delete "$INSTDIR\fonts\conf.d\*.*"\r
+  Delete "$INSTDIR\fonts\conf.avail\*.*"\r
+  RMDir  "$INSTDIR\doc"\r
+  RMDIR  "$INSTDIR\fonts\conf.d"\r
+  RMDIR  "$INSTDIR\fonts\conf.avail"\r
+  RMDIR  "$INSTDIR\fonts"\r
+  Delete "$SMPROGRAMS\Handbrake\Uninstall.lnk"\r
+  Delete "$DESKTOP\Handbrake.lnk"\r
+  Delete "$SMPROGRAMS\Handbrake\Handbrake.lnk"\r
+  RMDir  "$SMPROGRAMS\Handbrake"\r
+  RMDir  "$INSTDIR"\r
+\r
+  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"\r
+  DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"\r
+  SetAutoClose true\r
+SectionEnd\r
+\r
+;Check for .NET framework\r
+Function CheckFrameWork\r
+\r
+   ;Save the variables in case something else is using them\r
+  Push $0\r
+  Push $1\r
+  Push $2\r
+  Push $3\r
+  Push $4\r
+  Push $R1\r
+  Push $R2\r
+  Push $R3\r
+  Push $R4\r
+  Push $R5\r
+  Push $R6\r
+  Push $R7\r
+  Push $R8\r
+\r
+  StrCpy $R5 "0"\r
+  StrCpy $R6 "0"\r
+  StrCpy $R7 "0"\r
+  StrCpy $R8 "0.0.0"\r
+  StrCpy $0 0\r
+\r
+  loop:\r
+\r
+  ;Get each sub key under "SOFTWARE\Microsoft\NET Framework Setup\NDP"\r
+  EnumRegKey $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP" $0\r
+  StrCmp $1 "" done ;jump to end if no more registry keys\r
+  IntOp $0 $0 + 1\r
+  StrCpy $2 $1 1 ;Cut off the first character\r
+  StrCpy $3 $1 "" 1 ;Remainder of string\r
+\r
+  ;Loop if first character is not a 'v'\r
+  StrCmpS $2 "v" start_parse loop\r
+\r
+  ;Parse the string\r
+  start_parse:\r
+  StrCpy $R1 ""\r
+  StrCpy $R2 ""\r
+  StrCpy $R3 ""\r
+  StrCpy $R4 $3\r
+\r
+  StrCpy $4 1\r
+\r
+  parse:\r
+  StrCmp $3 "" parse_done ;If string is empty, we are finished\r
+  StrCpy $2 $3 1 ;Cut off the first character\r
+  StrCpy $3 $3 "" 1 ;Remainder of string\r
+  StrCmp $2 "." is_dot not_dot ;Move to next part if it's a dot\r
+\r
+  is_dot:\r
+  IntOp $4 $4 + 1 ; Move to the next section\r
+  goto parse ;Carry on parsing\r
+\r
+  not_dot:\r
+  IntCmp $4 1 major_ver\r
+  IntCmp $4 2 minor_ver\r
+  IntCmp $4 3 build_ver\r
+  IntCmp $4 4 parse_done\r
+\r
+  major_ver:\r
+  StrCpy $R1 $R1$2\r
+  goto parse ;Carry on parsing\r
+\r
+  minor_ver:\r
+  StrCpy $R2 $R2$2\r
+  goto parse ;Carry on parsing\r
+\r
+  build_ver:\r
+  StrCpy $R3 $R3$2\r
+  goto parse ;Carry on parsing\r
+\r
+  parse_done:\r
+\r
+  IntCmp $R1 $R5 this_major_same loop this_major_more\r
+  this_major_more:\r
+  StrCpy $R5 $R1\r
+  StrCpy $R6 $R2\r
+  StrCpy $R7 $R3\r
+  StrCpy $R8 $R4\r
+\r
+  goto loop\r
+\r
+  this_major_same:\r
+  IntCmp $R2 $R6 this_minor_same loop this_minor_more\r
+  this_minor_more:\r
+  StrCpy $R6 $R2\r
+  StrCpy $R7 R3\r
+  StrCpy $R8 $R4\r
+  goto loop\r
+\r
+  this_minor_same:\r
+  IntCmp $R3 $R7 loop loop this_build_more\r
+  this_build_more:\r
+  StrCpy $R7 $R3\r
+  StrCpy $R8 $R4\r
+  goto loop\r
+\r
+  done:\r
+\r
+  ;Have we got the framework we need?\r
+  IntCmp $R5 ${MIN_FRA_MAJOR} max_major_same fail OK\r
+  max_major_same:\r
+  IntCmp $R6 ${MIN_FRA_MINOR} max_minor_same fail OK\r
+  max_minor_same:\r
+  IntCmp $R7 ${MIN_FRA_BUILD} OK fail OK\r
+\r
+  ;Version on machine is greater than what we need\r
+  OK:\r
+  StrCpy $0 "1"\r
+  goto end\r
+\r
+  fail:\r
+  StrCmp $R8 "0.0.0" end\r
+\r
+\r
+  end:\r
+\r
+  ;Pop the variables we pushed earlier\r
+  Pop $R8\r
+  Pop $R7\r
+  Pop $R6\r
+  Pop $R5\r
+  Pop $R4\r
+  Pop $R3\r
+  Pop $R2\r
+  Pop $R1\r
+  Pop $4\r
+  Pop $3\r
+  Pop $2\r
+  Pop $1\r
+FunctionEnd
\ No newline at end of file
index 72f9c8830fa20f41ecb9073e842a83928667c7f4..4903de06320530cc977567e6fa98ebd20667fd55 100644 (file)
@@ -1,4 +1,9 @@
-using System.Reflection;\r
+/*  AssemblyInfo.cs $\r
+    This file is part of the HandBrake source code.\r
+    Homepage: <http://handbrake.fr>.\r
+    It may be used under the terms of the GNU General Public License. */\r
+\r
+using System.Reflection;\r
 using System.Resources;\r
 using System.Runtime.CompilerServices;\r
 using System.Runtime.InteropServices;\r
@@ -51,5 +56,5 @@ using System.Windows;
 // You can specify all the values or you can default the Build and Revision Numbers \r
 // by using the '*' as shown below:\r
 // [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("0.9.5.0")]\r
-[assembly: AssemblyFileVersion("0.9.5.0")]\r
+[assembly: AssemblyVersion("0.9.6.4532")]\r
+[assembly: NeutralResourcesLanguage("")]
\ No newline at end of file
diff --git a/win/CS/HandBrakeWPF/README BEFORE WRITING CODE.txt b/win/CS/HandBrakeWPF/README BEFORE WRITING CODE.txt
deleted file mode 100644 (file)
index 252bae7..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-This is the port of the current WinForms GUI over to WPF.\r
-It is an incomplete work-in-progress and not currently in a usable state!\r
-\r
-Goals:\r
-\r
-- Move as much of the busness logic into the ApplicaitonServices library so it's reusable.\r
-- Rebuild the UI in WPF using MVVM approach using Caliburn Micro 1.2 as the base and Castle Windsor for IoC/DI
\ No newline at end of file
index 54622b39227ee98aafc47affda032e4e18686027..731e7d384fa0bb6d44bccf1abd35ac4f2ae75133 100644 (file)
@@ -158,7 +158,7 @@ namespace HandBrakeWPF.ViewModels
             this.queueProcessor = IoC.Get<IQueueProcessor>(); // TODO Instance ID!\r
 \r
             // Setup Properties\r
-            this.WindowTitle = "HandBrake WPF Test Application";\r
+            this.WindowTitle = "HandBrake";\r
             this.CurrentTask = new EncodeTask();\r
             this.ScannedSource = new Source();\r
 \r
index bd77cb5d98323c72848548214fd807999f551b78..4fa72c4c1b4ab9b32cb8c600c1820eea89c984e4 100644 (file)
@@ -20,7 +20,6 @@
     <ProjectsToBuild Include="HandBrake.Interop\HandBrakeInterop\*proj" Exclude="$(MSBuildProjectFile)"/>\r
     <ProjectsToBuild Include="HandBrake.ApplicationServices\*proj" Exclude="$(MSBuildProjectFile)"/>\r
     <ProjectsToBuild Include="HandBrakeCS.*proj" Exclude="$(MSBuildProjectFile)"/>\r
-    <ProjectsToBuild Include="HandBrakeWPF\HandBrakeWPF.*proj" Exclude="$(MSBuildProjectFile)"/>\r
   </ItemGroup>\r
 \r
   <!-- Dependencies -->\r
@@ -32,9 +31,6 @@
     <InstallDependsOn>BuildRelease;CreateReleasePostBuildEvent</InstallDependsOn>\r
   </PropertyGroup>\r
 \r
-  <PropertyGroup>\r
-    <AlphaDependsOn>AlphaPreBuild;BuildRelease;CreateAlphaPostBuildEvent</AlphaDependsOn>\r
-  </PropertyGroup>\r
   \r
   <!-- Builds /t: -->\r
   <Target Name="NightlyBuild" DependsOnTargets="$(NightlyDependsOn)"/>\r
   </Target>\r
   \r
   <!-- Pre Build Events -->\r
-  <Target Name="AlphaPreBuild">\r
-    <Exec Command="subwcrev.exe $(ProjectDir). $(ProjectDir)HandBrakeWPF\Properties\AssemblyInfo.cs.tmpl $(ProjectDir)HandBrakeWPF\Properties\AssemblyInfo.cs" />\r
-    <Exec Command="subwcrev.exe $(ProjectDir). $(ProjectDir)HandBrakeWPF\Installer\MakeAlpha.nsi.tmpl $(ProjectDir)HandBrakeWPF\Installer\MakeAlpha.nsi" />\r
-  </Target>\r
-\r
   <!-- Post Build Events -->\r
   <Target Name="NightlyPostBuildEvent">\r
     <Exec Command="copy $(ProjectDir)Installer\MakeNightly.nsi $(ProjectDir)bin\$(Platform)\Release /Y" Condition="$(Platform) == 'x86'" />\r
     <Exec Command="makensis $(ProjectDir)bin\$(Platform)\Release\Installer64.nsi" Condition="$(Platform) == 'x64'" />\r
   </Target>\r
 \r
-  <Target Name="CreateAlphaPostBuildEvent">\r
-    <Exec Command="copy $(ProjectDir)HandBrakeWPF\Installer\MakeAlpha.nsi $(ProjectDir)HandBrakeWPF\bin\Release /Y" />\r
-    <Exec Command="copy $(ProjectDir)handbrakepineapple.ico $(ProjectDir)HandBrakeWPF\bin\Release /Y" />\r
-    <Exec Command="xcopy $(ProjectDir)doc $(ProjectDir)HandBrakeWPF\bin\Release\doc /I /Y" />\r
-    <Exec Command="makensis $(ProjectDir)HandBrakeWPF\bin\Release\MakeAlpha.nsi"/>\r
-  </Target>\r
-\r
 </Project>
\ No newline at end of file
diff --git a/win/CS/build2.xml b/win/CS/build2.xml
new file mode 100644 (file)
index 0000000..17e2f49
--- /dev/null
@@ -0,0 +1,76 @@
+<!--\r
+  build.xml\r
+  This file is part of the HandBrake source code.\r
+  Homepage: <http://handbrake.fr>.\r
+  It may be used under the terms of the GNU General Public License\r
+  \r
+  HandBrake Build Scipt for usage with Jenkins.\r
+  Usage: \r
+    msbuild build2.xml /p:Platform=x86 /t:Nightly\r
+    msbuild build2.xml /p:Platform=x86 /t:Release\r
+  Reuqires: HandBrakeCli.exe to be in the release folder.\r
+  \r
+-->\r
+<Project DefaultTargets="NightlyBuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  \r
+  <!-- Setup -->\r
+  <PropertyGroup>\r
+    <Configuration>Release</Configuration>\r
+  </PropertyGroup>\r
+  \r
+  <!-- Build all the main cproj files.-->\r
+  <ItemGroup>\r
+    <ProjectsToBuild Include="HandBrake.Interop\HandBrakeInterop\*proj" Exclude="$(MSBuildProjectFile)"/>\r
+    <ProjectsToBuild Include="HandBrake.ApplicationServices\*proj" Exclude="$(MSBuildProjectFile)"/>\r
+    <ProjectsToBuild Include="HandBrakeWPF\HandBrakeWPF.*proj" Exclude="$(MSBuildProjectFile)"/>\r
+  </ItemGroup>\r
+\r
+  <!-- Dependencies -->\r
+  <PropertyGroup>\r
+    <NightlyDependsOn>PreBuild;BuildRelease;NightlyPostBuild</NightlyDependsOn>\r
+  </PropertyGroup>\r
+\r
+  <PropertyGroup>\r
+    <InstallDependsOn>PreBuild;BuildRelease;ReleasePostBuild</InstallDependsOn>\r
+  </PropertyGroup>\r
+  \r
+  <!-- Builds /t: -->\r
+  <Target Name="Nightly" DependsOnTargets="$(NightlyDependsOn)"/>\r
+  <Target Name="Release" DependsOnTargets="$(InstallDependsOn)"/>\r
+  \r
+  <!-- Build All Components (Forms, WPF, ApplicationServices, Interop -->\r
+  <Target Name="BuildRelease">\r
+    <MSBuild Projects ="@(ProjectsToBuild)"\r
+             ContinueOnError ="false"\r
+             Properties="Configuration=$(Configuration)" >\r
+      <Output ItemName="OutputFiles" TaskParameter="TargetOutputs"/>\r
+    </MSBuild>\r
+  </Target>\r
+  \r
+  <!-- Pre Build Events -->\r
+  <Target Name="PreBuild">\r
+    <Exec Command="subwcrev.exe $(ProjectDir). $(ProjectDir)HandBrakeWPF\Properties\AssemblyInfo.cs.tmpl $(ProjectDir)HandBrakeWPF\Properties\AssemblyInfo.cs" />\r
+    <Exec Command="subwcrev.exe $(ProjectDir). $(ProjectDir)HandBrakeWPF\Installer\MakeNightly.nsi.tmpl $(ProjectDir)HandBrakeWPF\Installer\MakeNightly.nsi" />\r
+    <Exec Command="subwcrev.exe $(ProjectDir). $(ProjectDir)HandBrakeWPF\Installer\MakeNightly64.nsi.tmpl $(ProjectDir)HandBrakeWPF\Installer\MakeNightly64.nsi" />\r
+  </Target>\r
+\r
+  <!-- Post Build Events -->\r
+  <Target Name="NightlyPostBuild">\r
+    <Exec Command="copy $(ProjectDir)HandBrakeWPF\Installer\MakeNightly.nsi $(ProjectDir)HandBrakeWPF\bin\Release /Y" Condition="$(Platform) == 'x86'" />\r
+    <Exec Command="copy $(ProjectDir)HandBrakeWPF\Installer\MakeNightly64.nsi $(ProjectDir)HandBrakeWPF\bin\Release /Y" Condition="$(Platform) == 'x64'" />\r
+    <Exec Command="copy $(ProjectDir)handbrakepineapple.ico $(ProjectDir)HandBrakeWPF\bin\Release /Y" />\r
+    <Exec Command="xcopy $(ProjectDir)doc $(ProjectDir)HandBrakeWPF\bin\Release\doc /I /Y" />\r
+    <Exec Command="makensis $(ProjectDir)HandBrakeWPF\bin\Release\MakeNightly.nsi" Condition="$(Platform) == 'x86'" />\r
+    <Exec Command="makensis $(ProjectDir)HandBrakeWPF\bin\Release\MakeNightly64.nsi" Condition="$(Platform) == 'x64'" />\r
+  </Target>\r
+\r
+  <Target Name="ReleasePostBuild">\r
+    <Exec Command="copy $(ProjectDir)HandBrakeWPF\Installer\Installer.nsi $(ProjectDir)HandBrakeWPF\bin\Release /Y" Condition="$(Platform) == 'x86'" />\r
+    <Exec Command="copy $(ProjectDir)HandBrakeWPF\Installer\Installer64.nsi $(ProjectDir)HandBrakeWPF\bin\Release /Y" Condition="$(Platform) == 'x64'" />\r
+    <Exec Command="copy $(ProjectDir)handbrakepineapple.ico $(ProjectDir)HandBrakeWPF\bin\Release /Y" />\r
+    <Exec Command="xcopy $(ProjectDir)doc $(ProjectDir)HandBrakeWPF\bin\Release\doc /I /Y" />\r
+    <Exec Command="makensis $(ProjectDir)HandBrakeWPF\bin\Release\Installer.nsi" Condition="$(Platform) == 'x86'" />\r
+    <Exec Command="makensis $(ProjectDir)HandBrakeWPF\bin\Release\Installer64.nsi" Condition="$(Platform) == 'x64'" />\r
+  </Target>\r
+  \r
+</Project>
\ No newline at end of file