summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2015-07-09 22:02:30 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2015-07-09 22:02:30 -0700
commitcb2c81b45b0d9f81867fd21ab670c0323066dded (patch)
tree2d9d6cde948fbc907cbc28ad14154ca04373b3e4
parentb587acb2247c5af49142542dec2a509d8aa6862f (diff)
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.
-rw-r--r--windows/pandoc.wxs177
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>