aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--installer/installer.vcxproj41
-rw-r--r--installer/installer.vcxproj.filters3
-rw-r--r--installer/installer.wixproj76
-rw-r--r--installer/installer.wxs2
-rw-r--r--wintun.proj28
-rw-r--r--wintun.props3
6 files changed, 48 insertions, 105 deletions
diff --git a/installer/installer.vcxproj b/installer/installer.vcxproj
index 29a5cf1..d334ca6 100644
--- a/installer/installer.vcxproj
+++ b/installer/installer.vcxproj
@@ -111,8 +111,20 @@
<CodeAnalysisRuleSet>NativeRecommendedRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>true</RunCodeAnalysis>
<LocalDebuggerCommand>rundll32.exe</LocalDebuggerCommand>
- <LocalDebuggerCommandArguments>..\$(WintunPlatform)\$(Configuration)\installer.dll,InstallWintun</LocalDebuggerCommandArguments>
+ <LocalDebuggerCommandArguments>$(OutDir)$(TargetName)$(TargetExt),InstallWintun</LocalDebuggerCommandArguments>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+ <WixArch Condition="'$(Platform)'=='Win32'">x86</WixArch>
+ <WixArch Condition="'$(Platform)'=='x64'">x64</WixArch>
+ <WixArch Condition="'$(Platform)'=='ARM64'">arm64</WixArch>
+ <WixCandleFlags>$(WixCandleFlags) -nologo -arch $(WixArch) -dWINTUN_PLATFORM=$(WintunPlatform) -dWINTUN_VERSION=$(WintunVersion) -sw1086</WixCandleFlags>
+ <WixLightFlags>$(WixLightFlags) -nologo -b output_dir="$(OutDir.TrimEnd('\'))" -spdb -sw1076 -sw1079</WixLightFlags>
+ <WixOutputPath>$(OutDir)</WixOutputPath>
+ <WixOutputName>wintun</WixOutputName>
+ <WixOutputExt>.msm</WixOutputExt>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Release'">
+ <WixOutputPath>..\$(DistributionDir)</WixOutputPath>
+ <WixOutputName>wintun-$(WintunPlatform)-$(WintunVersionStr)</WixOutputName>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
@@ -171,7 +183,6 @@
</ItemGroup>
<ItemGroup>
<None Include="exports.def" />
- <None Include="installer.wixproj" />
<None Include="installer.wxs" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
@@ -182,7 +193,9 @@
<SigningCertificate Condition="$(SignMode)=='TestSign' And '$(TestCertificate)'!=''">$(TestCertificate)</SigningCertificate>
<SigningCertificate Condition="$(SignMode)=='ProductionSign' And '$(ProductionCertificate)'!=''">$(ProductionCertificate)</SigningCertificate>
<BuildDependsOn Condition="'$(SigningCertificate)'!='' And '$(TimeStampServer)'!=''">$(BuildDependsOn);SignTarget</BuildDependsOn>
- <CleanDependsOn>CleanSignTarget;$(CleanDependsOn)</CleanDependsOn>
+ <MSMDependsOn>$(MSMDependsOn);WixCompile;WixLink</MSMDependsOn>
+ <MSMDependsOn Condition="'$(SigningCertificate)'!='' And '$(TimeStampServer)'!=''">$(MSMDependsOn);WixSign</MSMDependsOn>
+ <CleanDependsOn>CleanSignTarget;WixClean;$(CleanDependsOn)</CleanDependsOn>
</PropertyGroup>
<Target Name="SignTarget" Inputs="$(TargetPath)" Outputs="$(IntermediateOutputPath)$(TargetName).sign">
<Exec Command="&quot;$(SignToolPath)&quot; sign /sha1 &quot;$(SigningCertificate)&quot; /fd sha256 /tr &quot;$(TimeStampServer)&quot; /td sha256 &quot;$(TargetPath)&quot;" />
@@ -191,4 +204,26 @@
<Target Name="CleanSignTarget">
<Delete Files="$(IntermediateOutputPath)$(TargetName).sign" />
</Target>
+ <Target Name="HashInstallerLibrary" DependsOnTargets="Build">
+ <GetFileHash Files="$(OutDir)$(TargetName)$(TargetExt)" Algorithm="SHA256" HashEncoding="hex">
+ <Output TaskParameter="Items" ItemName="InstallerLibraryHash" />
+ </GetFileHash>
+ <PropertyGroup>
+ <WixCandleFlags>$(WixCandleFlags) -dINSTALLER_LIBRARY_HASH=@(InstallerLibraryHash->Metadata('FileHash')) -dINSTALLER_LIBRARY_TIME=$([System.IO.File]::GetLastWriteTime('$(OutDir)$(TargetName)$(TargetExt)').Ticks)</WixCandleFlags>
+ </PropertyGroup>
+ </Target>
+ <Target Name="WixCompile" DependsOnTargets="HashInstallerLibrary" Inputs="installer.wxs" Outputs="$(IntDir)installer.wixobj">
+ <Exec Command="&quot;$(WIX)bin\candle.exe&quot; $(WixCandleFlags) -out &quot;$(IntDir)installer.wixobj&quot; installer.wxs" />
+ </Target>
+ <Target Name="WixLink" DependsOnTargets="Build;WixCompile" Inputs="$(IntDir)installer.wixobj;$(OutDir)$(TargetName)$(TargetExt)" Outputs="$(WixOutputPath)$(WixOutputName)$(WixOutputExt)">
+ <Exec Command="&quot;$(WIX)bin\light.exe&quot; $(WixLightFlags) -out &quot;$(WixOutputPath)$(WixOutputName)$(WixOutputExt)&quot; &quot;$(IntDir)installer.wixobj&quot;" />
+ </Target>
+ <Target Name="WixSign" DependsOnTargets="WixLink" Inputs="$(WixOutputPath)$(WixOutputName)$(WixOutputExt)" Outputs="$(IntDir)$(WixOutputName).sign">
+ <Exec Command="&quot;$(SignToolPath)&quot; sign /sha1 &quot;$(SigningCertificate)&quot; /fd sha256 /tr &quot;$(TimeStampServer)&quot; /td sha256 &quot;$(WixOutputPath)$(WixOutputName)$(WixOutputExt)&quot;" />
+ <Touch Files="$(IntDir)$(WixOutputName).sign" AlwaysCreate="true" />
+ </Target>
+ <Target Name="WixClean">
+ <Delete Files="$(IntDir)installer.wixobj;$(WixOutputPath)$(WixOutputName)$(WixOutputExt);$(IntDir)$(WixOutputName).sign" />
+ </Target>
+ <Target Name="MSM" DependsOnTargets="$(MSMDependsOn)" />
</Project> \ No newline at end of file
diff --git a/installer/installer.vcxproj.filters b/installer/installer.vcxproj.filters
index bfbd0ec..e9d0282 100644
--- a/installer/installer.vcxproj.filters
+++ b/installer/installer.vcxproj.filters
@@ -42,9 +42,6 @@
<None Include="exports.def">
<Filter>Source Files</Filter>
</None>
- <None Include="installer.wixproj">
- <Filter>MSM</Filter>
- </None>
<None Include="installer.wxs">
<Filter>MSM</Filter>
</None>
diff --git a/installer/installer.wixproj b/installer/installer.wixproj
deleted file mode 100644
index fd1d8c3..0000000
--- a/installer/installer.wixproj
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- SPDX-License-Identifier: GPL-2.0
-
- Copyright (C) 2018-2019 WireGuard LLC. All Rights Reserved.
--->
-<Project
- xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
- ToolsVersion="4.0"
- InitialTargets="EnsureWixToolsetInstalled;HashInstallerLibrary"
- DefaultTargets="Build">
- <PropertyGroup>
- <Configuration Condition="'$(Configuration)'==''">Release</Configuration>
- <Platform Condition="'$(Platform)'==''">x64</Platform>
- <ProjectGuid>{F95A1EBF-1E19-47D4-9D8C-4F0C41B9E3B8}</ProjectGuid>
- <ProjectName>wintun</ProjectName>
- <OutputType>Module</OutputType>
- <DefineSolutionProperties>false</DefineSolutionProperties>
- </PropertyGroup>
-
- <Import Project="..\wintun.props" />
-
- <PropertyGroup>
- <IntermediateOutputPath>..\$(WintunPlatform)\$(Configuration)\</IntermediateOutputPath>
- <OutputPath>..\$(WintunPlatform)\$(Configuration)\</OutputPath>
- <OutputName>$(ProjectName)</OutputName>
- <DefineConstants>WINTUN_VERSION=$(WintunVersion);$(DefineConstants)</DefineConstants>
- <SuppressSpecificWarnings>1006;1086;$(SuppressSpecificWarnings)</SuppressSpecificWarnings>
- <LinkerSuppressSpecificWarnings>1079;1103;$(LinkerSuppressSpecificWarnings)</LinkerSuppressSpecificWarnings>
- <SuppressIces>ICE30;ICE49;$(SuppressIces)</SuppressIces>
- <LinkerAdditionalOptions>-b output_dir="$(IntermediateOutputPath.TrimEnd('\'))" $(LinkerAdditionalOptions)</LinkerAdditionalOptions>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)'=='Release'">
- <SuppressPdbOutput>true</SuppressPdbOutput>
- <OutputPath>..\$(DistributionDir)</OutputPath>
- <OutputName>$(ProjectName)-$(WintunPlatform)-$(WintunVersionStr)</OutputName>
- </PropertyGroup>
-
- <ItemGroup>
- <Compile Include="installer.wxs" />
- </ItemGroup>
-
- <Import Project="$(MSBuildProjectName).user" Condition="exists('$(MSBuildProjectName).user')" />
- <Import Project="$(WixTargetsPath)" Condition="'$(WixTargetsPath)'!=''" />
- <Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets" Condition="'$(WixTargetsPath)'=='' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets')" />
- <Target Name="EnsureWixToolsetInstalled" Condition="'$(WixTargetsImported)'!='true'">
- <Error Text="The WiX Toolset v3.11 (or newer) build tools must be installed to build this project. To download the WiX Toolset, see http://wixtoolset.org/releases/" />
- </Target>
-
- <Target Name="HashInstallerLibrary">
- <GetFileHash Files="$(IntermediateOutputPath)installer.dll" Algorithm="SHA256" HashEncoding="hex">
- <Output TaskParameter="Items" ItemName="InstallerLibraryHash" />
- </GetFileHash>
- <PropertyGroup>
- <DefineConstants>$(DefineConstants);INSTALLER_LIBRARY_HASH=@(InstallerLibraryHash->Metadata('FileHash'));INSTALLER_LIBRARY_TIME=$([System.IO.File]::GetLastWriteTime('$(IntermediateOutputPath)installer.dll').Ticks)</DefineConstants>
- </PropertyGroup>
- </Target>
-
- <Import Project="..\wintun.vcxproj.user" Condition="exists('..\wintun.vcxproj.user')" />
- <PropertyGroup>
- <SigningCertificate Condition="$(SignMode)=='TestSign' And '$(TestCertificate)'!=''">$(TestCertificate)</SigningCertificate>
- <SigningCertificate Condition="$(SignMode)=='ProductionSign' And '$(ProductionCertificate)'!=''">$(ProductionCertificate)</SigningCertificate>
- <BuildDependsOn Condition="'$(SigningCertificate)'!='' And '$(TimeStampServer)'!=''">$(BuildDependsOn);SignTarget</BuildDependsOn>
- <CleanDependsOn>CleanSignTarget;$(CleanDependsOn)</CleanDependsOn>
- </PropertyGroup>
- <Target
- Name="SignTarget"
- Inputs="$(TargetPath)"
- Outputs="$(IntermediateOutputPath)$(TargetName).sign">
- <Exec Command="&quot;$(SignToolPath)&quot; sign /sha1 &quot;$(SigningCertificate)&quot; /fd sha256 /tr &quot;$(TimeStampServer)&quot; /td sha256 &quot;$(TargetPath)&quot;" />
- <Touch Files="$(IntermediateOutputPath)$(TargetName).sign" AlwaysCreate="true" />
- </Target>
- <Target Name="CleanSignTarget">
- <Delete Files="$(IntermediateOutputPath)$(TargetName).sign" />
- </Target>
-</Project>
diff --git a/installer/installer.wxs b/installer/installer.wxs
index dd2f1c8..1883618 100644
--- a/installer/installer.wxs
+++ b/installer/installer.wxs
@@ -38,7 +38,7 @@
<Custom Action="ProcessWintun" After="InstallFiles" />
</InstallExecuteSequence>
- <?if $(var.Platform) = "x86"?>
+ <?if $(var.WINTUN_PLATFORM) = "x86"?>
<CustomAction Id="WoW64Unsupported" Error="You are attempting to install the 32-bit variant of [ProductName] on a 64-bit operating system, which is not supported. Please install the 64-bit variant instead." />
<InstallExecuteSequence>
<Custom Action="WoW64Unsupported" After="LaunchConditions"><![CDATA[VersionNT64]]></Custom>
diff --git a/wintun.proj b/wintun.proj
index 04ff4da..ea24c0d 100644
--- a/wintun.proj
+++ b/wintun.proj
@@ -48,22 +48,6 @@
</Target>
<!--
- installer.dll Building
- -->
- <Target Name="Installer-x86"
- Outputs="x86\Release\installer.dll">
- <MSBuild Projects="installer\installer.vcxproj" Targets="Build" Properties="Configuration=Release;Platform=Win32" />
- </Target>
- <Target Name="Installer-amd64"
- Outputs="amd64\Release\installer.dll">
- <MSBuild Projects="installer\installer.vcxproj" Targets="Build" Properties="Configuration=Release;Platform=x64" />
- </Target>
- <Target Name="Installer-arm64"
- Outputs="arm64\Release\installer.dll">
- <MSBuild Projects="installer\installer.vcxproj" Targets="Build" Properties="Configuration=Release;Platform=ARM64" />
- </Target>
-
- <!--
Static Driver Verifier
-->
<Target Name="SDV" Outputs="$(SDVDir)SDV.DVL.xml;amd64\Release\vc.nativecodeanalysis.all.xml">
@@ -85,12 +69,16 @@
<!--
MSM Building
-->
- <Target Name="MSM-x86" DependsOnTargets="Installer-x86"
+ <Target Name="MSM-x86"
Outputs="$(DistributionDir)wintun-x86-$(WintunVersionStr).msm">
- <MSBuild Projects="installer/installer.wixproj" Targets="Build" Properties="Configuration=Release;Platform=x86" />
+ <MSBuild Projects="installer\installer.vcxproj" Targets="MSM" Properties="Configuration=Release;Platform=Win32" />
</Target>
- <Target Name="MSM-amd64" DependsOnTargets="Installer-amd64"
+ <Target Name="MSM-amd64"
Outputs="$(DistributionDir)wintun-amd64-$(WintunVersionStr).msm">
- <MSBuild Projects="installer/installer.wixproj" Targets="Build" Properties="Configuration=Release;Platform=x64" />
+ <MSBuild Projects="installer\installer.vcxproj" Targets="MSM" Properties="Configuration=Release;Platform=x64" />
+ </Target>
+ <Target Name="MSM-ARM64"
+ Outputs="$(DistributionDir)wintun-arm64-$(WintunVersionStr).msm">
+ <MSBuild Projects="installer\installer.vcxproj" Targets="MSM" Properties="Configuration=Release;Platform=ARM64" />
</Target>
</Project>
diff --git a/wintun.props b/wintun.props
index b09cde7..84fae52 100644
--- a/wintun.props
+++ b/wintun.props
@@ -11,8 +11,7 @@
<WintunVersionStr>0.6</WintunVersionStr><!-- Used in filenames and ProductVersion resource string, may contain strings. -->
<WintunVersion>$(WintunVersionMaj).$(WintunVersionMin)</WintunVersion><!-- Used for versioning, must be n.n[.n[.n]]. -->
- <!-- .vcxproj and .wixproj are using different platform names. -->
- <WintunPlatform Condition="'$(Platform)'=='x86'">x86</WintunPlatform>
+ <!-- .vcxproj are using different platform names. -->
<WintunPlatform Condition="'$(Platform)'=='Win32'">x86</WintunPlatform>
<WintunPlatform Condition="'$(Platform)'=='x64'">amd64</WintunPlatform>
<WintunPlatform Condition="'$(Platform)'=='ARM64'">arm64</WintunPlatform>