summaryrefslogtreecommitdiffstats
path: root/win
diff options
context:
space:
mode:
authorsr55 <[email protected]>2012-03-24 19:18:24 +0000
committersr55 <[email protected]>2012-03-24 19:18:24 +0000
commitc6401fab7c5f1daf36cdb3f99c640477c19bdc01 (patch)
tree1a622bb0d37375efcb612beb6049e51fac99ff08 /win
parent1befa4f1a72a9e8b0277b4ff04b0200dd884f6bc (diff)
WinGui: (WPF) Setup all the Installer (Nightly and Release, x86/64) and Build scripts for the new UI.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4533 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'win')
-rw-r--r--win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj2
-rw-r--r--win/CS/HandBrake10.sln1
-rw-r--r--win/CS/HandBrakeCS.csproj1
-rw-r--r--win/CS/HandBrakeWPF/HandBrakeWPF.csproj7
-rw-r--r--win/CS/HandBrakeWPF/Installer/Installer.nsi326
-rw-r--r--win/CS/HandBrakeWPF/Installer/Installer64.nsi329
-rw-r--r--win/CS/HandBrakeWPF/Installer/MakeAlpha.nsi.tmpl168
-rw-r--r--win/CS/HandBrakeWPF/Installer/MakeNightly.nsi.tmpl326
-rw-r--r--win/CS/HandBrakeWPF/Installer/MakeNightly64.nsi.tmpl326
-rw-r--r--win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs11
-rw-r--r--win/CS/HandBrakeWPF/README BEFORE WRITING CODE.txt7
-rw-r--r--win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs2
-rw-r--r--win/CS/build.xml16
-rw-r--r--win/CS/build2.xml76
14 files changed, 1398 insertions, 200 deletions
diff --git a/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj b/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj
index 4cee59f78..406fdabd8 100644
--- a/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj
+++ b/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj
@@ -198,8 +198,6 @@
-->
<PropertyGroup>
<PreBuildEvent>
- subwcrev.exe "$(ProjectDir)." "$(ProjectDir)Properties\AssemblyInfo.cs.tmpl" "$(ProjectDir)Properties\AssemblyInfo.cs"
- subwcrev.exe "$(ProjectDir)." "$(ProjectDir)Properties\AssemblyInfo.cs.tmpl" "$(ProjectDir)Properties\AssemblyInfo.cs"
</PreBuildEvent>
</PropertyGroup>
</Project> \ No newline at end of file
diff --git a/win/CS/HandBrake10.sln b/win/CS/HandBrake10.sln
index fb031213b..77462c94f 100644
--- a/win/CS/HandBrake10.sln
+++ b/win/CS/HandBrake10.sln
@@ -12,6 +12,7 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{5CB7BC74-449C-4E95-98AB-E1E4387E514B}"
ProjectSection(SolutionItems) = preProject
build.xml = build.xml
+ build2.xml = build2.xml
EndProjectSection
EndProject
Global
diff --git a/win/CS/HandBrakeCS.csproj b/win/CS/HandBrakeCS.csproj
index c2e0f74aa..dddd46cd3 100644
--- a/win/CS/HandBrakeCS.csproj
+++ b/win/CS/HandBrakeCS.csproj
@@ -316,7 +316,6 @@
<None Include="Installer\Installer64.nsi" />
<None Include="Installer\MakeNightly64.nsi.tmpl" />
<None Include="Installer\MakeNightly.nsi.tmpl" />
- <None Include="Installer\MakeNightly.nsi" />
<None Include="Installer\Installer.nsi" />
</ItemGroup>
<ItemGroup>
diff --git a/win/CS/HandBrakeWPF/HandBrakeWPF.csproj b/win/CS/HandBrakeWPF/HandBrakeWPF.csproj
index 16989a264..3d8fb826f 100644
--- a/win/CS/HandBrakeWPF/HandBrakeWPF.csproj
+++ b/win/CS/HandBrakeWPF/HandBrakeWPF.csproj
@@ -9,7 +9,7 @@
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>HandBrakeWPF</RootNamespace>
- <AssemblyName>HandBrakeWPF</AssemblyName>
+ <AssemblyName>HandBrake</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
@@ -216,7 +216,10 @@
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="app.config" />
- <None Include="Installer\MakeAlpha.nsi.tmpl" />
+ <None Include="Installer\Installer.nsi" />
+ <None Include="Installer\Installer64.nsi" />
+ <None Include="Installer\MakeNightly.nsi.tmpl" />
+ <None Include="Installer\MakeNightly64.nsi.tmpl" />
<None Include="Properties\AssemblyInfo.cs.tmpl" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
diff --git a/win/CS/HandBrakeWPF/Installer/Installer.nsi b/win/CS/HandBrakeWPF/Installer/Installer.nsi
new file mode 100644
index 000000000..c19c0e2ab
--- /dev/null
+++ b/win/CS/HandBrakeWPF/Installer/Installer.nsi
@@ -0,0 +1,326 @@
+/* Resources.Designer.cs $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
+
+; Script generated by the HM NIS Edit Script Wizard.
+
+; HM NIS Edit Wizard helper defines
+!define PRODUCT_NAME "HandBrake"
+!define PRODUCT_VERSION "0.9.7"
+!define PRODUCT_VERSION_NUMBER "0.9.7"
+!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Handbrake.exe"
+!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
+!define PRODUCT_UNINST_ROOT_KEY "HKLM"
+
+;Required .NET framework
+!define MIN_FRA_MAJOR "4"
+!define MIN_FRA_MINOR "0"
+!define MIN_FRA_BUILD "*"
+
+SetCompressor lzma
+
+; MUI 1.67 compatible ------
+!include "MUI.nsh"
+
+; MUI Settings
+!define MUI_ABORTWARNING
+!define MUI_ICON "handbrakepineapple.ico"
+!define MUI_UNICON "handbrakepineapple.ico"
+
+; Welcome page
+!insertmacro MUI_PAGE_WELCOME
+; License page
+!insertmacro MUI_PAGE_LICENSE "doc\COPYING"
+; Directory page
+!insertmacro MUI_PAGE_DIRECTORY
+; Instfiles page
+!insertmacro MUI_PAGE_INSTFILES
+; Finish page
+;!define MUI_FINISHPAGE_RUN "$INSTDIR\Handbrake.exe"
+!insertmacro MUI_PAGE_FINISH
+
+; Uninstaller pages
+!insertmacro MUI_UNPAGE_INSTFILES
+
+; Language files
+!insertmacro MUI_LANGUAGE "English"
+
+; MUI end ------
+
+Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
+OutFile "HandBrake-${PRODUCT_VERSION_NUMBER}-Win_GUI.exe"
+
+!include WordFunc.nsh
+!insertmacro VersionCompare
+!include LogicLib.nsh
+
+InstallDir "$PROGRAMFILES\Handbrake"
+InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
+ShowInstDetails show
+ShowUnInstDetails show
+
+Var InstallDotNET
+
+Function .onInit
+
+ ; Begin Only allow one version
+ System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'
+ Pop $R0
+
+ StrCmp $R0 0 +3
+ MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." /SD IDOK
+ Abort
+
+ ;Remove previous version
+ ReadRegStr $R0 HKLM \
+ "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}\" \
+ "UninstallString"
+ StrCmp $R0 "" done
+
+ MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
+ "${PRODUCT_NAME} is already installed. $\n$\nClick `OK` to remove the \
+ previous version or `Cancel` to continue." /SD IDOK \
+ IDOK uninst
+ goto done
+
+ ;Run the uninstaller
+ uninst:
+ IfSilent +3
+ Exec $INSTDIR\uninst.exe
+ goto done
+ Exec '"$INSTDIR\uninst.exe" /S'
+ done:
+FunctionEnd
+
+Section "Handbrake" SEC01
+ SetOutPath "$INSTDIR"
+ SetOverwrite ifnewer
+
+ ; Begin Check .NET version
+ StrCpy $InstallDotNET "No"
+ Call CheckFramework
+ StrCmp $0 "1" +3
+ StrCpy $InstallDotNET "Yes"
+ 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
+ Pop $0
+
+ ; Get .NET if required
+ ${If} $InstallDotNET == "Yes"
+ SetDetailsView hide
+ 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
+ Pop $1
+
+ ${If} $1 != "OK"
+ Delete "$INSTDIR\dotnetfx.exe"
+ Abort "Installation cancelled, ${PRODUCT_NAME} requires the .NET 4.0 Framework"
+ ${EndIf}
+
+ ExecWait "$INSTDIR\dotnetfx.exe"
+ Delete "$INSTDIR\dotnetfx.exe"
+
+ SetDetailsView show
+ ${EndIf}
+
+ ; Install Files
+ File "*.exe"
+ CreateDirectory "$SMPROGRAMS\Handbrake"
+ CreateShortCut "$SMPROGRAMS\Handbrake\Handbrake.lnk" "$INSTDIR\Handbrake.exe"
+ CreateShortCut "$DESKTOP\Handbrake.lnk" "$INSTDIR\Handbrake.exe"
+ File "*.dll"
+ File "*.config"
+ File "*.xml"
+ File "*.pdb"
+
+ ; Copy the standard doc set into the doc folder
+ SetOutPath "$INSTDIR\doc"
+ SetOverwrite ifnewer
+ File "doc\*.*"
+
+ ; Copy the standard fonts config set into the fonts folder
+ SetOutPath "$INSTDIR\fonts"
+ SetOverwrite ifnewer
+ File /r "fonts\*.*"
+SectionEnd
+
+Section -AdditionalIcons
+ CreateShortCut "$SMPROGRAMS\Handbrake\Uninstall.lnk" "$INSTDIR\uninst.exe"
+SectionEnd
+
+Section -Post
+ WriteUninstaller "$INSTDIR\uninst.exe"
+ WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Handbrake.exe"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Handbrake.exe"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
+SectionEnd
+
+
+Function un.onUninstSuccess
+ HideWindow
+ MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." /SD IDOK
+FunctionEnd
+
+Function un.onInit
+ 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
+ Abort
+FunctionEnd
+
+Section Uninstall
+ Delete "$INSTDIR\uninst.exe"
+
+ Delete "$INSTDIR\*.*"
+ Delete "$INSTDIR\doc\*.*"
+ Delete "$INSTDIR\fonts\*.*"
+ Delete "$INSTDIR\fonts\conf.d\*.*"
+ Delete "$INSTDIR\fonts\conf.avail\*.*"
+ RMDir "$INSTDIR\doc"
+ RMDIR "$INSTDIR\fonts\conf.d"
+ RMDIR "$INSTDIR\fonts\conf.avail"
+ RMDIR "$INSTDIR\fonts"
+ Delete "$SMPROGRAMS\Handbrake\Uninstall.lnk"
+ Delete "$DESKTOP\Handbrake.lnk"
+ Delete "$SMPROGRAMS\Handbrake\Handbrake.lnk"
+ RMDir "$SMPROGRAMS\Handbrake"
+ RMDir "$INSTDIR"
+
+ DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
+ DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
+ SetAutoClose true
+SectionEnd
+
+;Check for .NET framework
+Function CheckFrameWork
+
+ ;Save the variables in case something else is using them
+ Push $0
+ Push $1
+ Push $2
+ Push $3
+ Push $4
+ Push $R1
+ Push $R2
+ Push $R3
+ Push $R4
+ Push $R5
+ Push $R6
+ Push $R7
+ Push $R8
+
+ StrCpy $R5 "0"
+ StrCpy $R6 "0"
+ StrCpy $R7 "0"
+ StrCpy $R8 "0.0.0"
+ StrCpy $0 0
+
+ loop:
+
+ ;Get each sub key under "SOFTWARE\Microsoft\NET Framework Setup\NDP"
+ EnumRegKey $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP" $0
+ StrCmp $1 "" done ;jump to end if no more registry keys
+ IntOp $0 $0 + 1
+ StrCpy $2 $1 1 ;Cut off the first character
+ StrCpy $3 $1 "" 1 ;Remainder of string
+
+ ;Loop if first character is not a 'v'
+ StrCmpS $2 "v" start_parse loop
+
+ ;Parse the string
+ start_parse:
+ StrCpy $R1 ""
+ StrCpy $R2 ""
+ StrCpy $R3 ""
+ StrCpy $R4 $3
+
+ StrCpy $4 1
+
+ parse:
+ StrCmp $3 "" parse_done ;If string is empty, we are finished
+ StrCpy $2 $3 1 ;Cut off the first character
+ StrCpy $3 $3 "" 1 ;Remainder of string
+ StrCmp $2 "." is_dot not_dot ;Move to next part if it's a dot
+
+ is_dot:
+ IntOp $4 $4 + 1 ; Move to the next section
+ goto parse ;Carry on parsing
+
+ not_dot:
+ IntCmp $4 1 major_ver
+ IntCmp $4 2 minor_ver
+ IntCmp $4 3 build_ver
+ IntCmp $4 4 parse_done
+
+ major_ver:
+ StrCpy $R1 $R1$2
+ goto parse ;Carry on parsing
+
+ minor_ver:
+ StrCpy $R2 $R2$2
+ goto parse ;Carry on parsing
+
+ build_ver:
+ StrCpy $R3 $R3$2
+ goto parse ;Carry on parsing
+
+ parse_done:
+
+ IntCmp $R1 $R5 this_major_same loop this_major_more
+ this_major_more:
+ StrCpy $R5 $R1
+ StrCpy $R6 $R2
+ StrCpy $R7 $R3
+ StrCpy $R8 $R4
+
+ goto loop
+
+ this_major_same:
+ IntCmp $R2 $R6 this_minor_same loop this_minor_more
+ this_minor_more:
+ StrCpy $R6 $R2
+ StrCpy $R7 R3
+ StrCpy $R8 $R4
+ goto loop
+
+ this_minor_same:
+ IntCmp $R3 $R7 loop loop this_build_more
+ this_build_more:
+ StrCpy $R7 $R3
+ StrCpy $R8 $R4
+ goto loop
+
+ done:
+
+ ;Have we got the framework we need?
+ IntCmp $R5 ${MIN_FRA_MAJOR} max_major_same fail OK
+ max_major_same:
+ IntCmp $R6 ${MIN_FRA_MINOR} max_minor_same fail OK
+ max_minor_same:
+ IntCmp $R7 ${MIN_FRA_BUILD} OK fail OK
+
+ ;Version on machine is greater than what we need
+ OK:
+ StrCpy $0 "1"
+ goto end
+
+ fail:
+ StrCmp $R8 "0.0.0" end
+
+
+ end:
+
+ ;Pop the variables we pushed earlier
+ Pop $R8
+ Pop $R7
+ Pop $R6
+ Pop $R5
+ Pop $R4
+ Pop $R3
+ Pop $R2
+ Pop $R1
+ Pop $4
+ Pop $3
+ Pop $2
+ Pop $1
+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
index 000000000..9e6ff4872
--- /dev/null
+++ b/win/CS/HandBrakeWPF/Installer/Installer64.nsi
@@ -0,0 +1,329 @@
+/* Resources.Designer.cs $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
+
+; Script generated by the HM NIS Edit Script Wizard.
+
+; HM NIS Edit Wizard helper defines
+!define PRODUCT_NAME "HandBrake"
+!define PRODUCT_VERSION "0.9.7"
+!define PRODUCT_VERSION_NUMBER "0.9.7"
+!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Handbrake.exe"
+!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
+!define PRODUCT_UNINST_ROOT_KEY "HKLM"
+
+;Required .NET framework
+!define MIN_FRA_MAJOR "4"
+!define MIN_FRA_MINOR "0"
+!define MIN_FRA_BUILD "*"
+
+SetCompressor lzma
+
+; MUI 1.67 compatible ------
+!include "MUI.nsh"
+
+; MUI Settings
+!define MUI_ABORTWARNING
+!define MUI_ICON "handbrakepineapple.ico"
+!define MUI_UNICON "handbrakepineapple.ico"
+
+; Welcome page
+!insertmacro MUI_PAGE_WELCOME
+; License page
+!insertmacro MUI_PAGE_LICENSE "doc\COPYING"
+; Directory page
+!insertmacro MUI_PAGE_DIRECTORY
+; Instfiles page
+!insertmacro MUI_PAGE_INSTFILES
+; Finish page
+;!define MUI_FINISHPAGE_RUN "$INSTDIR\Handbrake.exe"
+!insertmacro MUI_PAGE_FINISH
+
+; Uninstaller pages
+!insertmacro MUI_UNPAGE_INSTFILES
+
+; Language files
+!insertmacro MUI_LANGUAGE "English"
+
+; MUI end ------
+
+Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
+OutFile "HandBrake-${PRODUCT_VERSION_NUMBER}-Win_GUI.exe"
+
+!include WordFunc.nsh
+!insertmacro VersionCompare
+!include LogicLib.nsh
+
+InstallDir "$PROGRAMFILES64\Handbrake"
+InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
+ShowInstDetails show
+ShowUnInstDetails show
+
+Var InstallDotNET
+
+Function .onInit
+
+ ; Begin Only allow one version
+ System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'
+ Pop $R0
+
+ StrCmp $R0 0 +3
+ MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." /SD IDOK
+ Abort
+
+ ;Remove previous version
+ ReadRegStr $R0 HKLM \
+ "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}\" \
+ "UninstallString"
+ StrCmp $R0 "" done
+
+ MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
+ "${PRODUCT_NAME} is already installed. $\n$\nClick `OK` to remove the \
+ previous version or `Cancel` to continue." /SD IDOK \
+ IDOK uninst
+ goto done
+
+ ;Run the uninstaller
+ uninst:
+ IfSilent +3
+ Exec $INSTDIR\uninst.exe
+ goto done
+ Exec '"$INSTDIR\uninst.exe" /S'
+ done:
+FunctionEnd
+
+Section "Handbrake" SEC01
+ SetOutPath "$INSTDIR"
+ SetOverwrite ifnewer
+
+ ; Begin Check .NET version
+ StrCpy $InstallDotNET "No"
+ Call CheckFramework
+ StrCmp $0 "1" +3
+ StrCpy $InstallDotNET "Yes"
+ 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
+ Pop $0
+
+ ; Get .NET if required
+ ${If} $InstallDotNET == "Yes"
+ SetDetailsView hide
+ 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
+ Pop $1
+
+ ${If} $1 != "OK"
+ Delete "$INSTDIR\dotnetfx.exe"
+ Abort "Installation cancelled, ${PRODUCT_NAME} requires the .NET 4.0 Framework"
+ ${EndIf}
+
+ ExecWait "$INSTDIR\dotnetfx.exe"
+ Delete "$INSTDIR\dotnetfx.exe"
+
+ SetDetailsView show
+ ${EndIf}
+
+ ; Install Files
+ File "Handbrake.exe"
+ File "HandBrakeCLI.exe"
+ CreateDirectory "$SMPROGRAMS\Handbrake"
+ CreateShortCut "$SMPROGRAMS\Handbrake\Handbrake.lnk" "$INSTDIR\Handbrake.exe"
+ CreateShortCut "$DESKTOP\Handbrake.lnk" "$INSTDIR\Handbrake.exe"
+ File "*.dll"
+ File "*.config"
+ File "*.xml"
+ File "*.pdb"
+
+ ; Copy the standard doc set into the doc folder
+ SetOutPath "$INSTDIR\doc"
+ SetOverwrite ifnewer
+ File "doc\*.*"
+
+ ; Copy the standard fonts config set into the fonts folder
+ SetOutPath "$INSTDIR\fonts"
+ SetOverwrite ifnewer
+ File /r "fonts\*.*"
+
+
+SectionEnd
+
+Section -AdditionalIcons
+ CreateShortCut "$SMPROGRAMS\Handbrake\Uninstall.lnk" "$INSTDIR\uninst.exe"
+SectionEnd
+
+Section -Post
+ WriteUninstaller "$INSTDIR\uninst.exe"
+ WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Handbrake.exe"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Handbrake.exe"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
+SectionEnd
+
+
+Function un.onUninstSuccess
+ HideWindow
+ MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." /SD IDOK
+FunctionEnd
+
+Function un.onInit
+ 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
+ Abort
+FunctionEnd
+
+Section Uninstall
+ Delete "$INSTDIR\uninst.exe"
+
+ Delete "$INSTDIR\*.*"
+ Delete "$INSTDIR\doc\*.*"
+ Delete "$INSTDIR\fonts\*.*"
+ Delete "$INSTDIR\fonts\conf.d\*.*"
+ Delete "$INSTDIR\fonts\conf.avail\*.*"
+ RMDir "$INSTDIR\doc"
+ RMDIR "$INSTDIR\fonts\conf.d"
+ RMDIR "$INSTDIR\fonts\conf.avail"
+ RMDIR "$INSTDIR\fonts"
+ Delete "$SMPROGRAMS\Handbrake\Uninstall.lnk"
+ Delete "$DESKTOP\Handbrake.lnk"
+ Delete "$SMPROGRAMS\Handbrake\Handbrake.lnk"
+ RMDir "$SMPROGRAMS\Handbrake"
+ RMDir "$INSTDIR"
+
+ DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
+ DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
+ SetAutoClose true
+SectionEnd
+
+;Check for .NET framework
+Function CheckFrameWork
+
+ ;Save the variables in case something else is using them
+ Push $0
+ Push $1
+ Push $2
+ Push $3
+ Push $4
+ Push $R1
+ Push $R2
+ Push $R3
+ Push $R4
+ Push $R5
+ Push $R6
+ Push $R7
+ Push $R8
+
+ StrCpy $R5 "0"
+ StrCpy $R6 "0"
+ StrCpy $R7 "0"
+ StrCpy $R8 "0.0.0"
+ StrCpy $0 0
+
+ loop:
+
+ ;Get each sub key under "SOFTWARE\Microsoft\NET Framework Setup\NDP"
+ EnumRegKey $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP" $0
+ StrCmp $1 "" done ;jump to end if no more registry keys
+ IntOp $0 $0 + 1
+ StrCpy $2 $1 1 ;Cut off the first character
+ StrCpy $3 $1 "" 1 ;Remainder of string
+
+ ;Loop if first character is not a 'v'
+ StrCmpS $2 "v" start_parse loop
+
+ ;Parse the string
+ start_parse:
+ StrCpy $R1 ""
+ StrCpy $R2 ""
+ StrCpy $R3 ""
+ StrCpy $R4 $3
+
+ StrCpy $4 1
+
+ parse:
+ StrCmp $3 "" parse_done ;If string is empty, we are finished
+ StrCpy $2 $3 1 ;Cut off the first character
+ StrCpy $3 $3 "" 1 ;Remainder of string
+ StrCmp $2 "." is_dot not_dot ;Move to next part if it's a dot
+
+ is_dot:
+ IntOp $4 $4 + 1 ; Move to the next section
+ goto parse ;Carry on parsing
+
+ not_dot:
+ IntCmp $4 1 major_ver
+ IntCmp $4 2 minor_ver
+ IntCmp $4 3 build_ver
+ IntCmp $4 4 parse_done
+
+ major_ver:
+ StrCpy $R1 $R1$2
+ goto parse ;Carry on parsing
+
+ minor_ver:
+ StrCpy $R2 $R2$2
+ goto parse ;Carry on parsing
+
+ build_ver:
+ StrCpy $R3 $R3$2
+ goto parse ;Carry on parsing
+
+ parse_done:
+
+ IntCmp $R1 $R5 this_major_same loop this_major_more
+ this_major_more:
+ StrCpy $R5 $R1
+ StrCpy $R6 $R2
+ StrCpy $R7 $R3
+ StrCpy $R8 $R4
+
+ goto loop
+
+ this_major_same:
+ IntCmp $R2 $R6 this_minor_same loop this_minor_more
+ this_minor_more:
+ StrCpy $R6 $R2
+ StrCpy $R7 R3
+ StrCpy $R8 $R4
+ goto loop
+
+ this_minor_same:
+ IntCmp $R3 $R7 loop loop this_build_more
+ this_build_more:
+ StrCpy $R7 $R3
+ StrCpy $R8 $R4
+ goto loop
+
+ done:
+
+ ;Have we got the framework we need?
+ IntCmp $R5 ${MIN_FRA_MAJOR} max_major_same fail OK
+ max_major_same:
+ IntCmp $R6 ${MIN_FRA_MINOR} max_minor_same fail OK
+ max_minor_same:
+ IntCmp $R7 ${MIN_FRA_BUILD} OK fail OK
+
+ ;Version on machine is greater than what we need
+ OK:
+ StrCpy $0 "1"
+ goto end
+
+ fail:
+ StrCmp $R8 "0.0.0" end
+
+
+ end:
+
+ ;Pop the variables we pushed earlier
+ Pop $R8
+ Pop $R7
+ Pop $R6
+ Pop $R5
+ Pop $R4
+ Pop $R3
+ Pop $R2
+ Pop $R1
+ Pop $4
+ Pop $3
+ Pop $2
+ Pop $1
+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
index 2be087486..000000000
--- a/win/CS/HandBrakeWPF/Installer/MakeAlpha.nsi.tmpl
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Resources.Designer.cs $
-
- This file is part of the HandBrake source code.
- Homepage: <http://handbrake.fr/>.
- It may be used under the terms of the GNU General Public License. */
-
-; Script generated by the HM NIS Edit Script Wizard.
-
-; HM NIS Edit Wizard helper defines
-!define PRODUCT_NAME "HandBrake WPF (Pre-Alpha)"
-!define PRODUCT_VERSION "$WCREV$"
-!define PRODUCT_VERSION_NUMBER "svn$WCREV$"
-!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\HandBrakeWPF.exe"
-!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
-!define PRODUCT_UNINST_ROOT_KEY "HKLM"
-
-;Required .NET framework
-!define MIN_FRA_MAJOR "4"
-!define MIN_FRA_MINOR "0"
-!define MIN_FRA_BUILD "*"
-
-SetCompressor lzma
-
-; MUI 1.67 compatible ------
-!include "MUI.nsh"
-
-; MUI Settings
-!define MUI_ABORTWARNING
-!define MUI_ICON "handbrakepineapple.ico"
-!define MUI_UNICON "handbrakepineapple.ico"
-
-; Welcome page
-!insertmacro MUI_PAGE_WELCOME
-; License page
-!insertmacro MUI_PAGE_LICENSE "doc\COPYING"
-; Directory page
-!insertmacro MUI_PAGE_DIRECTORY
-; Instfiles page
-!insertmacro MUI_PAGE_INSTFILES
-; Finish page
-;!define MUI_FINISHPAGE_RUN "$INSTDIR\HandBrakeWPF.exe"
-!insertmacro MUI_PAGE_FINISH
-
-; Uninstaller pages
-!insertmacro MUI_UNPAGE_INSTFILES
-
-; Language files
-!insertmacro MUI_LANGUAGE "English"
-
-; MUI end ------
-
-Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
-OutFile "HandBrake-${PRODUCT_VERSION_NUMBER}-WPF_PRE_ALPHA.exe"
-
-!include WordFunc.nsh
-!insertmacro VersionCompare
-!include LogicLib.nsh
-
-InstallDir "$PROGRAMFILES\HandbrakeWPF"
-InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
-ShowInstDetails show
-ShowUnInstDetails show
-
-Var InstallDotNET
-
-Function .onInit
-
- ; Begin Only allow one version
- System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'
- Pop $R0
-
- StrCmp $R0 0 +3
- MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." /SD IDOK
- Abort
-
- ;Remove previous version
- ReadRegStr $R0 HKLM \
- "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}\" \
- "UninstallString"
- StrCmp $R0 "" done
-
- MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
- "${PRODUCT_NAME} is already installed. $\n$\nClick `OK` to remove the \
- previous version or `Cancel` to continue." /SD IDOK \
- IDOK uninst
- goto done
-
- ;Run the uninstaller
- uninst:
- IfSilent +3
- Exec $INSTDIR\uninst.exe
- goto done
- Exec '"$INSTDIR\uninst.exe" /S'
- done:
-FunctionEnd
-
-Section "Handbrake" SEC01
- SetOutPath "$INSTDIR"
- SetOverwrite ifnewer
-
- ; Install Files
- File "*.exe"
- CreateDirectory "$SMPROGRAMS\HandBrakeWPF"
- CreateShortCut "$SMPROGRAMS\Handbrake\HandBrakeWPF.lnk" "$INSTDIR\HandBrakeWPF.exe"
- CreateShortCut "$DESKTOP\HandBrakeWPF.lnk" "$INSTDIR\HandBrakeWPF.exe"
- File "*.dll"
- File "*.config"
- File "*.xml"
- File "*.pdb"
-
- ; Copy the standard doc set into the doc folder
- SetOutPath "$INSTDIR\doc"
- SetOverwrite ifnewer
- File "doc\*.*"
-
- ; Copy the standard fonts config set into the fonts folder
- SetOutPath "$INSTDIR\fonts"
- SetOverwrite ifnewer
- File /r "fonts\*.*"
-SectionEnd
-
-Section -AdditionalIcons
- CreateShortCut "$SMPROGRAMS\Handbrake\Uninstall.lnk" "$INSTDIR\uninst.exe"
-SectionEnd
-
-Section -Post
- WriteUninstaller "$INSTDIR\uninst.exe"
- WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\HandBrakeWPF.exe"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\HandBrakeWPF.exe"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
-SectionEnd
-
-
-Function un.onUninstSuccess
- HideWindow
- MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." /SD IDOK
-FunctionEnd
-
-Function un.onInit
- 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
- Abort
-FunctionEnd
-
-Section Uninstall
- Delete "$INSTDIR\uninst.exe"
-
- Delete "$INSTDIR\*.*"
- Delete "$INSTDIR\doc\*.*"
- Delete "$INSTDIR\fonts\*.*"
- Delete "$INSTDIR\fonts\conf.d\*.*"
- Delete "$INSTDIR\fonts\conf.avail\*.*"
- RMDir "$INSTDIR\doc"
- RMDIR "$INSTDIR\fonts\conf.d"
- RMDIR "$INSTDIR\fonts\conf.avail"
- RMDIR "$INSTDIR\fonts"
- Delete "$SMPROGRAMS\HandBrakeWPF\Uninstall.lnk"
- Delete "$DESKTOP\HandBrakeWPF.lnk"
- Delete "$SMPROGRAMS\HandBrakeWPF\HandBrakeWPF.lnk"
- RMDir "$SMPROGRAMS\HandBrakeWPF"
- RMDir "$INSTDIR"
-
- DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
- DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
- SetAutoClose true
-SectionEnd
-
diff --git a/win/CS/HandBrakeWPF/Installer/MakeNightly.nsi.tmpl b/win/CS/HandBrakeWPF/Installer/MakeNightly.nsi.tmpl
new file mode 100644
index 000000000..07b9d6240
--- /dev/null
+++ b/win/CS/HandBrakeWPF/Installer/MakeNightly.nsi.tmpl
@@ -0,0 +1,326 @@
+/* Resources.Designer.cs $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
+
+; Script generated by the HM NIS Edit Script Wizard.
+
+; HM NIS Edit Wizard helper defines
+!define PRODUCT_NAME "Handbrake"
+!define PRODUCT_VERSION "$WCREV$ Nightly"
+!define PRODUCT_VERSION_NUMBER "svn$WCREV$"
+!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Handbrake.exe"
+!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
+!define PRODUCT_UNINST_ROOT_KEY "HKLM"
+
+;Required .NET framework
+!define MIN_FRA_MAJOR "4"
+!define MIN_FRA_MINOR "0"
+!define MIN_FRA_BUILD "*"
+
+SetCompressor lzma
+
+; MUI 1.67 compatible ------
+!include "MUI.nsh"
+
+; MUI Settings
+!define MUI_ABORTWARNING
+!define MUI_ICON "handbrakepineapple.ico"
+!define MUI_UNICON "handbrakepineapple.ico"
+
+; Welcome page
+!insertmacro MUI_PAGE_WELCOME
+; License page
+!insertmacro MUI_PAGE_LICENSE "doc\COPYING"
+; Directory page
+!insertmacro MUI_PAGE_DIRECTORY
+; Instfiles page
+!insertmacro MUI_PAGE_INSTFILES
+; Finish page
+;!define MUI_FINISHPAGE_RUN "$INSTDIR\Handbrake.exe"
+!insertmacro MUI_PAGE_FINISH
+
+; Uninstaller pages
+!insertmacro MUI_UNPAGE_INSTFILES
+
+; Language files
+!insertmacro MUI_LANGUAGE "English"
+
+; MUI end ------
+
+Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
+OutFile "HandBrake-${PRODUCT_VERSION_NUMBER}_i686-Win_GUI.exe"
+
+!include WordFunc.nsh
+!insertmacro VersionCompare
+!include LogicLib.nsh
+
+InstallDir "$PROGRAMFILES\Handbrake"
+InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
+ShowInstDetails show
+ShowUnInstDetails show
+
+Var InstallDotNET
+
+Function .onInit
+
+ ; Begin Only allow one version
+ System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'
+ Pop $R0
+
+ StrCmp $R0 0 +3
+ MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." /SD IDOK
+ Abort
+
+ ;Remove previous version
+ ReadRegStr $R0 HKLM \
+ "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}\" \
+ "UninstallString"
+ StrCmp $R0 "" done
+
+ MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
+ "${PRODUCT_NAME} is already installed. $\n$\nClick `OK` to remove the \
+ previous version or `Cancel` to continue." /SD IDOK \
+ IDOK uninst
+ goto done
+
+ ;Run the uninstaller
+ uninst:
+ IfSilent +3
+ Exec $INSTDIR\uninst.exe
+ goto done
+ Exec '"$INSTDIR\uninst.exe" /S'
+ done:
+FunctionEnd
+
+Section "Handbrake" SEC01
+ SetOutPath "$INSTDIR"
+ SetOverwrite ifnewer
+
+ ; Begin Check .NET version
+ StrCpy $InstallDotNET "No"
+ Call CheckFramework
+ StrCmp $0 "1" +3
+ StrCpy $InstallDotNET "Yes"
+ 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
+ Pop $0
+
+ ; Get .NET if required
+ ${If} $InstallDotNET == "Yes"
+ SetDetailsView hide
+ 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
+ Pop $1
+
+ ${If} $1 != "OK"
+ Delete "$INSTDIR\dotnetfx.exe"
+ Abort "Installation cancelled, ${PRODUCT_NAME} requires the .NET 4.0 Framework"
+ ${EndIf}
+
+ ExecWait "$INSTDIR\dotnetfx.exe"
+ Delete "$INSTDIR\dotnetfx.exe"
+
+ SetDetailsView show
+ ${EndIf}
+
+ ; Install Files
+ File "*.exe"
+ CreateDirectory "$SMPROGRAMS\Handbrake"
+ CreateShortCut "$SMPROGRAMS\Handbrake\Handbrake.lnk" "$INSTDIR\Handbrake.exe"
+ CreateShortCut "$DESKTOP\Handbrake.lnk" "$INSTDIR\Handbrake.exe"
+ File "*.dll"
+ File "*.config"
+ File "*.xml"
+ File "*.pdb"
+
+ ; Copy the standard doc set into the doc folder
+ SetOutPath "$INSTDIR\doc"
+ SetOverwrite ifnewer
+ File "doc\*.*"
+
+ ; Copy the standard fonts config set into the fonts folder
+ SetOutPath "$INSTDIR\fonts"
+ SetOverwrite ifnewer
+ File /r "fonts\*.*"
+SectionEnd
+
+Section -AdditionalIcons
+ CreateShortCut "$SMPROGRAMS\Handbrake\Uninstall.lnk" "$INSTDIR\uninst.exe"
+SectionEnd
+
+Section -Post
+ WriteUninstaller "$INSTDIR\uninst.exe"
+ WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Handbrake.exe"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Handbrake.exe"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
+SectionEnd
+
+
+Function un.onUninstSuccess
+ HideWindow
+ MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." /SD IDOK
+FunctionEnd
+
+Function un.onInit
+ 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
+ Abort
+FunctionEnd
+
+Section Uninstall
+ Delete "$INSTDIR\uninst.exe"
+
+ Delete "$INSTDIR\*.*"
+ Delete "$INSTDIR\doc\*.*"
+ Delete "$INSTDIR\fonts\*.*"
+ Delete "$INSTDIR\fonts\conf.d\*.*"
+ Delete "$INSTDIR\fonts\conf.avail\*.*"
+ RMDir "$INSTDIR\doc"
+ RMDIR "$INSTDIR\fonts\conf.d"
+ RMDIR "$INSTDIR\fonts\conf.avail"
+ RMDIR "$INSTDIR\fonts"
+ Delete "$SMPROGRAMS\Handbrake\Uninstall.lnk"
+ Delete "$DESKTOP\Handbrake.lnk"
+ Delete "$SMPROGRAMS\Handbrake\Handbrake.lnk"
+ RMDir "$SMPROGRAMS\Handbrake"
+ RMDir "$INSTDIR"
+
+ DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
+ DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
+ SetAutoClose true
+SectionEnd
+
+;Check for .NET framework
+Function CheckFrameWork
+
+ ;Save the variables in case something else is using them
+ Push $0
+ Push $1
+ Push $2
+ Push $3
+ Push $4
+ Push $R1
+ Push $R2
+ Push $R3
+ Push $R4
+ Push $R5
+ Push $R6
+ Push $R7
+ Push $R8
+
+ StrCpy $R5 "0"
+ StrCpy $R6 "0"
+ StrCpy $R7 "0"
+ StrCpy $R8 "0.0.0"
+ StrCpy $0 0
+
+ loop:
+
+ ;Get each sub key under "SOFTWARE\Microsoft\NET Framework Setup\NDP"
+ EnumRegKey $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP" $0
+ StrCmp $1 "" done ;jump to end if no more registry keys
+ IntOp $0 $0 + 1
+ StrCpy $2 $1 1 ;Cut off the first character
+ StrCpy $3 $1 "" 1 ;Remainder of string
+
+ ;Loop if first character is not a 'v'
+ StrCmpS $2 "v" start_parse loop
+
+ ;Parse the string
+ start_parse:
+ StrCpy $R1 ""
+ StrCpy $R2 ""
+ StrCpy $R3 ""
+ StrCpy $R4 $3
+
+ StrCpy $4 1
+
+ parse:
+ StrCmp $3 "" parse_done ;If string is empty, we are finished
+ StrCpy $2 $3 1 ;Cut off the first character
+ StrCpy $3 $3 "" 1 ;Remainder of string
+ StrCmp $2 "." is_dot not_dot ;Move to next part if it's a dot
+
+ is_dot:
+ IntOp $4 $4 + 1 ; Move to the next section
+ goto parse ;Carry on parsing
+
+ not_dot:
+ IntCmp $4 1 major_ver
+ IntCmp $4 2 minor_ver
+ IntCmp $4 3 build_ver
+ IntCmp $4 4 parse_done
+
+ major_ver:
+ StrCpy $R1 $R1$2
+ goto parse ;Carry on parsing
+
+ minor_ver:
+ StrCpy $R2 $R2$2
+ goto parse ;Carry on parsing
+
+ build_ver:
+ StrCpy $R3 $R3$2
+ goto parse ;Carry on parsing
+
+ parse_done:
+
+ IntCmp $R1 $R5 this_major_same loop this_major_more
+ this_major_more:
+ StrCpy $R5 $R1
+ StrCpy $R6 $R2
+ StrCpy $R7 $R3
+ StrCpy $R8 $R4
+
+ goto loop
+
+ this_major_same:
+ IntCmp $R2 $R6 this_minor_same loop this_minor_more
+ this_minor_more:
+ StrCpy $R6 $R2
+ StrCpy $R7 R3
+ StrCpy $R8 $R4
+ goto loop
+
+ this_minor_same:
+ IntCmp $R3 $R7 loop loop this_build_more
+ this_build_more:
+ StrCpy $R7 $R3
+ StrCpy $R8 $R4
+ goto loop
+
+ done:
+
+ ;Have we got the framework we need?
+ IntCmp $R5 ${MIN_FRA_MAJOR} max_major_same fail OK
+ max_major_same:
+ IntCmp $R6 ${MIN_FRA_MINOR} max_minor_same fail OK
+ max_minor_same:
+ IntCmp $R7 ${MIN_FRA_BUILD} OK fail OK
+
+ ;Version on machine is greater than what we need
+ OK:
+ StrCpy $0 "1"
+ goto end
+
+ fail:
+ StrCmp $R8 "0.0.0" end
+
+
+ end:
+
+ ;Pop the variables we pushed earlier
+ Pop $R8
+ Pop $R7
+ Pop $R6
+ Pop $R5
+ Pop $R4
+ Pop $R3
+ Pop $R2
+ Pop $R1
+ Pop $4
+ Pop $3
+ Pop $2
+ Pop $1
+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
index 000000000..15c35d248
--- /dev/null
+++ b/win/CS/HandBrakeWPF/Installer/MakeNightly64.nsi.tmpl
@@ -0,0 +1,326 @@
+/* Resources.Designer.cs $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
+
+; Script generated by the HM NIS Edit Script Wizard.
+
+; HM NIS Edit Wizard helper defines
+!define PRODUCT_NAME "Handbrake"
+!define PRODUCT_VERSION "$WCREV$ Nightly"
+!define PRODUCT_VERSION_NUMBER "svn$WCREV$"
+!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Handbrake.exe"
+!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
+!define PRODUCT_UNINST_ROOT_KEY "HKLM"
+
+;Required .NET framework
+!define MIN_FRA_MAJOR "4"
+!define MIN_FRA_MINOR "0"
+!define MIN_FRA_BUILD "*"
+
+SetCompressor lzma
+
+; MUI 1.67 compatible ------
+!include "MUI.nsh"
+
+; MUI Settings
+!define MUI_ABORTWARNING
+!define MUI_ICON "handbrakepineapple.ico"
+!define MUI_UNICON "handbrakepineapple.ico"
+
+; Welcome page
+!insertmacro MUI_PAGE_WELCOME
+; License page
+!insertmacro MUI_PAGE_LICENSE "doc\COPYING"
+; Directory page
+!insertmacro MUI_PAGE_DIRECTORY
+; Instfiles page
+!insertmacro MUI_PAGE_INSTFILES
+; Finish page
+;!define MUI_FINISHPAGE_RUN "$INSTDIR\Handbrake.exe"
+!insertmacro MUI_PAGE_FINISH
+
+; Uninstaller pages
+!insertmacro MUI_UNPAGE_INSTFILES
+
+; Language files
+!insertmacro MUI_LANGUAGE "English"
+
+; MUI end ------
+
+Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
+OutFile "HandBrake-${PRODUCT_VERSION_NUMBER}_x86_64-Win_GUI.exe"
+
+!include WordFunc.nsh
+!insertmacro VersionCompare
+!include LogicLib.nsh
+
+InstallDir "$PROGRAMFILES64\Handbrake"
+InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
+ShowInstDetails show
+ShowUnInstDetails show
+
+Var InstallDotNET
+
+Function .onInit
+
+ ; Begin Only allow one version
+ System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'
+ Pop $R0
+
+ StrCmp $R0 0 +3
+ MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." /SD IDOK
+ Abort
+
+ ;Remove previous version
+ ReadRegStr $R0 HKLM \
+ "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}\" \
+ "UninstallString"
+ StrCmp $R0 "" done
+
+ MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
+ "${PRODUCT_NAME} is already installed. $\n$\nClick `OK` to remove the \
+ previous version or `Cancel` to continue." /SD IDOK \
+ IDOK uninst
+ goto done
+
+ ;Run the uninstaller
+ uninst:
+ IfSilent +3
+ Exec $INSTDIR\uninst.exe
+ goto done
+ Exec '"$INSTDIR\uninst.exe" /S'
+ done:
+FunctionEnd
+
+Section "Handbrake" SEC01
+ SetOutPath "$INSTDIR"
+ SetOverwrite ifnewer
+
+ ; Begin Check .NET version
+ StrCpy $InstallDotNET "No"
+ Call CheckFramework
+ StrCmp $0 "1" +3
+ StrCpy $InstallDotNET "Yes"
+ 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
+ Pop $0
+
+ ; Get .NET if required
+ ${If} $InstallDotNET == "Yes"
+ SetDetailsView hide
+ 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
+ Pop $1
+
+ ${If} $1 != "OK"
+ Delete "$INSTDIR\dotnetfx.exe"
+ Abort "Installation cancelled, ${PRODUCT_NAME} requires the .NET 4.0 Framework"
+ ${EndIf}
+
+ ExecWait "$INSTDIR\dotnetfx.exe"
+ Delete "$INSTDIR\dotnetfx.exe"
+
+ SetDetailsView show
+ ${EndIf}
+
+ ; Install Files
+ File "*.exe"
+ CreateDirectory "$SMPROGRAMS\Handbrake"
+ CreateShortCut "$SMPROGRAMS\Handbrake\Handbrake.lnk" "$INSTDIR\Handbrake.exe"
+ CreateShortCut "$DESKTOP\Handbrake.lnk" "$INSTDIR\Handbrake.exe"
+ File "*.dll"
+ File "*.config"
+ File "*.xml"
+ File "*.pdb"
+
+ ; Copy the standard doc set into the doc folder
+ SetOutPath "$INSTDIR\doc"
+ SetOverwrite ifnewer
+ File "doc\*.*"
+
+ ; Copy the standard fonts config set into the fonts folder
+ SetOutPath "$INSTDIR\fonts"
+ SetOverwrite ifnewer
+ File /r "fonts\*.*"
+SectionEnd
+
+Section -AdditionalIcons
+ CreateShortCut "$SMPROGRAMS\Handbrake\Uninstall.lnk" "$INSTDIR\uninst.exe"
+SectionEnd
+
+Section -Post
+ WriteUninstaller "$INSTDIR\uninst.exe"
+ WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Handbrake.exe"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Handbrake.exe"
+ WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
+SectionEnd
+
+
+Function un.onUninstSuccess
+ HideWindow
+ MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." /SD IDOK
+FunctionEnd
+
+Function un.onInit
+ 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
+ Abort
+FunctionEnd
+
+Section Uninstall
+ Delete "$INSTDIR\uninst.exe"
+
+ Delete "$INSTDIR\*.*"
+ Delete "$INSTDIR\doc\*.*"
+ Delete "$INSTDIR\fonts\*.*"
+ Delete "$INSTDIR\fonts\conf.d\*.*"
+ Delete "$INSTDIR\fonts\conf.avail\*.*"
+ RMDir "$INSTDIR\doc"
+ RMDIR "$INSTDIR\fonts\conf.d"
+ RMDIR "$INSTDIR\fonts\conf.avail"
+ RMDIR "$INSTDIR\fonts"
+ Delete "$SMPROGRAMS\Handbrake\Uninstall.lnk"
+ Delete "$DESKTOP\Handbrake.lnk"
+ Delete "$SMPROGRAMS\Handbrake\Handbrake.lnk"
+ RMDir "$SMPROGRAMS\Handbrake"
+ RMDir "$INSTDIR"
+
+ DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
+ DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
+ SetAutoClose true
+SectionEnd
+
+;Check for .NET framework
+Function CheckFrameWork
+
+ ;Save the variables in case something else is using them
+ Push $0
+ Push $1
+ Push $2
+ Push $3
+ Push $4
+ Push $R1
+ Push $R2
+ Push $R3
+ Push $R4
+ Push $R5
+ Push $R6
+ Push $R7
+ Push $R8
+
+ StrCpy $R5 "0"
+ StrCpy $R6 "0"
+ StrCpy $R7 "0"
+ StrCpy $R8 "0.0.0"
+ StrCpy $0 0
+
+ loop:
+
+ ;Get each sub key under "SOFTWARE\Microsoft\NET Framework Setup\NDP"
+ EnumRegKey $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP" $0
+ StrCmp $1 "" done ;jump to end if no more registry keys
+ IntOp $0 $0 + 1
+ StrCpy $2 $1 1 ;Cut off the first character
+ StrCpy $3 $1 "" 1 ;Remainder of string
+
+ ;Loop if first character is not a 'v'
+ StrCmpS $2 "v" start_parse loop
+
+ ;Parse the string
+ start_parse:
+ StrCpy $R1 ""
+ StrCpy $R2 ""
+ StrCpy $R3 ""
+ StrCpy $R4 $3
+
+ StrCpy $4 1
+
+ parse:
+ StrCmp $3 "" parse_done ;If string is empty, we are finished
+ StrCpy $2 $3 1 ;Cut off the first character
+ StrCpy $3 $3 "" 1 ;Remainder of string
+ StrCmp $2 "." is_dot not_dot ;Move to next part if it's a dot
+
+ is_dot:
+ IntOp $4 $4 + 1 ; Move to the next section
+ goto parse ;Carry on parsing
+
+ not_dot:
+ IntCmp $4 1 major_ver
+ IntCmp $4 2 minor_ver
+ IntCmp $4 3 build_ver
+ IntCmp $4 4 parse_done
+
+ major_ver:
+ StrCpy $R1 $R1$2
+ goto parse ;Carry on parsing
+
+ minor_ver:
+ StrCpy $R2 $R2$2
+ goto parse ;Carry on parsing
+
+ build_ver:
+ StrCpy $R3 $R3$2
+ goto parse ;Carry on parsing
+
+ parse_done:
+
+ IntCmp $R1 $R5 this_major_same loop this_major_more
+ this_major_more:
+ StrCpy $R5 $R1
+ StrCpy $R6 $R2
+ StrCpy $R7 $R3
+ StrCpy $R8 $R4
+
+ goto loop
+
+ this_major_same:
+ IntCmp $R2 $R6 this_minor_same loop this_minor_more
+ this_minor_more:
+ StrCpy $R6 $R2
+ StrCpy $R7 R3
+ StrCpy $R8 $R4
+ goto loop
+
+ this_minor_same:
+ IntCmp $R3 $R7 loop loop this_build_more
+ this_build_more:
+ StrCpy $R7 $R3
+ StrCpy $R8 $R4
+ goto loop
+
+ done:
+
+ ;Have we got the framework we need?
+ IntCmp $R5 ${MIN_FRA_MAJOR} max_major_same fail OK
+ max_major_same:
+ IntCmp $R6 ${MIN_FRA_MINOR} max_minor_same fail OK
+ max_minor_same:
+ IntCmp $R7 ${MIN_FRA_BUILD} OK fail OK
+
+ ;Version on machine is greater than what we need
+ OK:
+ StrCpy $0 "1"
+ goto end
+
+ fail:
+ StrCmp $R8 "0.0.0" end
+
+
+ end:
+
+ ;Pop the variables we pushed earlier
+ Pop $R8
+ Pop $R7
+ Pop $R6
+ Pop $R5
+ Pop $R4
+ Pop $R3
+ Pop $R2
+ Pop $R1
+ Pop $4
+ Pop $3
+ Pop $2
+ Pop $1
+FunctionEnd \ No newline at end of file
diff --git a/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs b/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs
index 72f9c8830..4903de063 100644
--- a/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs
+++ b/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs
@@ -1,4 +1,9 @@
-using System.Reflection;
+/* AssemblyInfo.cs $
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr>.
+ It may be used under the terms of the GNU General Public License. */
+
+using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@@ -51,5 +56,5 @@ using System.Windows;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("0.9.5.0")]
-[assembly: AssemblyFileVersion("0.9.5.0")]
+[assembly: AssemblyVersion("0.9.6.4532")]
+[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
index 252bae71b..000000000
--- a/win/CS/HandBrakeWPF/README BEFORE WRITING CODE.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-This is the port of the current WinForms GUI over to WPF.
-It is an incomplete work-in-progress and not currently in a usable state!
-
-Goals:
-
-- Move as much of the busness logic into the ApplicaitonServices library so it's reusable.
-- 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
diff --git a/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs
index 54622b392..731e7d384 100644
--- a/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs
+++ b/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs
@@ -158,7 +158,7 @@ namespace HandBrakeWPF.ViewModels
this.queueProcessor = IoC.Get<IQueueProcessor>(); // TODO Instance ID!
// Setup Properties
- this.WindowTitle = "HandBrake WPF Test Application";
+ this.WindowTitle = "HandBrake";
this.CurrentTask = new EncodeTask();
this.ScannedSource = new Source();
diff --git a/win/CS/build.xml b/win/CS/build.xml
index bd77cb5d9..4fa72c4c1 100644
--- a/win/CS/build.xml
+++ b/win/CS/build.xml
@@ -20,7 +20,6 @@
<ProjectsToBuild Include="HandBrake.Interop\HandBrakeInterop\*proj" Exclude="$(MSBuildProjectFile)"/>
<ProjectsToBuild Include="HandBrake.ApplicationServices\*proj" Exclude="$(MSBuildProjectFile)"/>
<ProjectsToBuild Include="HandBrakeCS.*proj" Exclude="$(MSBuildProjectFile)"/>
- <ProjectsToBuild Include="HandBrakeWPF\HandBrakeWPF.*proj" Exclude="$(MSBuildProjectFile)"/>
</ItemGroup>
<!-- Dependencies -->
@@ -32,9 +31,6 @@
<InstallDependsOn>BuildRelease;CreateReleasePostBuildEvent</InstallDependsOn>
</PropertyGroup>
- <PropertyGroup>
- <AlphaDependsOn>AlphaPreBuild;BuildRelease;CreateAlphaPostBuildEvent</AlphaDependsOn>
- </PropertyGroup>
<!-- Builds /t: -->
<Target Name="NightlyBuild" DependsOnTargets="$(NightlyDependsOn)"/>
@@ -51,11 +47,6 @@
</Target>
<!-- Pre Build Events -->
- <Target Name="AlphaPreBuild">
- <Exec Command="subwcrev.exe $(ProjectDir). $(ProjectDir)HandBrakeWPF\Properties\AssemblyInfo.cs.tmpl $(ProjectDir)HandBrakeWPF\Properties\AssemblyInfo.cs" />
- <Exec Command="subwcrev.exe $(ProjectDir). $(ProjectDir)HandBrakeWPF\Installer\MakeAlpha.nsi.tmpl $(ProjectDir)HandBrakeWPF\Installer\MakeAlpha.nsi" />
- </Target>
-
<!-- Post Build Events -->
<Target Name="NightlyPostBuildEvent">
<Exec Command="copy $(ProjectDir)Installer\MakeNightly.nsi $(ProjectDir)bin\$(Platform)\Release /Y" Condition="$(Platform) == 'x86'" />
@@ -79,11 +70,4 @@
<Exec Command="makensis $(ProjectDir)bin\$(Platform)\Release\Installer64.nsi" Condition="$(Platform) == 'x64'" />
</Target>
- <Target Name="CreateAlphaPostBuildEvent">
- <Exec Command="copy $(ProjectDir)HandBrakeWPF\Installer\MakeAlpha.nsi $(ProjectDir)HandBrakeWPF\bin\Release /Y" />
- <Exec Command="copy $(ProjectDir)handbrakepineapple.ico $(ProjectDir)HandBrakeWPF\bin\Release /Y" />
- <Exec Command="xcopy $(ProjectDir)doc $(ProjectDir)HandBrakeWPF\bin\Release\doc /I /Y" />
- <Exec Command="makensis $(ProjectDir)HandBrakeWPF\bin\Release\MakeAlpha.nsi"/>
- </Target>
-
</Project> \ No newline at end of file
diff --git a/win/CS/build2.xml b/win/CS/build2.xml
new file mode 100644
index 000000000..17e2f498a
--- /dev/null
+++ b/win/CS/build2.xml
@@ -0,0 +1,76 @@
+<!--
+ build.xml
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr>.
+ It may be used under the terms of the GNU General Public License
+
+ HandBrake Build Scipt for usage with Jenkins.
+ Usage:
+ msbuild build2.xml /p:Platform=x86 /t:Nightly
+ msbuild build2.xml /p:Platform=x86 /t:Release
+ Reuqires: HandBrakeCli.exe to be in the release folder.
+
+-->
+<Project DefaultTargets="NightlyBuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <!-- Setup -->
+ <PropertyGroup>
+ <Configuration>Release</Configuration>
+ </PropertyGroup>
+
+ <!-- Build all the main cproj files.-->
+ <ItemGroup>
+ <ProjectsToBuild Include="HandBrake.Interop\HandBrakeInterop\*proj" Exclude="$(MSBuildProjectFile)"/>
+ <ProjectsToBuild Include="HandBrake.ApplicationServices\*proj" Exclude="$(MSBuildProjectFile)"/>
+ <ProjectsToBuild Include="HandBrakeWPF\HandBrakeWPF.*proj" Exclude="$(MSBuildProjectFile)"/>
+ </ItemGroup>
+
+ <!-- Dependencies -->
+ <PropertyGroup>
+ <NightlyDependsOn>PreBuild;BuildRelease;NightlyPostBuild</NightlyDependsOn>
+ </PropertyGroup>
+
+ <PropertyGroup>
+ <InstallDependsOn>PreBuild;BuildRelease;ReleasePostBuild</InstallDependsOn>
+ </PropertyGroup>
+
+ <!-- Builds /t: -->
+ <Target Name="Nightly" DependsOnTargets="$(NightlyDependsOn)"/>
+ <Target Name="Release" DependsOnTargets="$(InstallDependsOn)"/>
+
+ <!-- Build All Components (Forms, WPF, ApplicationServices, Interop -->
+ <Target Name="BuildRelease">
+ <MSBuild Projects ="@(ProjectsToBuild)"
+ ContinueOnError ="false"
+ Properties="Configuration=$(Configuration)" >
+ <Output ItemName="OutputFiles" TaskParameter="TargetOutputs"/>
+ </MSBuild>
+ </Target>
+
+ <!-- Pre Build Events -->
+ <Target Name="PreBuild">
+ <Exec Command="subwcrev.exe $(ProjectDir). $(ProjectDir)HandBrakeWPF\Properties\AssemblyInfo.cs.tmpl $(ProjectDir)HandBrakeWPF\Properties\AssemblyInfo.cs" />
+ <Exec Command="subwcrev.exe $(ProjectDir). $(ProjectDir)HandBrakeWPF\Installer\MakeNightly.nsi.tmpl $(ProjectDir)HandBrakeWPF\Installer\MakeNightly.nsi" />
+ <Exec Command="subwcrev.exe $(ProjectDir). $(ProjectDir)HandBrakeWPF\Installer\MakeNightly64.nsi.tmpl $(ProjectDir)HandBrakeWPF\Installer\MakeNightly64.nsi" />
+ </Target>
+
+ <!-- Post Build Events -->
+ <Target Name="NightlyPostBuild">
+ <Exec Command="copy $(ProjectDir)HandBrakeWPF\Installer\MakeNightly.nsi $(ProjectDir)HandBrakeWPF\bin\Release /Y" Condition="$(Platform) == 'x86'" />
+ <Exec Command="copy $(ProjectDir)HandBrakeWPF\Installer\MakeNightly64.nsi $(ProjectDir)HandBrakeWPF\bin\Release /Y" Condition="$(Platform) == 'x64'" />
+ <Exec Command="copy $(ProjectDir)handbrakepineapple.ico $(ProjectDir)HandBrakeWPF\bin\Release /Y" />
+ <Exec Command="xcopy $(ProjectDir)doc $(ProjectDir)HandBrakeWPF\bin\Release\doc /I /Y" />
+ <Exec Command="makensis $(ProjectDir)HandBrakeWPF\bin\Release\MakeNightly.nsi" Condition="$(Platform) == 'x86'" />
+ <Exec Command="makensis $(ProjectDir)HandBrakeWPF\bin\Release\MakeNightly64.nsi" Condition="$(Platform) == 'x64'" />
+ </Target>
+
+ <Target Name="ReleasePostBuild">
+ <Exec Command="copy $(ProjectDir)HandBrakeWPF\Installer\Installer.nsi $(ProjectDir)HandBrakeWPF\bin\Release /Y" Condition="$(Platform) == 'x86'" />
+ <Exec Command="copy $(ProjectDir)HandBrakeWPF\Installer\Installer64.nsi $(ProjectDir)HandBrakeWPF\bin\Release /Y" Condition="$(Platform) == 'x64'" />
+ <Exec Command="copy $(ProjectDir)handbrakepineapple.ico $(ProjectDir)HandBrakeWPF\bin\Release /Y" />
+ <Exec Command="xcopy $(ProjectDir)doc $(ProjectDir)HandBrakeWPF\bin\Release\doc /I /Y" />
+ <Exec Command="makensis $(ProjectDir)HandBrakeWPF\bin\Release\Installer.nsi" Condition="$(Platform) == 'x86'" />
+ <Exec Command="makensis $(ProjectDir)HandBrakeWPF\bin\Release\Installer64.nsi" Condition="$(Platform) == 'x64'" />
+ </Target>
+
+</Project> \ No newline at end of file