aboutsummaryrefslogtreecommitdiff
path: root/windows
diff options
context:
space:
mode:
Diffstat (limited to 'windows')
-rw-r--r--windows/AdvancedWelcomeEulaDlg_Custom.wxs90
-rw-r--r--windows/Pandoc-en-us.wxl14
-rw-r--r--windows/WixUI_Advanced_Custom.wxs142
-rw-r--r--windows/make-windows-installer.bat29
-rw-r--r--windows/pandoc.wxs188
5 files changed, 463 insertions, 0 deletions
diff --git a/windows/AdvancedWelcomeEulaDlg_Custom.wxs b/windows/AdvancedWelcomeEulaDlg_Custom.wxs
new file mode 100644
index 000000000..61e6d8e00
--- /dev/null
+++ b/windows/AdvancedWelcomeEulaDlg_Custom.wxs
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ <copyright file="AdvancedWelcomeEulaDlg.wxs" company="Outercurve Foundation">
+ Copyright (c) 2004, Outercurve Foundation.
+ This software is released under Microsoft Reciprocal License (MS-RL).
+ The license and further copyright text can be found in the file
+ LICENSE.TXT at the root directory of the distribution.
+ </copyright>
+-->
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <Fragment>
+ <UI>
+ <Dialog Id="AdvancedWelcomeEulaDlg_Custom" Width="370" Height="270" Title="!(loc.AdvancedWelcomeEulaDlg_Title)">
+
+ <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.AdvancedWelcomeEulaDlgBannerBitmap)" />
+ <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
+ <Control Id="Title" Type="Text" X="20" Y="10" Width="300" Height="24" Transparent="yes" NoPrefix="yes" Text="!(loc.AdvancedWelcomeEulaDlgTitle)" />
+
+ <Control Id="LicenseAcceptedCheckBox" Type="CheckBox" X="20" Y="140" Width="226" Height="19" CheckBoxValue="1" Property="LicenseAccepted" Text="!(loc.WelcomeEulaDlgLicenseAcceptedCheckBox)" />
+
+ <Control Id="ScopeGroupBox" Type="GroupBox" X="20" Y="155" Height="70" Width="330" />
+
+ <Control Id="AllUsersCheckBox" Type="CheckBox" X="88" Y="200" Width="226" Height="18" CheckBoxValue="1" Property="ALLUSERS" Text="!(loc.InstallScopeDlgPerMachine)">
+ <Condition Action="enable">LicenseAccepted AND (WixUISupportPerUser = 1)</Condition>
+ <Condition Action="disable">(NOT LicenseAccepted) OR (WixUISupportPerUser = 0)</Condition>
+ </Control>
+
+ <Control Id="PerUserDescription" Type="Text" X="30" Y="167" Width="300" Height="36" NoPrefix="yes" Text="!(loc.InstallScopeDlgPerUserDescription)">
+ <Condition Action="hide">ALLUSERS</Condition>
+ <Condition Action="show">NOT (ALLUSERS = 1)</Condition>
+ <Condition Action="disable">NOT LicenseAccepted</Condition>
+ <Condition Action="enable">LicenseAccepted</Condition>
+ </Control>
+
+ <Control Id="PerMachineDescription" Type="Text" X="30" Y="167" Width="300" Height="36" Hidden="yes" NoPrefix="yes" Text="!(loc.InstallScopeDlgPerMachineDescription)">
+ <Condition Action="hide">NOT (ALLUSERS = 1)</Condition>
+ <Condition Action="show">ALLUSERS = 1</Condition>
+ <Condition Action="disable">NOT LicenseAccepted</Condition>
+ <Condition Action="enable">LicenseAccepted</Condition>
+ </Control>
+
+ <Control Id="Print" Type="PushButton" X="88" Y="243" Width="56" Height="17" Text="!(loc.WixUIPrint)">
+ <Publish Event="DoAction" Value="WixUIPrintEula">1</Publish>
+ </Control>
+
+ <Control Id="Advanced" Type="PushButton" X="156" Y="243" Width="56" Height="17" Text="!(loc.AdvancedWelcomeEulaDlgAdvanced)">
+ <Condition Action="disable">NOT LicenseAccepted OR NOT (ALLUSERS = 1)</Condition>
+ <Condition Action="enable">(LicenseAccepted = "1") AND (ALLUSERS = 1)</Condition>
+ </Control>
+
+ <Control Id="Install" Type="PushButton" ElevationShield="yes" X="212" Y="243" Width="80" Height="17" Default="yes" Text="!(loc.AdvancedWelcomeEulaDlgInstall)" Hidden="yes">
+ <Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg">!(wix.WixUICostingPopupOptOut) OR CostingComplete = 1</Publish>
+ <Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
+ <Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
+ <Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
+ <Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
+ <Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
+ <Condition Action="disable">NOT LicenseAccepted</Condition>
+ <Condition Action="enable">LicenseAccepted = "1"</Condition>
+ <Condition Action="show">ALLUSERS = 1</Condition>
+ <Condition Action="hide">NOT (ALLUSERS = 1)</Condition>
+ </Control>
+ <Control Id="InstallNoShield" Type="PushButton" ElevationShield="no" X="212" Y="243" Width="80" Height="17" Default="yes" Text="!(loc.AdvancedWelcomeEulaDlgInstall)" Hidden="yes">
+ <Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg">!(wix.WixUICostingPopupOptOut) OR CostingComplete = 1</Publish>
+ <Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
+ <Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
+ <Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
+ <Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
+ <Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
+ <Condition Action="disable">NOT LicenseAccepted</Condition>
+ <Condition Action="enable">LicenseAccepted = "1"</Condition>
+ <Condition Action="show">NOT (ALLUSERS = 1)</Condition>
+ <Condition Action="hide">ALLUSERS = 1</Condition>
+ </Control>
+
+ <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
+ <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
+ </Control>
+ <Control Id="LicenseText" Type="ScrollableText" X="20" Y="55" Width="330" Height="80" Sunken="yes" TabSkip="no">
+ <!--<Text SourceFile="!(wix.WixUILicenseRtf=$(var.licenseRtf))" />-->
+ <Text SourceFile="!(loc.LicenseRtf)" />
+ </Control>
+ </Dialog>
+ </UI>
+
+ <InstallUISequence>
+ <Show Dialog="AdvancedWelcomeEulaDlg_Custom" Before="ProgressDlg">NOT Installed</Show>
+ </InstallUISequence>
+ </Fragment>
+</Wix> \ No newline at end of file
diff --git a/windows/Pandoc-en-us.wxl b/windows/Pandoc-en-us.wxl
new file mode 100644
index 000000000..1981f24e8
--- /dev/null
+++ b/windows/Pandoc-en-us.wxl
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<WixLocalization Culture="en-us" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
+ <String Id="Language">1033</String>
+ <!-- Supported language and codepage codes can be found here: http://www.tramontana.co.hu/wix/lesson2.php#2.4 -->
+
+ <String Id="LicenseRtf" Overridable="yes">COPYING.rtf</String>
+
+ <String Id="ExitDialogText">[ProductName] was installed in
+
+[APPLICATIONFOLDER].
+
+You may need to restart Cmd/Powershell windows before using it.</String>
+
+</WixLocalization> \ No newline at end of file
diff --git a/windows/WixUI_Advanced_Custom.wxs b/windows/WixUI_Advanced_Custom.wxs
new file mode 100644
index 000000000..6f85d9961
--- /dev/null
+++ b/windows/WixUI_Advanced_Custom.wxs
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?if $(sys.BUILDARCH)=x64?>
+<?define ProgFilesFolder="ProgramFiles64Folder"?>
+<?else?>
+<?define ProgFilesFolder="ProgramFilesFolder"?>
+<?endif?>
+<!--
+ <copyright file="WixUI_Advanced_Custom.wxs" company="Outercurve Foundation">
+ Copyright (c) 2004, Outercurve Foundation.
+ This software is released under Microsoft Reciprocal License (MS-RL).
+ The license and further copyright text can be found in the file
+ LICENSE.TXT at the root directory of the distribution.
+ </copyright>
+-->
+
+<!--
+WixUI_Advanced_Custom offers a two-click install (EULA checkbox and Install button)
+and offers an Advanced button that lets users choose per-machine or per-user
+installs, install path, and features.
+
+WiX variables used:
+ - WixUISupportPerMachine
+ - WixUISupportPerUser
+
+Todo:
+ - Clicking Install doesn't work! - APPLICATIONFOLDER isn't set; need to accept another "incoming" property.
+ - Replace this dialog set UI fragment with the UI extension.
+ = This set is still in active development.
+ = Future releases are likely to be incompatible.
+ = Future releases are likely to be much easier to use.
+ = Use at your own risk.
+
+-->
+
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <Fragment>
+ <WixVariable Id="WixUISupportPerUser" Value="1" Overridable="yes" />
+ <WixVariable Id="WixUISupportPerMachine" Value="1" Overridable="yes" />
+
+ <PropertyRef Id="ApplicationFolderName" />
+
+ <CustomAction Id="WixSetDefaultPerUserFolder2" Property="WixPerUserFolder" Value="[LocalAppDataFolder][ApplicationFolderName]" Execute="immediate" />
+ <CustomAction Id="WixSetDefaultPerMachineFolder2" Property="WixPerMachineFolder" Value="[$(var.ProgFilesFolder)][ApplicationFolderName]" Execute="immediate" />
+ <CustomAction Id="WixSetPerUserFolder2" Property="APPLICATIONFOLDER" Value="[WixPerUserFolder]" Execute="immediate" />
+ <CustomAction Id="WixSetPerMachineFolder2" Property="APPLICATIONFOLDER" Value="[WixPerMachineFolder]" Execute="immediate" />
+
+ <InstallExecuteSequence>
+ <Custom Action="WixSetDefaultPerUserFolder2" Before="CostFinalize" />
+ <Custom Action="WixSetDefaultPerMachineFolder2" After="WixSetDefaultPerUserFolder2" />
+ <Custom Action="WixSetPerUserFolder2" After="WixSetDefaultPerMachineFolder2">ACTION="INSTALL" AND APPLICATIONFOLDER="" AND (ALLUSERS="" OR (ALLUSERS=2 AND (NOT Privileged)))</Custom>
+ <Custom Action="WixSetPerMachineFolder2" After="WixSetPerUserFolder2">ACTION="INSTALL" AND APPLICATIONFOLDER="" AND (ALLUSERS=1 OR (ALLUSERS=2 AND Privileged))</Custom>
+ </InstallExecuteSequence>
+ <InstallUISequence>
+ <Custom Action="WixSetDefaultPerUserFolder2" Before="CostFinalize" />
+ <Custom Action="WixSetDefaultPerMachineFolder2" After="WixSetDefaultPerUserFolder2" />
+ <Custom Action="WixSetPerUserFolder2" After="WixSetDefaultPerMachineFolder2">ACTION="INSTALL" AND APPLICATIONFOLDER="" AND (ALLUSERS="" OR (ALLUSERS=2 AND (NOT Privileged)))</Custom>
+ <Custom Action="WixSetPerMachineFolder2" After="WixSetPerUserFolder2">ACTION="INSTALL" AND APPLICATIONFOLDER="" AND (ALLUSERS=1 OR (ALLUSERS=2 AND Privileged))</Custom>
+ </InstallUISequence>
+
+ <UI Id="WixUI_Advanced_Custom">
+ <TextStyle Id="WixUI_Font_Normal" FaceName="!(loc.Advanced_Font_FaceName)" Size="!(loc.Advanced_Font_Normal_Size)" />
+ <TextStyle Id="WixUI_Font_Bigger" FaceName="!(loc.Advanced_Font_FaceName)" Size="!(loc.Advanced_Font_Bigger_Size)" />
+ <TextStyle Id="WixUI_Font_Title" FaceName="!(loc.Advanced_Font_FaceName)" Size="!(loc.Advanced_Font_Title_Size)" Bold="yes" />
+ <TextStyle Id="WixUI_Font_Emphasized" FaceName="!(loc.Advanced_Font_FaceName)" Size="!(loc.Advanced_Font_Emphasized_Size)" Bold="yes" />
+
+ <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
+ <Property Id="WixUI_Mode" Value="Advanced" />
+
+ <DialogRef Id="BrowseDlg" />
+ <DialogRef Id="DiskCostDlg" />
+ <DialogRef Id="ErrorDlg" />
+ <DialogRef Id="FatalError" />
+ <DialogRef Id="FilesInUse" />
+ <DialogRef Id="MsiRMFilesInUse" />
+ <DialogRef Id="PrepareDlg" />
+ <DialogRef Id="ProgressDlg" />
+ <DialogRef Id="ResumeDlg" />
+ <DialogRef Id="UserExit" />
+ <DialogRef Id="WelcomeDlg"/>
+
+ <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
+
+ <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="1">1</Publish>
+ <Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="2"><![CDATA[WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
+
+ <!--<Publish Dialog="AdvancedWelcomeEulaDlg_Custom" Control="Advanced" Event="NewDialog" Value="InstallScopeDlg" Order="1">!(wix.WixUISupportPerMachine) AND !(wix.WixUISupportPerUser)</Publish>-->
+ <!--<Publish Dialog="AdvancedWelcomeEulaDlg_Custom" Control="Advanced" Event="NewDialog" Value="FeaturesDlg" Order="2">NOT !(wix.WixUISupportPerMachine)</Publish>-->
+ <!--<Publish Dialog="AdvancedWelcomeEulaDlg_Custom" Control="Advanced" Event="NewDialog" Value="InstallDirDlg" Order="3">!(wix.WixUISupportPerMachine) AND NOT !(wix.WixUISupportPerUser)</Publish>-->
+
+ <Publish Dialog="AdvancedWelcomeEulaDlg_Custom" Control="Advanced" Property="WixAppFolder" Value="WixPerMachineFolder" Order="1">ALLUSERS = 1</Publish>
+ <Publish Dialog="AdvancedWelcomeEulaDlg_Custom" Control="Advanced" Property="APPLICATIONFOLDER" Value="[$(var.ProgFilesFolder)][ApplicationFolderName]" Order="2">ALLUSERS = 1</Publish>
+ <Publish Dialog="AdvancedWelcomeEulaDlg_Custom" Control="Advanced" Event="NewDialog" Value="InstallDirDlg" Order="3">!(wix.WixUISupportPerMachine) AND !(wix.WixUISupportPerUser)</Publish>
+
+ <Publish Dialog="AdvancedWelcomeEulaDlg_Custom" Control="AllUsersCheckBox" Property="WixAppFolder" Value="WixPerMachineFolder" Order="1">ALLUSERS = 1</Publish>
+ <Publish Dialog="AdvancedWelcomeEulaDlg_Custom" Control="AllUsersCheckBox" Property="APPLICATIONFOLDER" Value="[$(var.ProgFilesFolder)][ApplicationFolderName]" Order="2">ALLUSERS = 1</Publish>
+
+ <Publish Dialog="AdvancedWelcomeEulaDlg_Custom" Control="AllUsersCheckBox" Property="WixAppFolder" Value="WixPerUserFolder" Order="1">NOT (ALLUSERS = 1)</Publish>
+ <Publish Dialog="AdvancedWelcomeEulaDlg_Custom" Control="AllUsersCheckBox" Property="APPLICATIONFOLDER" Value="[LocalAppDataFolder][ApplicationFolderName]" Order="2">NOT (ALLUSERS = 1)</Publish>
+
+ <!--<Publish Dialog="InstallScopeDlg" Control="Back" Event="NewDialog" Value="AdvancedWelcomeEulaDlg_Custom">1</Publish>-->
+ <!-- override default WixAppFolder of WixPerMachineFolder as standard user won't be shown the radio group to set WixAppFolder -->
+
+ <!--<Publish Dialog="InstallScopeDlg" Control="Next" Property="WixAppFolder" Value="WixPerUserFolder" Order="1">!(wix.WixUISupportPerUser) AND NOT Privileged</Publish>-->
+
+
+
+ <!--<Publish Dialog="InstallScopeDlg" Control="Next" Event="NewDialog" Value="FeaturesDlg" Order="6">WixAppFolder = "WixPerUserFolder"</Publish>
+ <Publish Dialog="InstallScopeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg" Order="7">WixAppFolder = "WixPerMachineFolder"</Publish>-->
+
+ <!--<Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="InstallScopeDlg">!(wix.WixUISupportPerUser)</Publish>-->
+ <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="AdvancedWelcomeEulaDlg_Custom">1</Publish>
+ <Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
+ <Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish>
+ <Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
+ <Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish>
+ <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
+ <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
+
+ <!--<Publish Dialog="FeaturesDlg" Control="Back" Event="NewDialog" Value="InstallScopeDlg">NOT Installed AND WixAppFolder = "WixPerUserFolder"</Publish>-->
+ <Publish Dialog="FeaturesDlg" Control="Back" Event="NewDialog" Value="InstallDirDlg">NOT Installed AND WixAppFolder = "WixPerMachineFolder"</Publish>
+ <Publish Dialog="FeaturesDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">Installed</Publish>
+
+ <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
+
+ <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
+ <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
+ <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
+
+ <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed AND NOT PATCH</Publish>
+ <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="3">Installed AND PATCH</Publish>
+
+ <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">Installed AND PATCH</Publish>
+ </UI>
+
+ <InstallUISequence>
+ <Show Dialog="WelcomeDlg" Before="AdvancedWelcomeEulaDlg_Custom" >Installed AND PATCH</Show>
+ </InstallUISequence>
+
+ <Property Id="WIXUI_INSTALLDIR" Value="APPLICATIONFOLDER" />
+ <UIRef Id="WixUI_Common" />
+ </Fragment>
+</Wix> \ No newline at end of file
diff --git a/windows/make-windows-installer.bat b/windows/make-windows-installer.bat
new file mode 100644
index 000000000..1517e9bf9
--- /dev/null
+++ b/windows/make-windows-installer.bat
@@ -0,0 +1,29 @@
+@echo off
+stack install --test --stack-yaml=..\stack.pkg.yml
+if %errorlevel% neq 0 exit /b %errorlevel%
+for /f "delims=" %%a in ('stack path --local-bin-path') do @set BINPATH=%%a
+%BINPATH%\pandoc.exe -s --toc ..\MANUAL.txt -o MANUAL.html
+if %errorlevel% neq 0 exit /b %errorlevel%
+%BINPATH%\pandoc.exe -s ..\COPYING.md -t rtf -o COPYING.rtf
+if %errorlevel% neq 0 exit /b %errorlevel%
+copy ..\COPYRIGHT COPYRIGHT.txt
+for /f "tokens=1-2 delims= " %%a in ('%BINPATH%\pandoc.exe --version') do (
+ @set VERSION=%%b
+ goto :next
+ )
+:next
+if "%VERSION%" == "" (
+ echo Error: could not determine version number.
+ exit /b 1
+)
+echo Detected version %VERSION%
+echo Creating msi...
+candle -dVERSION=%VERSION% -dBINPATH=%BINPATH% *.wxs -out wixobj\
+if %errorlevel% neq 0 exit /b %errorlevel%
+light -sw1076 -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -loc Pandoc-en-us.wxl -out pandoc-%VERSION%-windows.msi wixobj\*.wixobj
+if %errorlevel% neq 0 exit /b %errorlevel%
+echo Starting kSign: sign, then quit kSign to complete the build...
+kSign
+
+echo Copying to shared drive
+copy pandoc-%VERSION%-windows.msi \\VBOXSVR\WindowsShared\
diff --git a/windows/pandoc.wxs b/windows/pandoc.wxs
new file mode 100644
index 000000000..dcdd3f582
--- /dev/null
+++ b/windows/pandoc.wxs
@@ -0,0 +1,188 @@
+<?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)"
+ Version="$(var.VERSION)" Manufacturer="John MacFarlane"
+ Language="1033">
+
+ <Package InstallerVersion="301" Compressed="yes"
+ Comments="Windows Installer Package" />
+ <Media Id="1" Cabinet="product.cab" EmbedCab="yes" />
+ <Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />
+ <Upgrade Id="$(var.UpgradeCode)">
+ <UpgradeVersion Property='PREVIOUSVERSIONSINSTALLED'
+ Minimum='0.0.0.0' IncludeMinimum='yes'
+ Maximum="99.0.0.0" IncludeMaximum="no" />
+ </Upgrade>
+
+ <InstallExecuteSequence>
+ <RemoveExistingProducts After="InstallFinalize"/>
+ </InstallExecuteSequence>
+
+ <Property Id="DISABLEADVTSHORTCUTS" Value="1" />
+
+ <Directory Id="TARGETDIR" Name="SourceDir">
+
+ <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"/>
+ <RemoveFolder Id="APPLICATIONFOLDER" On="uninstall"/>
+ <File Id="pandocEXE" Name="pandoc.exe"
+ Source="$(var.BINPATH)\pandoc.exe" />
+ <File Id="pandocCOPYRIGHT" Name="COPYRIGHT.txt"
+ Source="COPYRIGHT.txt" />
+ <File Id="pandocCOPYING" Name="COPYING.rtf"
+ 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"/>
+ <File Id="pandoc_citeprocEXE" Name="pandoc-citeproc.exe"
+ Source="$(var.BINPATH)\pandoc-citeproc.exe" />
+ </Component>
+
+ <Component Id="Documentation"
+ Guid="A8D54A76-1A3D-4647-8327-81B69D39D8A3">
+ <File Id="pandocMANUAL" Name="Pandoc User's Guide.html"
+ Source="MANUAL.html" KeyPath="yes">
+ <Shortcut Id="ApplicationStartMenuShortcut"
+ Directory="ApplicationProgramsFolder"
+ 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>
+
+ <Directory Id="ProgramMenuFolder">
+ <Directory Id="ApplicationProgramsFolder" Name="Pandoc">
+ <Component Id="ApplicationShortcut"
+ Guid="7F807DD5-CC54-474A-B571-89630893F563">
+ <RemoveFolder Id="ApplicationProgramsFolder"
+ On="uninstall"/>
+ <RegistryValue Root="HKMU" Key="Software\John MacFarlane\Pandoc"
+ Name="ShortcutInstalled" Type="integer" Value="1"
+ KeyPath="yes"/>
+ </Component>
+ </Directory>
+ </Directory>
+
+ </Directory>
+
+ <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."
+ Level="1">
+ <ComponentRef Id="MainExecutable" />
+ <ComponentRef Id="UpdateUserPath" />
+ <ComponentRef Id="UpdateSystemPath" />
+ </Feature>
+ <Feature Id="Manual" Title="Manual">
+ <ComponentRef Id="Documentation" />
+ <ComponentRef Id="ApplicationShortcut" />
+ </Feature>
+ <Feature Id="Citation" Title="Citation Support"
+ Description="Citation support.">
+ <ComponentRef Id="CitationSupport" />
+ </Feature>
+ </Feature>
+
+
+ <!-- Set properties for add/remove programs -->
+ <Property Id="ARPURLINFOABOUT" Value="http://pandoc.org" />
+ <Property Id="ARPHELPLINK" Value="http://pandoc.org" />
+ <Property Id="ARPNOREPAIR" Value="yes" Secure="yes" /> <!-- Remove repair -->
+ <Property Id="ARPNOMODIFY" Value="yes" Secure="yes" /> <!-- Remove modify -->
+
+
+ <!--Needed for WixUI_Advanced-->
+ <Property Id="ApplicationFolderName" Value="Pandoc" />
+ <Property Id="WixAppFolder" Value="WixPerUserFolder" />
+
+ <!--For Single Package for dual purpose i.e. per User/Machine-->
+ <!--<Property Id="ALLUSERS" Value="2" Secure="yes" />-->
+ <Property Id="MSIINSTALLPERUSER" Value="1" />
+
+ <!--Inform about installed location-->
+ <SetProperty Id="ARPINSTALLLOCATION" Value="[APPLICATIONFOLDER]"
+ After="CostFinalize" />
+ <CustomAction Id="SetExitDialogOptText"
+ Property="WIXUI_EXITDIALOGOPTIONALTEXT"
+ Value="!(loc.ExitDialogText)" />
+
+ <!--Offer Per User installs only on workstations (block on servers)-->
+ <!--Unless ALLUSERS=1 is specified on command line-->
+ <SetProperty Id="WixUISupportPerUser" Value="0" Before="FindRelatedProducts">
+ <!--https://msdn.microsoft.com/en-us/library/windows/desktop/aa370329(v=vs.85).aspx-->
+ MsiNTProductType > 1
+ </SetProperty>
+ <SetProperty Id="WixUISupportPerUser" Value="1" Before="FindRelatedProducts" Action="CASupportPerUser">
+ MsiNTProductType = 1
+ </SetProperty>
+ <SetProperty Id="ALLUSERS" Value="1" Before="FindRelatedProducts">
+ MsiNTProductType > 1
+ </SetProperty>
+ <SetProperty Id="ALLUSERS" Value="{}" Before="FindRelatedProducts" Action="CASetPuaPackage">
+ (NOT ALLUSERS = 1) AND MsiNTProductType = 1
+ </SetProperty>
+ <SetProperty Id="MSIINSTALLPERUSER" Value="1" Before="FindRelatedProducts">
+ (NOT ALLUSERS = 1) AND MsiNTProductType = 1
+ </SetProperty>
+ <SetProperty Id="WixAppFolder" Value="WixPerMachineFolder" Before="FindRelatedProducts">
+ MsiNTProductType > 1
+ </SetProperty>
+
+ <!--Make changes to PATH visible immeidiately-->
+ <CustomActionRef Id="WixBroadcastSettingChange" />
+ <CustomActionRef Id="WixBroadcastEnvironmentChange" />
+
+ <InstallUISequence>
+ <Custom Action="SetExitDialogOptText" Before="ExecuteAction">
+ NOT Installed
+ </Custom>
+ </InstallUISequence>
+
+ <UIRef Id="WixUI_Advanced_Custom"/>
+ <!--Enable better description when debug logging-->
+ <UIRef Id="WixUI_ErrorProgressText" />
+
+ </Product>
+
+
+</Wix>