diff options
author | John MacFarlane <jgm@berkeley.edu> | 2015-07-09 22:02:30 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2015-07-09 22:02:30 -0700 |
commit | cb2c81b45b0d9f81867fd21ab670c0323066dded (patch) | |
tree | 2d9d6cde948fbc907cbc28ad14154ca04373b3e4 /windows | |
parent | b587acb2247c5af49142542dec2a509d8aa6862f (diff) | |
download | pandoc-cb2c81b45b0d9f81867fd21ab670c0323066dded.tar.gz |
Updated pandoc.wxs.
From @nkalvi with a few modifications (custom variables).
- when per-machine installation is chosen, the system path
is updated instead of the user's
- an appropriate default is used for per-machine installation directory.
Diffstat (limited to 'windows')
-rw-r--r-- | windows/pandoc.wxs | 177 |
1 files changed, 113 insertions, 64 deletions
diff --git a/windows/pandoc.wxs b/windows/pandoc.wxs index 90c0069a5..c1465ffcf 100644 --- a/windows/pandoc.wxs +++ b/windows/pandoc.wxs @@ -1,5 +1,11 @@ <?xml version="1.0"?> <?define UpgradeCode = "A68E8EF6-ABB1-4F22-A3C5-68DFDF0AB562" ?> +<?if $(sys.BUILDARCH)=x64?> + <?define ProgFilesFolder="ProgramFiles64Folder"?> +<?else?> + <?define ProgFilesFolder="ProgramFilesFolder"?> +<?endif?> + <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Product Id="*" UpgradeCode="$(var.UpgradeCode)" Name="Pandoc $(var.VERSION)" @@ -23,47 +29,64 @@ <Property Id="DISABLEADVTSHORTCUTS" Value="1" /> - <Directory Id="TARGETDIR" Name="SourceDir"> - <Directory Id="ProgramFilesFolder"> + <Directory Id="$(var.ProgFilesFolder)"> <Directory Id="APPLICATIONFOLDER" Name="Pandoc"> <Component Id="MainExecutable" - Guid="ECD35082-4C28-49E1-977E-B90FC7C400C7"> - <RegistryValue Root="HKMU" Key="Software\John MacFarlane\Pandoc" - Name="Version" Type="string" Value="[ProductVersion]" - KeyPath="yes"/> + Guid="ECD35082-4C28-49E1-977E-B90FC7C400C7"> + <RegistryValue Root="HKMU" + Key="Software\John MacFarlane\Pandoc" + Name="Version" Type="string" Value="[ProductVersion]" + KeyPath="yes"/> <RemoveFolder Id="APPLICATIONFOLDER" On="uninstall"/> <File Id="pandocEXE" Name="pandoc.exe" - Source="..\.cabal-sandbox\bin\pandoc.exe" /> + Source="..\.cabal-sandbox\bin\pandoc.exe" /> <File Id="pandocCOPYRIGHT" Name="COPYRIGHT.txt" - Source="..\COPYRIGHT.txt" /> + Source="..\COPYRIGHT.txt" /> <File Id="pandocCOPYING" Name="COPYING.rtf" - Source="..\COPYING.rtf" /> - <Environment Id='UpdatePath' Name='PATH' Action='set' - Permanent='no' System='no' Part='last' - Value='[APPLICATIONFOLDER]' /> + Source="..\COPYING.rtf" /> </Component> <Component Id="CitationSupport" - Guid="0A214839-2E69-4026-8DBB-0F0A9DB75C12"> - <RegistryValue Root="HKMU" Key="Software\John MacFarlane\Pandoc" - Name="Version" Type="string" Value="[ProductVersion]" - KeyPath="yes"/> + Guid="0A214839-2E69-4026-8DBB-0F0A9DB75C12"> + <RegistryValue Root="HKMU" + Key="Software\John MacFarlane\Pandoc" + Name="Version" Type="string" Value="[ProductVersion]" + KeyPath="yes"/> <File Id="pandoc_citeprocEXE" Name="pandoc-citeproc.exe" - Source="..\.cabal-sandbox\bin\pandoc-citeproc.exe" /> + Source="..\.cabal-sandbox\bin\pandoc-citeproc.exe" /> </Component> - <Component Id="Documentation" - Guid="A8D54A76-1A3D-4647-8327-81B69D39D8A3"> + Guid="A8D54A76-1A3D-4647-8327-81B69D39D8A3"> <File Id="pandocREADME" Name="Pandoc User's Guide.html" - Source="..\README.html" KeyPath="yes"> + Source="..\README.html" KeyPath="yes"> <Shortcut Id="ApplicationStartMenuShortcut" Directory="ApplicationProgramsFolder" - Name="Pandoc User’s Guide" Advertise="yes" /> + Name="Pandoc User’s Guide" Advertise="yes" /> </File> </Component> + + + <Component Id="UpdateUserPath" + Guid="7ECEAD05-CA5C-4147-82CB-F7CADABAC7F3" + KeyPath="yes"> + <Condition>ALLUSERS = "" OR ALLUSERS = 2</Condition> + <Environment Id='SetUserPath' Name='PATH' Action='set' + Permanent='no' System='no' Part='last' + Value='[APPLICATIONFOLDER]' /> + </Component> + + <Component Id="UpdateSystemPath" + Guid="F8AC4135-C0AE-48C7-BAC5-311DAC97CFD8" + KeyPath="yes"> + <Condition>ALLUSERS = 1</Condition> + <Environment Id='SetSystemPath' Name='PATH' Action='set' + Permanent='no' System='yes' Part='last' + Value='[APPLICATIONFOLDER]' /> + </Component> + </Directory> </Directory> @@ -74,8 +97,8 @@ <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/> <RegistryValue Root="HKMU" Key="Software\John MacFarlane\Pandoc" - Name="ShortcutInstalled" Type="integer" Value="1" - KeyPath="yes"/> + Name="ShortcutInstalled" Type="integer" Value="1" + KeyPath="yes"/> </Component> </Directory> </Directory> @@ -85,10 +108,13 @@ <Feature Id="Complete" Level="1" Title="Pandoc $(var.VERSION)" Description="Complete package" Display="expand" ConfigurableDirectory="APPLICATIONFOLDER"> - <Feature Id="MainProgram" Title="Program" Description="The main - executable." + <Feature Id="MainProgram" + Title="Program" + Description="The main executable." Level="1"> <ComponentRef Id="MainExecutable" /> + <ComponentRef Id="UpdateUserPath" /> + <ComponentRef Id="UpdateSystemPath" /> </Feature> <Feature Id="Manual" Title="Manual"> <ComponentRef Id="Documentation" /> @@ -102,67 +128,90 @@ <SetProperty Id="ARPINSTALLLOCATION" Value="[APPLICATIONFOLDER]" - After="CostFinalize" /> + After="CostFinalize" /> <CustomAction Id="SetExitDialogOptText" - Property="WIXUI_EXITDIALOGOPTIONALTEXT" - Value="[ProductName] was installed in [APPLICATIONFOLDER]. You - may need to restart Cmd/Powershell windows before using it." - /> + Property="WIXUI_EXITDIALOGOPTIONALTEXT" + Value="[ProductName] was installed in [APPLICATIONFOLDER]. You may need to restart Cmd/Powershell windows before using it." /> + + <CustomAction Id="CustomWixSetPerUserFolder" + Property="WixPerUserFolder" + Value="[LocalAppDataFolder][ApplicationFolderName]" + Execute="immediate" /> - <CustomAction Id="CustomWixSetPerUserFolder" Property="APPLICATIONFOLDER" Value="[LocalAppDataFolder][ApplicationFolderName]" Execute="immediate" /> <InstallExecuteSequence> - <Custom Action="CustomWixSetPerUserFolder" After="WixSetPerUserFolder"> - ACTION="INSTALL" AND (ALLUSERS="" OR (ALLUSERS=2 AND (NOT Privileged))) - </Custom> + <Custom Action="CustomWixSetPerUserFolder" After="WixSetDefaultPerUserFolder"> + ACTION="INSTALL" AND (ALLUSERS="" OR (ALLUSERS=2 AND (NOT Privileged))) + </Custom> </InstallExecuteSequence> <InstallUISequence> - <Custom Action="SetExitDialogOptText" Before="ExecuteAction"> - NOT Installed - </Custom> - <Custom Action="CustomWixSetPerUserFolder" After="WixSetPerUserFolder"> - ACTION="INSTALL" AND (ALLUSERS="" OR (ALLUSERS=2 AND (NOT Privileged))) - </Custom> + <Custom Action="SetExitDialogOptText" Before="ExecuteAction"> + NOT Installed + </Custom> + <Custom Action="CustomWixSetPerUserFolder" After="WixSetDefaultPerUserFolder"> + ACTION="INSTALL" AND (ALLUSERS="" OR (ALLUSERS=2 AND (NOT Privileged))) + </Custom> </InstallUISequence> <CustomActionRef Id="WixBroadcastSettingChange" /> <CustomActionRef Id="WixBroadcastEnvironmentChange" /> - - <Property Id="ApplicationFolderName" Value="Pandoc" /> <Property Id="WixAppFolder" Value="WixPerUserFolder" /> <Property Id="ALLUSERS" Value="2" Secure="yes" /> - <Property Id='MSIINSTALLPERUSER' Value='1' /> + <Property Id="MSIINSTALLPERUSER" Value="1" /> <WixVariable Id="WixUILicenseRtf" Value="..\COPYING.rtf" /> <UI Id="MyWixUI_Advanced"> - <UIRef Id="WixUI_Advanced" /> - <UIRef Id="WixUI_ErrorProgressText" /> - - <Publish Dialog="InstallScopeDlg" Control="Next" - Event="NewDialog" Value="VerifyReadyDlg" - Order="6">WixAppFolder = - "WixPerUserFolder"</Publish> - <Publish Dialog="InstallDirDlg" Control="Next" - Event="NewDialog" Value="VerifyReadyDlg" - Order="4">WIXUI_DONTVALIDATEPATH OR - WIXUI_INSTALLDIR_VALID="1"</Publish> - - <Publish Dialog="VerifyReadyDlg" Control="Back" - Event="NewDialog" Value="InstallScopeDlg" - Order="11">WixAppFolder = - "WixPerUserFolder"</Publish> - <Publish Dialog="VerifyReadyDlg" Control="Back" - Event="NewDialog" Value="InstallDirDlg" - Order="12">WixAppFolder = - "WixPerMachineFolder"</Publish> + <UIRef Id="WixUI_Advanced" /> + <UIRef Id="WixUI_ErrorProgressText" /> + + <Publish Dialog="InstallScopeDlg" Control="Next" + Event="NewDialog" Value="VerifyReadyDlg" + Order="6">WixAppFolder = "WixPerUserFolder"</Publish> + + <Publish Dialog="InstallScopeDlg" Control="Next" + Property="APPLICATIONFOLDER" + Value="[$(var.ProgFilesFolder)][ApplicationFolderName]" + Order="7">WixAppFolder = "WixPerMachineFolder"</Publish> + + <Publish Dialog="InstallScopeDlg" Control="Next" + Property="APPLICATIONFOLDER" Value="[LocalAppDataFolder][ApplicationFolderName]" + Order="8">WixAppFolder = "WixPerUserFolder"</Publish> + + <Publish Dialog="InstallScopeDlg" Control="Next" + Property="MSIINSTALLPERUSER" Value="{}" + Order="18">WixAppFolder = "WixPerMachineFolder" AND ALLUSERS = 1</Publish> + <Publish Dialog="InstallScopeDlg" Control="Next" + Property="MSIINSTALLPERUSER" Value="1" + Order="19">WixAppFolder = "WixPerUserFolder" AND ALLUSERS = 2</Publish> + <Publish Dialog="InstallScopeDlg" Control="Next" + Property="ALLUSERS" Value="2" + Order="20">WixAppFolder = "WixPerUserFolder"</Publish> + + + <Publish Dialog="InstallDirDlg" Control="Next" + Event="NewDialog" Value="VerifyReadyDlg" + Order="4"> + WIXUI_DONTVALIDATEPATH OR + WIXUI_INSTALLDIR_VALID="1" + </Publish> + + <Publish Dialog="VerifyReadyDlg" Control="Back" + Event="NewDialog" Value="InstallScopeDlg" + Order="11"> + WixAppFolder = "WixPerUserFolder" + </Publish> + <Publish Dialog="VerifyReadyDlg" Control="Back" + Event="NewDialog" Value="InstallDirDlg" + Order="12"> + WixAppFolder = "WixPerMachineFolder" + </Publish> </UI> - </Product> </Wix> |