Browse code

msvc: standalone building

This finally enables standalone MSVC building, without
dependency on openvpn-build/msvc. This makes MSVC build
process much simpler.

Dependencies are managed by vcpkg. To install dependencies, run:

> vcpkg --overlay-ports=<openvpn>\contrib\vcpkg-ports
--overlay-triplets=<openvpn>\contrib\vcpkg-triplets install
lz4:x64-windows-ovpn lzo:x64-windows-ovpn
openssl-windows:x64-windows-ovpn pkcs11-helper:x64-windows-ovpn
tap-windows6:x64-windows-ovpn

To build for other arch, use x86-windows-ovpn or arm64-windows-ovpn.
Custom triplets are defines so that lz4 is linked statically and
other libraries dynamically.

Since we don't have CMake support yet, we cannot use vcpkg manifest
mode, since it doesn't work with overlay ports
(https://github.com/microsoft/vcpkg/issues/12289),
therefore this one-time manual dependency installation is required.

While on it, bump msvc-generate project target version to VS2019 and
cleanup leftovers from compat.vcxproj.filters.

Signed-off-by: Lev Stipakov <lev@openvpn.net>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20210514045704.686-1-lstipakov@gmail.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg22389.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>

Lev Stipakov authored on 2021/05/14 13:57:04
Showing 10 changed files
... ...
@@ -30,32 +30,32 @@
30 30
     <ProjectGuid>{8598C2C8-34C4-47A1-99B0-7C295A890615}</ProjectGuid>
31 31
     <RootNamespace>msvc-generate</RootNamespace>
32 32
     <Keyword>MakeFileProj</Keyword>
33
-    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
33
+    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
34 34
   </PropertyGroup>
35 35
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
36 36
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
37 37
     <ConfigurationType>Makefile</ConfigurationType>
38
-    <PlatformToolset>v141</PlatformToolset>
38
+    <PlatformToolset>v142</PlatformToolset>
39 39
   </PropertyGroup>
40 40
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
41 41
     <ConfigurationType>Makefile</ConfigurationType>
42
-    <PlatformToolset>v141</PlatformToolset>
42
+    <PlatformToolset>v142</PlatformToolset>
43 43
   </PropertyGroup>
44 44
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
45 45
     <ConfigurationType>Makefile</ConfigurationType>
46
-    <PlatformToolset>v141</PlatformToolset>
46
+    <PlatformToolset>v142</PlatformToolset>
47 47
   </PropertyGroup>
48 48
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
49 49
     <ConfigurationType>Makefile</ConfigurationType>
50
-    <PlatformToolset>v141</PlatformToolset>
50
+    <PlatformToolset>v142</PlatformToolset>
51 51
   </PropertyGroup>
52 52
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
53 53
     <ConfigurationType>Makefile</ConfigurationType>
54
-    <PlatformToolset>v141</PlatformToolset>
54
+    <PlatformToolset>v142</PlatformToolset>
55 55
   </PropertyGroup>
56 56
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
57 57
     <ConfigurationType>Makefile</ConfigurationType>
58
-    <PlatformToolset>v141</PlatformToolset>
58
+    <PlatformToolset>v142</PlatformToolset>
59 59
   </PropertyGroup>
60 60
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
61 61
   <ImportGroup Label="ExtensionSettings">
62 62
new file mode 100644
... ...
@@ -0,0 +1,7 @@
0
+set(VCPKG_TARGET_ARCHITECTURE arm64)
1
+set(VCPKG_CRT_LINKAGE dynamic)
2
+set(VCPKG_LIBRARY_LINKAGE dynamic)
3
+
4
+if(PORT STREQUAL "lz4")
5
+    set(VCPKG_LIBRARY_LINKAGE static)
6
+endif()
0 7
new file mode 100644
... ...
@@ -0,0 +1,7 @@
0
+set(VCPKG_TARGET_ARCHITECTURE x64)
1
+set(VCPKG_CRT_LINKAGE dynamic)
2
+set(VCPKG_LIBRARY_LINKAGE dynamic)
3
+
4
+if(PORT STREQUAL "lz4")
5
+    set(VCPKG_LIBRARY_LINKAGE static)
6
+endif()
0 7
new file mode 100644
... ...
@@ -0,0 +1,7 @@
0
+set(VCPKG_TARGET_ARCHITECTURE x86)
1
+set(VCPKG_CRT_LINKAGE dynamic)
2
+set(VCPKG_LIBRARY_LINKAGE dynamic)
3
+
4
+if(PORT STREQUAL "lz4")
5
+    set(VCPKG_LIBRARY_LINKAGE static)
6
+endif()
... ...
@@ -97,39 +97,57 @@
97 97
   <PropertyGroup>
98 98
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
99 99
   </PropertyGroup>
100
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
101
+    <VcpkgEnabled>true</VcpkgEnabled>
102
+  </PropertyGroup>
103
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
104
+    <VcpkgEnabled>true</VcpkgEnabled>
105
+  </PropertyGroup>
106
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
107
+    <VcpkgEnabled>true</VcpkgEnabled>
108
+  </PropertyGroup>
109
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
110
+    <VcpkgEnabled>true</VcpkgEnabled>
111
+  </PropertyGroup>
112
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
113
+    <VcpkgEnabled>true</VcpkgEnabled>
114
+  </PropertyGroup>
115
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
116
+    <VcpkgEnabled>true</VcpkgEnabled>
117
+  </PropertyGroup>
100 118
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
101 119
     <ClCompile>
102
-      <AdditionalIncludeDirectories>$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
120
+      <AdditionalIncludeDirectories>$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
103 121
       <PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
104 122
     </ClCompile>
105 123
   </ItemDefinitionGroup>
106 124
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
107 125
     <ClCompile>
108
-      <AdditionalIncludeDirectories>$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
126
+      <AdditionalIncludeDirectories>$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
109 127
       <PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
110 128
     </ClCompile>
111 129
   </ItemDefinitionGroup>
112 130
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
113 131
     <ClCompile>
114
-      <AdditionalIncludeDirectories>$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
132
+      <AdditionalIncludeDirectories>$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
115 133
       <PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
116 134
     </ClCompile>
117 135
   </ItemDefinitionGroup>
118 136
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
119 137
     <ClCompile>
120
-      <AdditionalIncludeDirectories>$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
138
+      <AdditionalIncludeDirectories>$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
121 139
       <PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
122 140
     </ClCompile>
123 141
   </ItemDefinitionGroup>
124 142
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
125 143
     <ClCompile>
126
-      <AdditionalIncludeDirectories>$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
144
+      <AdditionalIncludeDirectories>$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
127 145
       <PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
128 146
     </ClCompile>
129 147
   </ItemDefinitionGroup>
130 148
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
131 149
     <ClCompile>
132
-      <AdditionalIncludeDirectories>$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
150
+      <AdditionalIncludeDirectories>$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
133 151
       <PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
134 152
     </ClCompile>
135 153
   </ItemDefinitionGroup>
... ...
@@ -24,12 +24,6 @@
24 24
     <ClCompile Include="compat-gettimeofday.c">
25 25
       <Filter>Source Files</Filter>
26 26
     </ClCompile>
27
-    <ClCompile Include="compat-inet_ntop.c">
28
-      <Filter>Source Files</Filter>
29
-    </ClCompile>
30
-    <ClCompile Include="compat-inet_pton.c">
31
-      <Filter>Source Files</Filter>
32
-    </ClCompile>
33 27
     <ClCompile Include="compat-daemon.c">
34 28
       <Filter>Source Files</Filter>
35 29
     </ClCompile>
... ...
@@ -115,92 +115,116 @@
115 115
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
116 116
     <GenerateManifest>false</GenerateManifest>
117 117
   </PropertyGroup>
118
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
119
+    <VcpkgEnabled>true</VcpkgEnabled>
120
+    <VcpkgTriplet>arm64-windows-ovpn</VcpkgTriplet>
121
+  </PropertyGroup>
122
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
123
+    <VcpkgEnabled>true</VcpkgEnabled>
124
+    <VcpkgTriplet>arm64-windows-ovpn</VcpkgTriplet>
125
+  </PropertyGroup>
126
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
127
+    <VcpkgEnabled>true</VcpkgEnabled>
128
+    <VcpkgTriplet>x86-windows-ovpn</VcpkgTriplet>
129
+  </PropertyGroup>
130
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
131
+    <VcpkgEnabled>true</VcpkgEnabled>
132
+    <VcpkgTriplet>x86-windows-ovpn</VcpkgTriplet>
133
+  </PropertyGroup>
134
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
135
+    <VcpkgEnabled>true</VcpkgEnabled>
136
+    <VcpkgTriplet>x64-windows-ovpn</VcpkgTriplet>
137
+  </PropertyGroup>
138
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
139
+    <VcpkgEnabled>true</VcpkgEnabled>
140
+    <VcpkgTriplet>x64-windows-ovpn</VcpkgTriplet>
141
+  </PropertyGroup>
118 142
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
119 143
     <ClCompile>
120
-      <AdditionalIncludeDirectories>..\compat;$(TAP_WINDOWS_HOME)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
121 144
       <PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
122 145
       <UndefinePreprocessorDefinitions>%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
123 146
       <WarningLevel>Level2</WarningLevel>
124 147
       <TreatWarningAsError>true</TreatWarningAsError>
148
+      <AdditionalIncludeDirectories>..\compat;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
125 149
     </ClCompile>
126 150
     <ResourceCompile />
127 151
     <Link>
128
-      <AdditionalDependencies>legacy_stdio_definitions.lib;Ncrypt.lib;libssl.lib;libcrypto.lib;lzo2.lib;pkcs11-helper.dll.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
152
+      <AdditionalDependencies>Ncrypt.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;Advapi32.lib</AdditionalDependencies>
129 153
       <AdditionalLibraryDirectories>$(OPENSSL_HOME)/lib;$(LZO_HOME)/lib;$(PKCS11H_HOME)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
130 154
       <SubSystem>Console</SubSystem>
131 155
     </Link>
132 156
   </ItemDefinitionGroup>
133 157
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
134 158
     <ClCompile>
135
-      <AdditionalIncludeDirectories>..\compat;$(TAP_WINDOWS_HOME)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
136 159
       <PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
137 160
       <UndefinePreprocessorDefinitions>%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
138 161
       <WarningLevel>Level2</WarningLevel>
139 162
       <TreatWarningAsError>true</TreatWarningAsError>
163
+      <AdditionalIncludeDirectories>..\compat;$(SolutionDir)include;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
140 164
     </ClCompile>
141 165
     <ResourceCompile />
142 166
     <Link>
143
-      <AdditionalDependencies>legacy_stdio_definitions.lib;Ncrypt.lib;libssl.lib;libcrypto.lib;lzo2.lib;pkcs11-helper.dll.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
167
+      <AdditionalDependencies>Ncrypt.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;Advapi32.lib</AdditionalDependencies>
144 168
       <AdditionalLibraryDirectories>$(OPENSSL_HOME)/lib;$(LZO_HOME)/lib;$(PKCS11H_HOME)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
145 169
       <SubSystem>Console</SubSystem>
146 170
     </Link>
147 171
   </ItemDefinitionGroup>
148 172
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
149 173
     <ClCompile>
150
-      <AdditionalIncludeDirectories>..\compat;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
151 174
       <PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
152 175
       <UndefinePreprocessorDefinitions>%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
153 176
       <WarningLevel>Level2</WarningLevel>
154 177
       <TreatWarningAsError>true</TreatWarningAsError>
178
+      <AdditionalIncludeDirectories>..\compat;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
155 179
     </ClCompile>
156 180
     <ResourceCompile />
157 181
     <Link>
158
-      <AdditionalDependencies>legacy_stdio_definitions.lib;Ncrypt.lib;libssl.lib;libcrypto.lib;lzo2.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
182
+      <AdditionalDependencies>Ncrypt.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;Advapi32.lib</AdditionalDependencies>
159 183
       <AdditionalLibraryDirectories>$(OPENSSL_HOME)/lib;$(LZO_HOME)/lib;$(PKCS11H_HOME)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
160 184
       <SubSystem>Console</SubSystem>
161 185
     </Link>
162 186
   </ItemDefinitionGroup>
163 187
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
164 188
     <ClCompile>
165
-      <AdditionalIncludeDirectories>..\compat;$(TAP_WINDOWS_HOME)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
166 189
       <PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
167 190
       <UndefinePreprocessorDefinitions>%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
168 191
       <WarningLevel>Level2</WarningLevel>
169 192
       <TreatWarningAsError>true</TreatWarningAsError>
193
+      <AdditionalIncludeDirectories>..\compat;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
170 194
     </ClCompile>
171 195
     <ResourceCompile />
172 196
     <Link>
173
-      <AdditionalDependencies>legacy_stdio_definitions.lib;Ncrypt.lib;libssl.lib;libcrypto.lib;lzo2.lib;pkcs11-helper.dll.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
197
+      <AdditionalDependencies>Ncrypt.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;Advapi32.lib</AdditionalDependencies>
174 198
       <AdditionalLibraryDirectories>$(OPENSSL_HOME)/lib;$(LZO_HOME)/lib;$(PKCS11H_HOME)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
175 199
       <SubSystem>Console</SubSystem>
176 200
     </Link>
177 201
   </ItemDefinitionGroup>
178 202
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
179 203
     <ClCompile>
180
-      <AdditionalIncludeDirectories>..\compat;$(TAP_WINDOWS_HOME)/include;$(OPENSSL_HOME)/include;$(LZO_HOME)/include;$(PKCS11H_HOME)/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
181 204
       <PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
182 205
       <UndefinePreprocessorDefinitions>%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
183 206
       <WarningLevel>Level2</WarningLevel>
184 207
       <TreatWarningAsError>true</TreatWarningAsError>
208
+      <AdditionalIncludeDirectories>..\compat;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
185 209
     </ClCompile>
186 210
     <ResourceCompile />
187 211
     <Link>
188
-      <AdditionalDependencies>legacy_stdio_definitions.lib;Ncrypt.lib;libssl.lib;libcrypto.lib;lzo2.lib;pkcs11-helper.dll.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
212
+      <AdditionalDependencies>Ncrypt.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;Advapi32.lib</AdditionalDependencies>
189 213
       <AdditionalLibraryDirectories>$(OPENSSL_HOME)/lib;$(LZO_HOME)/lib;$(PKCS11H_HOME)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
190 214
       <SubSystem>Console</SubSystem>
191 215
     </Link>
192 216
   </ItemDefinitionGroup>
193 217
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
194 218
     <ClCompile>
195
-      <AdditionalIncludeDirectories>..\compat;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
196 219
       <PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
197 220
       <UndefinePreprocessorDefinitions>%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
198 221
       <WarningLevel>Level2</WarningLevel>
199 222
       <TreatWarningAsError>true</TreatWarningAsError>
223
+      <AdditionalIncludeDirectories>..\compat;$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
200 224
     </ClCompile>
201 225
     <ResourceCompile />
202 226
     <Link>
203
-      <AdditionalDependencies>legacy_stdio_definitions.lib;Ncrypt.lib;libssl.lib;libcrypto.lib;lzo2.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
227
+      <AdditionalDependencies>Ncrypt.lib;gdi32.lib;ws2_32.lib;wininet.lib;crypt32.lib;iphlpapi.lib;winmm.lib;Fwpuclnt.lib;Rpcrt4.lib;setupapi.lib;Advapi32.lib</AdditionalDependencies>
204 228
       <AdditionalLibraryDirectories>$(OPENSSL_HOME)/lib;$(LZO_HOME)/lib;$(PKCS11H_HOME)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
205 229
       <SubSystem>Console</SubSystem>
206 230
     </Link>
... ...
@@ -111,6 +111,24 @@
111 111
     <Import Project="openvpnmsica-Release.props" />
112 112
   </ImportGroup>
113 113
   <PropertyGroup Label="UserMacros" />
114
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
115
+    <VcpkgEnabled>true</VcpkgEnabled>
116
+  </PropertyGroup>
117
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
118
+    <VcpkgEnabled>true</VcpkgEnabled>
119
+  </PropertyGroup>
120
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
121
+    <VcpkgEnabled>true</VcpkgEnabled>
122
+  </PropertyGroup>
123
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
124
+    <VcpkgEnabled>true</VcpkgEnabled>
125
+  </PropertyGroup>
126
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
127
+    <VcpkgEnabled>true</VcpkgEnabled>
128
+  </PropertyGroup>
129
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
130
+    <VcpkgEnabled>true</VcpkgEnabled>
131
+  </PropertyGroup>
114 132
   <ItemGroup>
115 133
     <ClCompile Include="..\tapctl\error.c" />
116 134
     <ClCompile Include="..\tapctl\tap.c" />
... ...
@@ -97,6 +97,24 @@
97 97
   <PropertyGroup>
98 98
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
99 99
   </PropertyGroup>
100
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
101
+    <VcpkgEnabled>true</VcpkgEnabled>
102
+  </PropertyGroup>
103
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
104
+    <VcpkgEnabled>true</VcpkgEnabled>
105
+  </PropertyGroup>
106
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
107
+    <VcpkgEnabled>true</VcpkgEnabled>
108
+  </PropertyGroup>
109
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
110
+    <VcpkgEnabled>true</VcpkgEnabled>
111
+  </PropertyGroup>
112
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
113
+    <VcpkgEnabled>true</VcpkgEnabled>
114
+  </PropertyGroup>
115
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
116
+    <VcpkgEnabled>true</VcpkgEnabled>
117
+  </PropertyGroup>
100 118
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
101 119
     <ClCompile>
102 120
       <AdditionalIncludeDirectories>..\openvpn;..\compat;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
... ...
@@ -111,6 +111,24 @@
111 111
     <Import Project="tapctl.props" />
112 112
   </ImportGroup>
113 113
   <PropertyGroup Label="UserMacros" />
114
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
115
+    <VcpkgEnabled>true</VcpkgEnabled>
116
+  </PropertyGroup>
117
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
118
+    <VcpkgEnabled>true</VcpkgEnabled>
119
+  </PropertyGroup>
120
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
121
+    <VcpkgEnabled>true</VcpkgEnabled>
122
+  </PropertyGroup>
123
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
124
+    <VcpkgEnabled>true</VcpkgEnabled>
125
+  </PropertyGroup>
126
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
127
+    <VcpkgEnabled>true</VcpkgEnabled>
128
+  </PropertyGroup>
129
+  <PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
130
+    <VcpkgEnabled>true</VcpkgEnabled>
131
+  </PropertyGroup>
114 132
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" />
115 133
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" />
116 134
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />