aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md20
-rw-r--r--wintun.proj77
2 files changed, 45 insertions, 52 deletions
diff --git a/README.md b/README.md
index 5ac7773..88372a8 100644
--- a/README.md
+++ b/README.md
@@ -37,24 +37,24 @@ If you already have `wintun.vcxproj.user` file, just add the `<PropertyGroup>` s
Open _Developer Command Prompt for VS 2017_ and use the `msbuild` command:
```
-msbuild wintun.proj [/t:<target>] [/p:Configuration=<configuration>] [/p:Platform=<platform>]
+msbuild wintun.proj [/t:<target>]
```
### Targets
- - `Build`: Builds the driver. This is the default target.
+ - `Build`: Builds the driver release configurations of all supported platforms. This is the default target.
- `Clean`: Deletes all intermediate and output files.
- `Rebuild`: Alias for `Clean` followed by `Build`.
- - `SDV`: Runs Static Driver Verifier, which includes a clean driver build, only for release configurations.
+ - `SDV`: Runs Static Driver Verifier, which includes a clean driver build, only for AMD64 release configuration.
- - `DVL`: Runs the `SDV`, and creates a Driver Verification Log, only for release configurations.
+ - `DVL`: Runs the `SDV`, and creates a Driver Verification Log, only for AMD64 release configurations.
- - `MSM`: Builds Microsoft Installer Merge Module in `<output folder>\wintun-<platform>-<version>.msm`.
+ - `MSM`: Builds Microsoft Installer Merge Modules in `<output folder>\wintun-<platform>-<version>.msm`.
-The driver output folder is:
+The driver output folders are:
Platform and Configuration | Folder
-------------------------- | --------------------
@@ -65,14 +65,6 @@ AMD64 Release | `amd64\Release\wintun`
ARM64 Debug | `arm64\Debug\wintun`
ARM64 Release | `arm64\Release\wintun`
-### Properties
-
-Properties may be defined as environment variables, or specified on the `msbuild` command line.
-
- - `Configuration`: Specifies configuration to build or clean. May be `Debug` or `Release` (default).
-
- - `Platform`: Specifies driver platform to build. May be `x86` or `amd64` (default), or `arm64`.
-
## Usage
diff --git a/wintun.proj b/wintun.proj
index 6764197..68e9122 100644
--- a/wintun.proj
+++ b/wintun.proj
@@ -11,31 +11,15 @@
<!--
General Properties
-->
- <PropertyGroup>
- <Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
- <Platform Condition="'$(Platform)' == ''">amd64</Platform>
- <OutputDir>$(Platform)\$(Configuration)\</OutputDir>
- </PropertyGroup>
-
<Import Project="wintun.props"/>
<Import Project="wintun.vcxproj.user" Condition="exists('wintun.vcxproj.user')"/>
- <PropertyGroup Condition="'$(Platform)' == 'x86'">
- <MSBuildPlatform>Win32</MSBuildPlatform>
- <WiXPlatform>x86</WiXPlatform>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Platform)' == 'amd64'">
- <MSBuildPlatform>x64</MSBuildPlatform>
- <WiXPlatform>x64</WiXPlatform>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Platform)' == 'arm64'">
- <MSBuildPlatform>ARM64</MSBuildPlatform>
- <WiXPlatform>arm64</WiXPlatform> <!-- TODO: Follow WiX ARM64 support. -->
- </PropertyGroup>
-
- <Target Name="Build" DependsOnTargets="Driver"/>
+ <Target Name="Build" DependsOnTargets="Driver-x86;Driver-amd64;Driver-arm64"/>
+ <Target Name="MSM" DependsOnTargets="MSM-x86;MSM-amd64"/>
<Target Name="Clean">
- <RemoveDir Directories="$(OutputDir)"/>
+ <RemoveDir Directories="x86\Release\"/>
+ <RemoveDir Directories="amd64\Release\"/>
+ <RemoveDir Directories="arm64\Release\"/>
<RemoveDir Directories="$(SDVDir)"/>
<RemoveDir Directories="$(DistributionDir)"/>
<Delete Files="smvbuild.log;smvstats.txt;wintun.DVL.XML"/>
@@ -46,24 +30,40 @@
Driver Building
Note: Use explicit Inputs/Outputs as WindowsDriver.Common.targets triggers driver re-packaging and signing on every invocation.
-->
- <Target Name="Driver"
- Outputs="$(OutputDir)wintun\wintun.sys;$(OutputDir)wintun\wintun.inf;$(OutputDir)wintun\wintun.cat"
+ <Target Name="Driver-x86"
+ Outputs="x86\Release\wintun\wintun.sys;x86\Release\wintun\wintun.inf;x86\Release\wintun\wintun.cat"
Inputs="wintun.c;wintun.inf;wintun.props;wintun.rc;wintun.vcxproj">
<MSBuild
Projects="wintun.vcxproj"
Targets="Build"
- Properties="Configuration=$(Configuration);Platform=$(MSBuildPlatform)"/>
+ Properties="Configuration=Release;Platform=Win32"/>
+ </Target>
+ <Target Name="Driver-amd64"
+ Outputs="amd64\Release\wintun\wintun.sys;amd64\Release\wintun\wintun.inf;amd64\Release\wintun\wintun.cat"
+ Inputs="wintun.c;wintun.inf;wintun.props;wintun.rc;wintun.vcxproj">
+ <MSBuild
+ Projects="wintun.vcxproj"
+ Targets="Build"
+ Properties="Configuration=Release;Platform=x64"/>
+ </Target>
+ <Target Name="Driver-arm64"
+ Outputs="arm64\Release\wintun\wintun.sys;arm64\Release\wintun\wintun.inf;arm64\Release\wintun\wintun.cat"
+ Inputs="wintun.c;wintun.inf;wintun.props;wintun.rc;wintun.vcxproj">
+ <MSBuild
+ Projects="wintun.vcxproj"
+ Targets="Build"
+ Properties="Configuration=Release;Platform=ARM64"/>
</Target>
<!--
Static Driver Verifier
-->
<Target Name="SDV"
- Outputs="$(SDVDir)SDV.DVL.xml;$(OutputDir)vc.nativecodeanalysis.all.xml">
+ Outputs="$(SDVDir)SDV.DVL.xml;amd64\Release\vc.nativecodeanalysis.all.xml">
<MSBuild
Projects="wintun.vcxproj"
Targets="sdv"
- Properties="Inputs=/check:*;Configuration=$(Configuration);Platform=$(MSBuildPlatform)"/>
+ Properties="Inputs=/check:*;Configuration=Release;Platform=x64"/>
</Target>
<!--
@@ -72,29 +72,30 @@
<Target Name="DVL"
DependsOnTargets="SDV"
Outputs="wintun.DVL.XML"
- Inputs="$(SDVDir)SDV.DVL.xml;$(OutputDir)vc.nativecodeanalysis.all.xml">
+ Inputs="$(SDVDir)SDV.DVL.xml;amd64\Release\vc.nativecodeanalysis.all.xml">
<MSBuild
Projects="wintun.vcxproj"
Targets="dvl"
- Properties="Configuration=$(Configuration);Platform=$(MSBuildPlatform)"/>
+ Properties="Configuration=Release;Platform=x64"/>
</Target>
<!--
MSM Building
-->
- <PropertyGroup>
- <MSMDir>$(DistributionDir)</MSMDir>
- <MSMName>wintun-$(WintunPlatform)-$(WintunVersionStr)</MSMName>
- <MSMExt>.msm</MSMExt>
- <MSMFileName>$(MSMName)$(MSMExt)</MSMFileName>
- <MSMPath>$(MSMDir)$(MSMFileName)</MSMPath>
- </PropertyGroup>
- <Target Name="MSM"
+ <Target Name="MSM-x86"
+ DependsOnTargets="Build"
+ Outputs="$(DistributionDir)wintun-x86-$(WintunVersionStr).msm">
+ <MSBuild
+ Projects="wintun.wixproj"
+ Targets="Build"
+ Properties="Configuration=Release;Platform=x86"/>
+ </Target>
+ <Target Name="MSM-amd64"
DependsOnTargets="Build"
- Outputs="$(MSMPath)">
+ Outputs="$(DistributionDir)wintun-amd64-$(WintunVersionStr).msm">
<MSBuild
Projects="wintun.wixproj"
Targets="Build"
- Properties="Configuration=$(Configuration);Platform=$(WiXPlatform)"/>
+ Properties="Configuration=Release;Platform=x64"/>
</Target>
</Project>