mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-26 02:12:45 -05:00
224 lines
9.1 KiB
XML
224 lines
9.1 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
|
<Product
|
|
Id="*"
|
|
Name="$(var.MyProductName)"
|
|
Manufacturer="$(var.MyCompanyName)"
|
|
Version="$(var.MyVersion)"
|
|
Language="1033"
|
|
UpgradeCode="82F812D9-4083-4EF1-8BC8-0F1EDA05B46B">
|
|
<Package
|
|
Description="$(var.MyProductName) - $(var.MyDescription)"
|
|
InstallerVersion="200"
|
|
Compressed="yes"
|
|
InstallScope="perMachine" />
|
|
<MajorUpgrade
|
|
DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
|
|
<Media Id="1" Cabinet="WinFsp.cab" EmbedCab="yes" />
|
|
<Property Id="P.RegistryKey">Software\$(var.MyProductName)</Property>
|
|
<Property Id="INSTALLDIR">
|
|
<RegistrySearch
|
|
Id="R.INSTALLDIR"
|
|
Root="HKLM"
|
|
Key="[P.RegistryKey]"
|
|
Name="InstallDir"
|
|
Type="raw" />
|
|
</Property>
|
|
<Directory Id="TARGETDIR" Name="SourceDir">
|
|
<Directory Id="ProgramFilesFolder">
|
|
<Directory Id="INSTALLDIR" Name="WinFsp">
|
|
<Directory Id="BINDIR" Name="bin" />
|
|
<Directory Id="INCDIR" Name="inc" />
|
|
<Directory Id="LIBDIR" Name="lib" />
|
|
<Directory Id="SMPDIR" Name="samples" />
|
|
</Directory>
|
|
</Directory>
|
|
</Directory>
|
|
<DirectoryRef Id="INSTALLDIR">
|
|
<Component Id="C.INSTALLDIR">
|
|
<RegistryValue
|
|
Root="HKLM"
|
|
Key="[P.RegistryKey]"
|
|
Name="InstallDir"
|
|
Type="string"
|
|
Value="[INSTALLDIR]" />
|
|
</Component>
|
|
</DirectoryRef>
|
|
<DirectoryRef Id="BINDIR" FileSource="..\build\$(var.Configuration)">
|
|
<Component Id="C.winfsp_x64.sys">
|
|
<File Name="winfsp-x64.sys" KeyPath="yes" />
|
|
</Component>
|
|
<Component Id="C.winfsp_x86.sys">
|
|
<File Name="winfsp-x86.sys" KeyPath="yes" />
|
|
</Component>
|
|
<Component Id="C.winfsp_x64.dll">
|
|
<File Name="winfsp-x64.dll" KeyPath="yes" />
|
|
</Component>
|
|
<Component Id="C.winfsp_x86.dll">
|
|
<File Name="winfsp-x86.dll" KeyPath="yes" />
|
|
</Component>
|
|
<Component Id="C.memfs_x64.exe">
|
|
<File Name="memfs-x64.exe" KeyPath="yes" />
|
|
</Component>
|
|
<Component Id="C.memfs_x86.exe">
|
|
<File Name="memfs-x86.exe" KeyPath="yes" />
|
|
</Component>
|
|
</DirectoryRef>
|
|
<DirectoryRef Id="INCDIR" FileSource="..\..\..\inc">
|
|
<Directory Id="INCDIR.winfsp" Name="winfsp">
|
|
<Component Id="C.fsctl.h">
|
|
<File Name="fsctl.h" KeyPath="yes" />
|
|
</Component>
|
|
<Component Id="C.winfsp.h">
|
|
<File Name="winfsp.h" KeyPath="yes" />
|
|
</Component>
|
|
</Directory>
|
|
</DirectoryRef>
|
|
<DirectoryRef Id="LIBDIR" FileSource="..\build\$(var.Configuration)">
|
|
<Component Id="C.winfsp_x64.lib">
|
|
<File Name="winfsp-x64.lib" KeyPath="yes" />
|
|
</Component>
|
|
<Component Id="C.winfsp_x86.lib">
|
|
<File Name="winfsp-x86.lib" KeyPath="yes" />
|
|
</Component>
|
|
</DirectoryRef>
|
|
<DirectoryRef Id="SMPDIR" FileSource="..\..\..\tst">
|
|
<Directory Id="SMPDIR.memfs" Name="memfs">
|
|
<Component Id="C.memfs.h">
|
|
<File Name="memfs.h" KeyPath="yes" />
|
|
</Component>
|
|
<Component Id="C.memfs.cpp">
|
|
<File Name="memfs.cpp" KeyPath="yes" />
|
|
</Component>
|
|
<Component Id="C.memfs_main.c">
|
|
<File Name="memfs-main.c" KeyPath="yes" />
|
|
</Component>
|
|
</Directory>
|
|
</DirectoryRef>
|
|
<ComponentGroup Id="C.WinFsp.bin">
|
|
<ComponentRef Id="C.winfsp_x64.sys" />
|
|
<ComponentRef Id="C.winfsp_x86.sys" />
|
|
<ComponentRef Id="C.winfsp_x64.dll" />
|
|
<ComponentRef Id="C.winfsp_x86.dll" />
|
|
<ComponentRef Id="C.memfs_x64.exe" />
|
|
<ComponentRef Id="C.memfs_x86.exe" />
|
|
</ComponentGroup>
|
|
<ComponentGroup Id="C.WinFsp.inc">
|
|
<ComponentRef Id="C.fsctl.h" />
|
|
<ComponentRef Id="C.winfsp.h" />
|
|
</ComponentGroup>
|
|
<ComponentGroup Id="C.WinFsp.lib">
|
|
<ComponentRef Id="C.winfsp_x64.lib" />
|
|
<ComponentRef Id="C.winfsp_x86.lib" />
|
|
</ComponentGroup>
|
|
<ComponentGroup Id="C.WinFsp.smp">
|
|
<ComponentRef Id="C.memfs.h" />
|
|
<ComponentRef Id="C.memfs.cpp" />
|
|
<ComponentRef Id="C.memfs_main.c" />
|
|
</ComponentGroup>
|
|
<Feature
|
|
Id="F.Main"
|
|
Level="1"
|
|
Title="$(var.MyProductName) $(var.MyVersion)"
|
|
Description="$(var.MyDescription)"
|
|
Display="expand"
|
|
ConfigurableDirectory="INSTALLDIR"
|
|
AllowAdvertise="no"
|
|
InstallDefault="local"
|
|
Absent="disallow">
|
|
<ComponentRef Id="C.INSTALLDIR" />
|
|
<Feature
|
|
Id="F.User"
|
|
Level="1"
|
|
Title="Core"
|
|
Description="The core $(var.MyProductName) files."
|
|
AllowAdvertise="no"
|
|
InstallDefault="local"
|
|
Absent="disallow">
|
|
<ComponentGroupRef Id="C.WinFsp.bin" />
|
|
</Feature>
|
|
<Feature
|
|
Id="F.Developer"
|
|
Level="1000"
|
|
Title="Developer"
|
|
Description="Additional files needed for development."
|
|
AllowAdvertise="no"
|
|
InstallDefault="local"
|
|
Absent="allow">
|
|
<ComponentGroupRef Id="C.WinFsp.inc" />
|
|
<ComponentGroupRef Id="C.WinFsp.lib" />
|
|
<ComponentGroupRef Id="C.WinFsp.smp" />
|
|
</Feature>
|
|
</Feature>
|
|
<UI Id="FeatureTree">
|
|
<UIRef Id="WixUI_FeatureTree" />
|
|
<!-- skip the license agreement dialog; higher Order takes priority (weird) -->
|
|
<Publish
|
|
Dialog="WelcomeDlg"
|
|
Control="Next"
|
|
Event="NewDialog"
|
|
Value="CustomizeDlg"
|
|
Order="10">NOT Installed</Publish>
|
|
<Publish
|
|
Dialog="CustomizeDlg"
|
|
Control="Back"
|
|
Event="NewDialog"
|
|
Value="WelcomeDlg"
|
|
Order="10">NOT Installed</Publish>
|
|
</UI>
|
|
<!--
|
|
Use a bunch of custom actions to register our FSD/DLL.
|
|
Turns out that Wix cannot be used to register legacy drivers or
|
|
Network Provider DLL's.
|
|
-->
|
|
<CustomAction
|
|
Id="A.WinFsp.x64.Register"
|
|
Execute="deferred"
|
|
Impersonate="no"
|
|
Directory="BINDIR"
|
|
ExeCommand=""[WindowsFolder]System32\regsvr32.exe" winfsp-x64.dll"
|
|
Return="check" />
|
|
<CustomAction
|
|
Id="A.WinFsp.x64.Unregister"
|
|
Execute="deferred"
|
|
Impersonate="no"
|
|
Directory="BINDIR"
|
|
ExeCommand=""[WindowsFolder]System32\regsvr32.exe" /u winfsp-x64.dll"
|
|
Return="ignore" />
|
|
<CustomAction
|
|
Id="A.WinFsp.x86.Register"
|
|
Execute="deferred"
|
|
Impersonate="no"
|
|
Directory="BINDIR"
|
|
ExeCommand=""[WindowsFolder]System32\regsvr32.exe" winfsp-x86.dll"
|
|
Return="check" />
|
|
<CustomAction
|
|
Id="A.WinFsp.x86.Unregister"
|
|
Execute="deferred"
|
|
Impersonate="no"
|
|
Directory="BINDIR"
|
|
ExeCommand=""[WindowsFolder]System32\regsvr32.exe" /u winfsp-x86.dll"
|
|
Return="ignore" />
|
|
<InstallExecuteSequence>
|
|
<!--
|
|
We want to register our FSD/DLL in all cases except on Uninstall.
|
|
The Uninstall condition can be identified as follows:
|
|
REMOVE ~= "ALL"
|
|
|
|
See http://stackoverflow.com/a/321874
|
|
-->
|
|
<Custom Action="A.WinFsp.x64.Register" After="InstallFiles">
|
|
VersionNT64 AND NOT (REMOVE ~= "ALL")
|
|
</Custom>
|
|
<Custom Action="A.WinFsp.x64.Unregister" Before="RemoveFiles">
|
|
VersionNT64 AND (REMOVE ~= "ALL")
|
|
</Custom>
|
|
<Custom Action="A.WinFsp.x86.Register" After="InstallFiles">
|
|
NOT VersionNT64 AND NOT (REMOVE ~= "ALL")
|
|
</Custom>
|
|
<Custom Action="A.WinFsp.x86.Unregister" Before="RemoveFiles">
|
|
NOT VersionNT64 AND (REMOVE ~= "ALL")
|
|
</Custom>
|
|
</InstallExecuteSequence>
|
|
</Product>
|
|
</Wix> |