spiegel-keyman/developer/src/inst/kmdev.wxs
Marc Durdin fa57d5c674 chore(developer): final work on build.sh for developer
Now builds from a clean repo:

  developer/src/build.sh configure build test publish

* Splits kmbrowserhost into kmdbrowserhost for Developer; this means
  that Developer Browser Host now inherits the Developer settings rather
  than the Keyman for Windows settings, and simplifies distribution and
  management. The only difference between the two is in the startup code
  so this seems like a good split.

* Cleanup of various build scripts and dependencies.
2024-05-20 06:34:53 +07:00

338 lines
17 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*"
UpgradeCode="{E99A1F1E-7046-44F9-89EF-D3A59F84B209}" Manufacturer="SIL International"
Name="Keyman Developer $(var.RELEASE)" Version="$(var.VERSION)" Language="1033">
<Package Keywords="Keyman,Keyboard,Engine" Compressed="yes"
Description="Keyman Developer $(var.RELEASE)" Comments="Contact: Your local administrator"
Manufacturer="SIL International" InstallerVersion="200" Platform="x86" Languages="1033" SummaryCodepage="1252" />
<!-- Upgrade from Developer 7.0 -->
<!-- ProductID for 7.0 = {5889CA65-3E9F-445b-A22F-9277A0FB43C6} -->
<Upgrade Id="FF590D53-075C-45a4-89C2-EC7BA4E1ECD4">
<UpgradeVersion OnlyDetect="no" Minimum="7.0.213.0" IncludeMinimum="yes"
Maximum="8.0.314.0" IncludeMaximum="no" MigrateFeatures="yes" Property="OLDERFOUND" />
</Upgrade>
<!-- Upgrade from Developer 8.0 -->
<Upgrade Id="490D8B83-276E-4434-B1EA-30713F7916C7">
<UpgradeVersion OnlyDetect="no" Minimum="8.0.314.0" IncludeMinimum="yes"
Maximum="9.0.507.0" IncludeMaximum="yes" MigrateFeatures="yes" Property="VERSION8FOUND" />
<!-- bug in Developer 9.0 installer means 9.0.507.0 and earlier are treated as 8.x -->
</Upgrade>
<!-- Upgrade from Developer 9.0 -->
<Upgrade Id="E0159651-CEA3-46CF-ACD7-0B0330C1B547">
<UpgradeVersion OnlyDetect="no" Minimum="9.0.507.1" IncludeMinimum="yes"
Maximum="10.0.699.0" IncludeMaximum="no" MigrateFeatures="yes" Property="VERSION9FOUND" />
</Upgrade>
<!-- Upgrade from Developer 10.0 or later versions -->
<Upgrade Id="7B78D2C8-31EC-4B0C-8D7F-650418A4686E">
<UpgradeVersion OnlyDetect="no" Minimum="10.0.0.0" IncludeMinimum="yes"
Maximum="11.0.0.0" IncludeMaximum="no" MigrateFeatures="yes" Property="VERSION10FOUND" />
</Upgrade>
<!-- Upgrade from Developer 11.0 or later versions -->
<Upgrade Id="{E99A1F1E-7046-44F9-89EF-D3A59F84B209}">
<UpgradeVersion OnlyDetect="no" Minimum="11.0.0.0" IncludeMinimum="yes"
Maximum="$(var.VERSION)" IncludeMaximum="no" MigrateFeatures="yes" Property="VERSION11FOUND" />
<UpgradeVersion OnlyDetect="yes" Minimum="$(var.VERSION)" IncludeMinimum="yes"
Maximum="$(var.VERSION)" IncludeMaximum="yes" Property="CURRENTVERSIONFOUND" />
<UpgradeVersion OnlyDetect="yes" Minimum="$(var.VERSION)" IncludeMinimum="no" Property="NEWERFOUND" />
</Upgrade>
<Property Id="ALLUSERS"><![CDATA[1]]></Property>
<Condition Message="Keyman Developer requires Windows 7 or later"><![CDATA[Installed OR (VersionNT >= 601)]]></Condition>
<Directory Id='TARGETDIR' Name='SourceDir' DiskId='1'>
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="KeymanRoot" Name="Keyman">
<Directory Id="KEYMANDEV" Name="Keyman Developer">
<Directory Id="INSTALLDIR" Name="." FileSource="..\bin\">
<Directory Id="dir_sentry_0.6.0" Name="sentry-0.6.0" />
<Directory Id="dirNode" Name="node.js" />
<Directory Id="dirProjects" Name="Projects" />
<Directory Id="dir_import" Name="import">
<Directory Id="dir_import_45" Name="45" />
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>
<Directory Id="FontsFolder" />
<Directory Id="ProgramMenuFolder">
<Directory Id="ProgramMenuDir" Name="Keyman Developer" />
</Directory>
<Directory Id="DesktopFolder" Name="Desktop" />
<Directory Id="AppDataFolder">
<Directory Id="App_KeymanRoot" Name="Keyman" >
<Directory Id="App_KeymanDev" Name="Keyman Developer">
<Directory Id="App_KeymanDev_Databases" Name="Databases" />
</Directory>
</Directory>
</Directory>
</Directory>
<ComponentGroup Id="KeymanDeveloperApp" Source="..\..\bin\" Directory="INSTALLDIR">
<Component>
<File Name="tike.exe" KeyPath="yes" Vital='yes'>
<Shortcut Id="startmenuTIKE" Advertise="yes" Directory="ProgramMenuDir" Name="Keyman Developer" WorkingDirectory='INSTALLDIR' Icon="TIKE.ico" IconIndex="0" />
<Shortcut Id="desktopTIKE" Advertise="yes" Directory="DesktopFolder" Name="Keyman Developer" WorkingDirectory='INSTALLDIR' Icon="TIKE.ico" IconIndex="0" />
</File>
<Environment Id="PATH" Name="PATH" Value="[INSTALLDIR]" Permanent="no" Part="last" Action="set" System="yes" />
<RemoveFile Id="excmagic.log" On="uninstall" Name="excmagic.log" />
<RegistryKey ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes" Root="HKLM" Key="Software\Keyman\Keyman Developer" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Keyman\Keyman Developer" Name="root path" Type="string" Value="[INSTALLDIR]" />
<Environment Id="environmentKeymanDeveloperPath" Action="set" Name="KeymanDeveloperPath" System="yes" Value="[INSTALLDIR]" />
<RemoveFile Id="CachedInstallDirFiles" Property="CachedInstallDir" On="uninstall" Name="*" />
<RemoveFolder Id="CachedInstallDir" Property="CachedInstallDir" On="uninstall" />
<RemoveFolder Id="CachedInstallDirParent" Property="CachedInstallDirParent" On="uninstall" />
<RegistryValue Root="HKCR" Key=".kmn" Type="string" Value="KeymanDeveloper.File.Keyboard" />
<RegistryValue Root="HKCR" Key=".kps" Type="string" Value="KeymanDeveloper.File.Package" />
<RegistryValue Root="HKCR" Key=".kvks" Type="string" Value="KeymanDeveloper.File.OnScreenKeyboard" />
<RegistryValue Root="HKCR" Key=".kpj" Type="string" Value="KeymanDeveloper.File.Project" />
<RegistryValue Root="HKCR" Key=".kmx" Type="string" Value="Keyman.File.Keyboard" />
<RegistryValue Root="HKCR" Key=".kmp" Type="string" Value="Keyman.File.Package" />
<RegistryValue Root="HKCR" Key=".kvk" Type="string" Value="Keyman.File.OnScreenKeyboard" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.Keyboard" Type="string" Value="Keyman Keyboard Source File" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.Keyboard\DefaultIcon" Type="string" Value="[#tike.exe],1" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.Keyboard\Shell" Type="string" Value="edit" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.Keyboard\Shell\edit" Type="string" Value="&amp;Edit" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.Keyboard\Shell\edit\Command" Type="string" Value='"[#tike.exe]" "%1"' />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.Package" Type="string" Value="Keyman Package Source File" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.Package\DefaultIcon" Type="string" Value="[#tike.exe],2" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.Package\Shell" Type="string" Value="edit" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.Package\Shell\edit" Type="string" Value="&amp;Edit" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.Package\Shell\edit\Command" Type="string" Value='"[#tike.exe]" "%1"' />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.Project" Type="string" Value="Keyman Developer Project Source File" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.Project\DefaultIcon" Type="string" Value="[#tike.exe],3" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.Project\Shell" Type="string" Value="open" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.Project\Shell\open" Type="string" Value="&amp;Open" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.Project\Shell\open\Command" Type="string" Value='"[#tike.exe]" "%1"' />
<RegistryValue Root="HKCR" Key="Keyman.File.Keyboard" Type="string" Value="Keyman Keyboard File" />
<RegistryValue Root="HKCR" Key="Keyman.File.Keyboard\DefaultIcon" Type="string" Value="[#tike.exe],4" />
<RegistryValue Root="HKCR" Key="Keyman.File.Package" Type="string" Value="Keyman Package File" />
<RegistryValue Root="HKCR" Key="Keyman.File.Package\DefaultIcon" Type="string" Value="[#tike.exe],5" />
<RegistryValue Root="HKCR" Key="Keyman.File.OnScreenKeyboard" Type="string" Value="Keyman On Screen Keyboard File" />
<RegistryValue Root="HKCR" Key="Keyman.File.OnScreenKeyboard\DefaultIcon" Type="string" Value="[#tike.exe],6" />
<RegistryValue Root="HKCR" Key="Keyman.File.OnScreenKeyboard\Shell" Type="string" Value="edit" />
<RegistryValue Root="HKCR" Key="Keyman.File.OnScreenKeyboard\Shell\edit" Type="string" Value="&amp;Edit" />
<RegistryValue Root="HKCR" Key="Keyman.File.OnScreenKeyboard\Shell\edit\Command" Type="string" Value='"[#tike.exe]" "%1"' />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.OnScreenKeyboard" Type="string" Value="Keyman On Screen Keyboard Source File" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.OnScreenKeyboard\DefaultIcon" Type="string" Value="[#tike.exe],7" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.OnScreenKeyboard\Shell" Type="string" Value="edit" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.OnScreenKeyboard\Shell\edit" Type="string" Value="&amp;Edit" />
<RegistryValue Root="HKCR" Key="KeymanDeveloper.File.OnScreenKeyboard\Shell\edit\Command" Type="string" Value='"[#tike.exe]" "%1"' />
</Component>
<Component>
<File Name="kmdbrowserhost.exe" KeyPath="yes" />
</Component>
<Component>
<File Name="kmdecomp.exe" KeyPath="yes" />
</Component>
<Component>
<File Name="kmdecomp.md" KeyPath="yes" Source="..\kmdecomp\kmdecomp.md" />
</Component>
<Component>
<File Name="kmconvert.exe" KeyPath="yes" />
</Component>
<Component>
<File Name="keymancore-2.dll" KeyPath="yes" />
</Component>
<Component>
<File Name="keyboard_info.schema.json" Source="..\..\..\common\schemas\keyboard_info\" KeyPath="yes" />
</Component>
<Component>
<File Name="kmp.schema.json" Source="..\..\..\common\schemas\kmp\" KeyPath="yes" />
</Component>
<!-- Data Files -->
<Component>
<File Name="kps.xsd" KeyPath="yes" />
</Component>
<Component>
<File Name="unicodedata.mdb" Source="..\..\..\common\windows\bin\data\" KeyPath="yes" />
</Component>
<Component>
<File Name="unicodedata.txt" Source="..\..\..\resources\standards-data\unicode-character-database\" KeyPath="yes" />
</Component>
<Component>
<File Name="blocks.txt" Source="..\..\..\resources\standards-data\unicode-character-database\" KeyPath="yes" />
</Component>
</ComponentGroup>
<!-- LDML Imports -->
<ComponentGroup Id="LdmlImports" Directory="dir_import_45" Source="..\..\..\resources\standards-data\ldml-keyboards\45\import">
<Component>
<File Id="LdmlImportReadme" Name="README.md" KeyPath="yes" />
</Component>
<Component>
<File Id="LdmlImportLicense" Name="unicode-license.txt" Source="..\..\..\resources\standards-data\ldml-keyboards\unicode-license.txt" />
</Component>
<Component>
<File Name="keys-Latn-implied.xml" KeyPath="yes" />
</Component>
<Component>
<File Name="keys-Zyyy-currency.xml" KeyPath="yes" />
</Component>
<Component>
<File Name="keys-Zyyy-punctuation.xml" KeyPath="yes" />
</Component>
<Component>
<File Name="scanCodes-implied.xml" KeyPath="yes" />
</Component>
</ComponentGroup>
<!-- Sentry -->
<ComponentGroup Id="KeymanDevSentryComponents" Directory="dir_sentry_0.6.0" Source="..\..\bin\">
<Component>
<File Id="sentry.dll" KeyPath="yes" />
</Component>
<Component>
<File Id="sentry.x64.dll" KeyPath="yes" />
</Component>
<Component>
<File Id="crashpad_handler.exe" KeyPath="yes" />
</Component>
</ComponentGroup>
<ComponentGroup Id="FontsAndRedist" Source="fonts\">
<!-- Fonts -->
<Component Directory="FontsFolder">
<File Name="code2000.ttf" TrueType="yes" KeyPath="yes" />
</Component>
<Component Directory="FontsFolder">
<File Name="code2001.ttf" TrueType="yes" KeyPath="yes" />
</Component>
<Component Directory="FontsFolder">
<File Name="code2002.ttf" TrueType="yes" KeyPath="yes" />
</Component>
<Component Directory="FontsFolder">
<File Name='keymanweb-osk.ttf' TrueType='yes' Source='..\tike\xml\layoutbuilder\keymanweb-osk.ttf' KeyPath="yes" />
</Component>
</ComponentGroup>
<ComponentGroup Id="Node">
<Component Directory="dirNode">
<File Name='node.exe' KeyPath="yes" Source="node\dist\node.exe" />
<File Name='CHANGELOG.md' Source="node\dist\CHANGELOG.md" />
<File Name='LICENSE' Source="node\dist\LICENSE" />
<File Name='README.md' Source="node\dist\README.md" />
</Component>
<Component Directory="INSTALLDIR">
<File Name='kmlmc.cmd' KeyPath="yes" Source="node\kmlmc.cmd" />
</Component>
<Component Directory="INSTALLDIR">
<File Name='kmlmp.cmd' KeyPath="yes" Source="node\kmlmp.cmd" />
</Component>
<Component Directory="INSTALLDIR">
<File Name='kmc.cmd' KeyPath="yes" Source="node\kmc.cmd" />
</Component>
</ComponentGroup>
<ComponentGroup Id="AppData">
<Component Id="AppDataRemovals" Guid="{780C99E9-E97E-4EB0-BBF5-D4591EEABA7C}" Directory="App_KeymanDev_Databases">
<RegistryValue KeyPath="yes" Root="HKCU" Key="Software\Keyman\Keyman Developer" Name="root path" Type="string" Value="[INSTALLDIR]" />
<RegistryKey ForceCreateOnInstall="yes" ForceDeleteOnUninstall="no" Root="HKCU" Key="Software\Keyman\Keyman Developer" />
<RemoveFolder Id="AD_Uninstall" On="uninstall" Directory="App_KeymanRoot" />
<RemoveFolder Id="AD_KeymanDev_Uninstall" On="uninstall" Directory="App_KeymanDev" />
<RemoveFolder Id="AD_KeymanDev_Databases_Uninstall" On="uninstall" Directory="App_KeymanDev_Databases" />
<RemoveFolder Id="ProgramMenuDir" Directory="ProgramMenuDir" On="uninstall" />
<RemoveFile Id="AD_KeymanDev_Databases_Uninstall_F" Directory="App_KeymanDev_Databases" On="uninstall" Name="*.mdb" />
</Component>
</ComponentGroup>
<Feature Id="featProgram" Title="Keyman Developer Program" Description="Required program files for Keyman Developer"
Display="expand" Level="1" ConfigurableDirectory="INSTALLDIR" Absent="disallow">
<ComponentGroupRef Id="KeymanDeveloperApp" />
<ComponentGroupRef Id="FontsAndRedist" />
<ComponentGroupRef Id="AppData" />
<ComponentGroupRef Id="XML" />
<ComponentGroupRef Id="CEF" />
<ComponentGroupRef Id="Templates" />
<ComponentGroupRef Id="kmc" />
<ComponentGroupRef Id="Node" />
<ComponentGroupRef Id="KeymanDevSentryComponents" />
<ComponentGroupRef Id="Server" />
<ComponentGroupRef Id="LdmlImports" />
</Feature>
<Media Id="1" EmbedCab="yes" Cabinet="Data1.cab" VolumeLabel="DISK1" />
<UIRef Id="WixUI_FeatureTree"/>
<Icon Id="TIKE.ico" SourceFile="..\images\KeymanDeveloper90.ico" />
<CustomAction Id='AlreadyUpdated' Error='[ProductName] has already been updated to $(var.VERSION) or newer.' />
<CustomAction Id='NoDowngrade' Error='A later version of [ProductName] is already installed.' />
<Property Id='OLDINSTALLDIR'>
<RegistrySearch Id='productinstalldir' Key='Software\Keyman\Keyman Developer' Root='HKLM' Name='root path' Type='raw' />
</Property>
<CustomAction Id='LocateInstallDir' Execute='immediate' Directory='INSTALLDIR' Value='[OLDINSTALLDIR]' />
<!-- I1165 - Uninstall failure on Win9x (n.a. for Keyman Developer but cleanup anyway) -->
<CustomAction Id='CachedInstallDir' Property='CachedInstallDir' Value='[ProgramFilesFolder]\Keyman\Cached Installer Files\[ProductCode]' />
<CustomAction Id='CachedInstallDirParent' Property='CachedInstallDirParent' Value='[ProgramFilesFolder]\Keyman\Cached Installer Files' />
<InstallExecuteSequence>
<Custom Action='LocateInstallDir' After='CostFinalize'>VERSION11FOUND</Custom>
<Custom Action='CachedInstallDir' After='CostFinalize' />
<Custom Action='CachedInstallDirParent' After='CostFinalize' />
<RemoveExistingProducts After='InstallValidate'>VERSION8FOUND or VERSION9FOUND or VERSION10FOUND or VERSION11FOUND or OLDERFOUND</RemoveExistingProducts><!--I2839-->
<Custom Action='AlreadyUpdated' After='FindRelatedProducts'>CURRENTVERSIONFOUND</Custom>
<Custom Action='NoDowngrade' After='AlreadyUpdated'>NEWERFOUND</Custom>
</InstallExecuteSequence>
</Product>
</Wix>