aboutsummaryrefslogtreecommitdiffstats
path: root/wintun.proj
blob: 13707022a4250e11212973d3b6a98056edde7173 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?xml version="1.0" encoding="utf-8"?>
<!--
  SPDX-License-Identifier: GPL-2.0

  Copyright (C) 2019 WireGuard LLC. All Rights Reserved.
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">

  <!--
    General Properties
  -->
  <Import Project="wintun.props"/>
  <Import Project="wintun.vcxproj.user" Condition="exists('wintun.vcxproj.user')"/>

  <Target Name="Build" DependsOnTargets="Driver-x86;Driver-amd64;Driver-arm64"/>
  <Target Name="MSM" DependsOnTargets="MSM-x86;MSM-amd64"/>
  <Target Name="Clean">
    <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"/>
  </Target>
  <Target Name="Rebuild" DependsOnTargets="Clean;Build"/>

  <!--
    Driver Building
    Note: Use explicit Inputs/Outputs as WindowsDriver.Common.targets triggers driver re-packaging and signing on every invocation.
  -->
  <Target Name="Driver-x86"
    Outputs="x86\Release\wintun\wintun.sys;x86\Release\wintun\wintun.inf;x86\Release\wintun\wintun.cat"
    Inputs="atomic.h;undocumented.h;wintun.c;wintun.inf;wintun.props;wintun.rc;wintun.vcxproj">
    <MSBuild Projects="wintun.vcxproj" Targets="Build" 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="atomic.h;undocumented.h;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="atomic.h;undocumented.h;wintun.c;wintun.inf;wintun.props;wintun.rc;wintun.vcxproj">
    <MSBuild Projects="wintun.vcxproj" Targets="Build" Properties="Configuration=Release;Platform=ARM64"/>
  </Target>

  <!--
    installer.dll Building
  -->
  <Target Name="Installer-x86" DependsOnTargets="Driver-x86"
    Outputs="x86\Release\installer.dll">
    <MSBuild Projects="installer\installer.vcxproj" Targets="Build" Properties="Configuration=Release;Platform=Win32"/>
  </Target>
  <Target Name="Installer-amd64" DependsOnTargets="Driver-amd64"
    Outputs="amd64\Release\installer.dll">
    <MSBuild Projects="installer\installer.vcxproj" Targets="Build" Properties="Configuration=Release;Platform=x64"/>
  </Target>
  <Target Name="Installer-arm64" DependsOnTargets="Driver-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">
    <MSBuild Projects="wintun.vcxproj" Targets="sdv" Properties="Inputs=/check:*;Configuration=Release;Platform=x64"/>
  </Target>
  <Target Name="SDVView">
    <MSBuild Projects="wintun.vcxproj" Targets="sdv" Properties="Inputs=/view;Configuration=Release;Platform=x64"/>
  </Target>
  
  <!--
    Driver Verification Log
  -->
  <Target Name="DVL" DependsOnTargets="SDV"
    Outputs="wintun.DVL.XML"
    Inputs="$(SDVDir)SDV.DVL.xml;amd64\Release\vc.nativecodeanalysis.all.xml">
    <MSBuild Projects="wintun.vcxproj" Targets="dvl" Properties="Configuration=Release;Platform=x64"/>
  </Target>

  <!--
    MSM Building
  -->
  <Target Name="MSM-x86" DependsOnTargets="Installer-x86"
    Outputs="$(DistributionDir)wintun-x86-$(WintunVersionStr).msm">
    <MSBuild Projects="installer/installer.wixproj" Targets="Build" Properties="Configuration=Release;Platform=x86"/>
  </Target>
  <Target Name="MSM-amd64" DependsOnTargets="Installer-amd64"
    Outputs="$(DistributionDir)wintun-amd64-$(WintunVersionStr).msm">
    <MSBuild Projects="installer/installer.wixproj" Targets="Build" Properties="Configuration=Release;Platform=x64"/>
  </Target>
</Project>