yams/packaging/windows/yams.wxs

93 lines
4.2 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
WiX v4 source file for YAMS MSI installer
Build with: wix build yams.wxs -o yams.msi -d Version=X.Y.Z -d StageDir=path/to/stage
Variables:
Version - Product version (e.g., 0.1.0)
StageDir - Path to meson install destdir output (containing bin/, etc.)
-->
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui">
<Package
Name="YAMS"
Manufacturer="YAMS Project"
Version="$(var.Version)"
UpgradeCode="69FC51D5-B9FC-4DA9-9CA3-C889EDF8AFB8"
Scope="perMachine"
Compressed="yes">
<SummaryInformation
Description="Yet Another Media Server - Content-addressable storage and indexing"
Manufacturer="YAMS Project" />
<MajorUpgrade
DowngradeErrorMessage="A newer version of [ProductName] is already installed."
Schedule="afterInstallInitialize" />
<MediaTemplate EmbedCab="yes" CompressionLevel="high" />
<!-- Installation directory under Program Files -->
<StandardDirectory Id="ProgramFiles64Folder">
<Directory Id="INSTALLFOLDER" Name="YAMS">
<Directory Id="BinDir" Name="bin">
<Component Id="YamsExe" Guid="6BCEBA1E-C995-46DA-8FF5-0BC6A53D74EA">
<File Id="yams_exe" Source="$(var.StageDir)\bin\yams.exe" KeyPath="yes" />
</Component>
<!-- ONNX Runtime DLLs - required for embeddings -->
<Component Id="OnnxRuntimeDll" Guid="A7E3B2C1-5D4F-4E6A-8B9C-1D2E3F4A5B6C">
<File Id="onnxruntime_dll" Source="$(var.StageDir)\bin\onnxruntime.dll" KeyPath="yes" />
</Component>
<Component Id="OnnxRuntimeProvidersSharedDll" Guid="B8F4C3D2-6E5A-4F7B-9C0D-2E3F4A5B6C7D">
<File Id="onnxruntime_providers_shared_dll" Source="$(var.StageDir)\bin\onnxruntime_providers_shared.dll" KeyPath="yes" />
</Component>
<!-- TBB Runtime DLLs - required for parallel processing -->
<Component Id="TbbDll" Guid="C9A5D4E3-7F6B-4A8C-0D1E-3F4A5B6C7D8E">
<File Id="tbb12_dll" Source="$(var.StageDir)\bin\tbb12.dll" KeyPath="yes" />
</Component>
<Component Id="PathEnvComponent" Guid="D817B79F-C5A1-4A6E-9AE0-8430AC0DEF48">
<Environment Id="PathEnv" Name="PATH" Value="[BinDir]" Permanent="no" Part="last" Action="set" System="yes" />
<RegistryValue Root="HKLM" Key="Software\YAMS" Name="PathSet" Type="integer" Value="1" KeyPath="yes" />
</Component>
</Directory>
<!-- Plugin directory under lib/yams/plugins -->
<Directory Id="LibDir" Name="lib">
<Directory Id="YamsLibDir" Name="yams">
<Directory Id="PluginsDir" Name="plugins">
<Component Id="OnnxPlugin" Guid="E1F2A3B4-8C9D-4E5F-A6B7-C8D9E0F1A2B3">
<File Id="onnx_plugin_dll" Source="$(var.StageDir)\lib\yams\plugins\yams_onnx_plugin.dll" KeyPath="yes" />
</Component>
<Component Id="S3Plugin" Guid="F2A3B4C5-9D0E-4F6A-B7C8-D9E0F1A2B3C4">
<File Id="s3_plugin_dll" Source="$(var.StageDir)\lib\yams\plugins\yams_object_storage_s3.dll" KeyPath="yes" />
</Component>
<Component Id="SymbolPlugin" Guid="A3B4C5D6-0E1F-4A7B-C8D9-E0F1A2B3C4D5">
<File Id="symbol_plugin_dll" Source="$(var.StageDir)\lib\yams\plugins\yams_symbol_extractor.dll" KeyPath="yes" />
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
</StandardDirectory>
<!-- Main feature: YAMS binary and runtime dependencies -->
<Feature Id="MainFeature" Title="YAMS" Level="1" ConfigurableDirectory="INSTALLFOLDER">
<ComponentRef Id="YamsExe" />
<ComponentRef Id="OnnxRuntimeDll" />
<ComponentRef Id="OnnxRuntimeProvidersSharedDll" />
<ComponentRef Id="TbbDll" />
<ComponentRef Id="PathEnvComponent" />
<!-- Plugins -->
<ComponentRef Id="OnnxPlugin" />
<ComponentRef Id="S3Plugin" />
<ComponentRef Id="SymbolPlugin" />
</Feature>
<!-- UI with license agreement -->
<ui:WixUI Id="WixUI_InstallDir" />
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
<WixVariable Id="WixUILicenseRtf" Value="$(var.StageDir)\LICENSE.rtf" />
</Package>
</Wix>