Skip to content

Commit 72711b4

Browse files
Merge pull request #8010 from res0nance/win-arm64-support
Add ARM64 to Visual Studio Project
2 parents f3e41aa + 62c6a3d commit 72711b4

10 files changed

Lines changed: 1083 additions & 4 deletions

File tree

.github/workflows/os-check.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,10 @@ jobs:
125125
windows_build:
126126
name: Windows Build Test
127127
runs-on: windows-latest
128+
strategy:
129+
fail-fast: false
130+
matrix:
131+
arch: [ x64, Win32, ARM64 ]
128132
# This should be a safe limit for the tests to run.
129133
timeout-minutes: 6
130134
env:
@@ -135,7 +139,6 @@ jobs:
135139
# You can convert this to a build matrix if you need coverage of multiple configuration types.
136140
# https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
137141
BUILD_CONFIGURATION: Release
138-
BUILD_PLATFORM: x64
139142
steps:
140143
- uses: actions/checkout@v4
141144

@@ -150,8 +153,9 @@ jobs:
150153
working-directory: ${{env.GITHUB_WORKSPACE}}
151154
# Add additional options to the MSBuild command line here (like platform or verbosity level).
152155
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
153-
run: msbuild /m /p:PlatformToolset=v142 /p:Platform=${{env.BUILD_PLATFORM}} /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}}
156+
run: msbuild /m /p:PlatformToolset=v142 /p:Platform=${{matrix.arch}} /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}}
154157

155-
- name: Run Test
158+
- if: ${{ matrix.arch != 'ARM64' }}
159+
name: Run Test
156160
working-directory: ${{env.GITHUB_WORKSPACE}}
157-
run: Release/x64/testsuite.exe
161+
run: Release/${{matrix.arch}}/testsuite.exe

examples/client/client.vcxproj

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
<Configuration>Debug</Configuration>
1010
<Platform>x64</Platform>
1111
</ProjectConfiguration>
12+
<ProjectConfiguration Include="Debug|ARM64">
13+
<Configuration>Debug</Configuration>
14+
<Platform>ARM64</Platform>
15+
</ProjectConfiguration>
1216
<ProjectConfiguration Include="DLL Debug|Win32">
1317
<Configuration>DLL Debug</Configuration>
1418
<Platform>Win32</Platform>
@@ -17,6 +21,10 @@
1721
<Configuration>DLL Debug</Configuration>
1822
<Platform>x64</Platform>
1923
</ProjectConfiguration>
24+
<ProjectConfiguration Include="DLL Debug|ARM64">
25+
<Configuration>DLL Debug</Configuration>
26+
<Platform>ARM64</Platform>
27+
</ProjectConfiguration>
2028
<ProjectConfiguration Include="DLL Release|Win32">
2129
<Configuration>DLL Release</Configuration>
2230
<Platform>Win32</Platform>
@@ -25,6 +33,10 @@
2533
<Configuration>DLL Release</Configuration>
2634
<Platform>x64</Platform>
2735
</ProjectConfiguration>
36+
<ProjectConfiguration Include="DLL Release|ARM64">
37+
<Configuration>DLL Release</Configuration>
38+
<Platform>ARM64</Platform>
39+
</ProjectConfiguration>
2840
<ProjectConfiguration Include="Release|Win32">
2941
<Configuration>Release</Configuration>
3042
<Platform>Win32</Platform>
@@ -33,6 +45,10 @@
3345
<Configuration>Release</Configuration>
3446
<Platform>x64</Platform>
3547
</ProjectConfiguration>
48+
<ProjectConfiguration Include="Release|ARM64">
49+
<Configuration>Release</Configuration>
50+
<Platform>ARM64</Platform>
51+
</ProjectConfiguration>
3652
</ItemGroup>
3753
<PropertyGroup Label="Globals">
3854
<ProjectGuid>{3ADE9549-582D-4D8E-9826-B172197A7959}</ProjectGuid>
@@ -64,6 +80,18 @@
6480
<CharacterSet>Unicode</CharacterSet>
6581
<WholeProgramOptimization>true</WholeProgramOptimization>
6682
</PropertyGroup>
83+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
84+
<ConfigurationType>Application</ConfigurationType>
85+
<PlatformToolset>v110</PlatformToolset>
86+
<CharacterSet>Unicode</CharacterSet>
87+
<WholeProgramOptimization>true</WholeProgramOptimization>
88+
</PropertyGroup>
89+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|ARM64'" Label="Configuration">
90+
<ConfigurationType>Application</ConfigurationType>
91+
<PlatformToolset>v110</PlatformToolset>
92+
<CharacterSet>Unicode</CharacterSet>
93+
<WholeProgramOptimization>true</WholeProgramOptimization>
94+
</PropertyGroup>
6795
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
6896
<ConfigurationType>Application</ConfigurationType>
6997
<PlatformToolset>v110</PlatformToolset>
@@ -84,6 +112,16 @@
84112
<PlatformToolset>v110</PlatformToolset>
85113
<CharacterSet>Unicode</CharacterSet>
86114
</PropertyGroup>
115+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
116+
<ConfigurationType>Application</ConfigurationType>
117+
<PlatformToolset>v110</PlatformToolset>
118+
<CharacterSet>Unicode</CharacterSet>
119+
</PropertyGroup>
120+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|ARM64'" Label="Configuration">
121+
<ConfigurationType>Application</ConfigurationType>
122+
<PlatformToolset>v110</PlatformToolset>
123+
<CharacterSet>Unicode</CharacterSet>
124+
</PropertyGroup>
87125
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
88126
<ImportGroup Label="ExtensionSettings">
89127
</ImportGroup>
@@ -99,6 +137,12 @@
99137
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'" Label="PropertySheets">
100138
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
101139
</ImportGroup>
140+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
141+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
142+
</ImportGroup>
143+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|ARM64'" Label="PropertySheets">
144+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
145+
</ImportGroup>
102146
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
103147
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
104148
</ImportGroup>
@@ -111,6 +155,12 @@
111155
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'" Label="PropertySheets">
112156
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
113157
</ImportGroup>
158+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
159+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
160+
</ImportGroup>
161+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|ARM64'" Label="PropertySheets">
162+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
163+
</ImportGroup>
114164
<PropertyGroup Label="UserMacros" />
115165
<PropertyGroup>
116166
<_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
@@ -135,6 +185,16 @@
135185
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
136186
<IntDir>$(Configuration)\$(Platform)\$(ProjectName)_obj\</IntDir>
137187
</PropertyGroup>
188+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
189+
<LinkIncremental>true</LinkIncremental>
190+
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
191+
<IntDir>$(Configuration)\$(Platform)\$(ProjectName)_obj\</IntDir>
192+
</PropertyGroup>
193+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|ARM64'">
194+
<LinkIncremental>true</LinkIncremental>
195+
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
196+
<IntDir>$(Configuration)\$(Platform)\$(ProjectName)_obj\</IntDir>
197+
</PropertyGroup>
138198
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
139199
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
140200
<IntDir>$(Configuration)\$(Platform)\$(ProjectName)_obj\</IntDir>
@@ -155,6 +215,16 @@
155215
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
156216
<IntDir>$(Configuration)\$(Platform)\$(ProjectName)_obj\</IntDir>
157217
</PropertyGroup>
218+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
219+
<LinkIncremental>false</LinkIncremental>
220+
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
221+
<IntDir>$(Configuration)\$(Platform)\$(ProjectName)_obj\</IntDir>
222+
</PropertyGroup>
223+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|ARM64'">
224+
<LinkIncremental>false</LinkIncremental>
225+
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
226+
<IntDir>$(Configuration)\$(Platform)\$(ProjectName)_obj\</IntDir>
227+
</PropertyGroup>
158228
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
159229
<ClCompile>
160230
<Optimization>Disabled</Optimization>
@@ -232,6 +302,42 @@
232302
<SubSystem>Console</SubSystem>
233303
</Link>
234304
</ItemDefinitionGroup>
305+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
306+
<ClCompile>
307+
<Optimization>Disabled</Optimization>
308+
<AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
309+
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
310+
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
311+
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
312+
<PrecompiledHeader>
313+
</PrecompiledHeader>
314+
<WarningLevel>Level3</WarningLevel>
315+
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
316+
</ClCompile>
317+
<Link>
318+
<AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
319+
<GenerateDebugInformation>true</GenerateDebugInformation>
320+
<SubSystem>Console</SubSystem>
321+
</Link>
322+
</ItemDefinitionGroup>
323+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|ARM64'">
324+
<ClCompile>
325+
<Optimization>Disabled</Optimization>
326+
<AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
327+
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
328+
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
329+
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
330+
<PrecompiledHeader>
331+
</PrecompiledHeader>
332+
<WarningLevel>Level3</WarningLevel>
333+
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
334+
</ClCompile>
335+
<Link>
336+
<AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
337+
<GenerateDebugInformation>true</GenerateDebugInformation>
338+
<SubSystem>Console</SubSystem>
339+
</Link>
340+
</ItemDefinitionGroup>
235341
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
236342
<ClCompile>
237343
<Optimization>MaxSpeed</Optimization>
@@ -318,6 +424,48 @@
318424
<EnableCOMDATFolding>true</EnableCOMDATFolding>
319425
</Link>
320426
</ItemDefinitionGroup>
427+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
428+
<ClCompile>
429+
<Optimization>MaxSpeed</Optimization>
430+
<IntrinsicFunctions>true</IntrinsicFunctions>
431+
<AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
432+
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
433+
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
434+
<FunctionLevelLinking>true</FunctionLevelLinking>
435+
<PrecompiledHeader>
436+
</PrecompiledHeader>
437+
<WarningLevel>Level3</WarningLevel>
438+
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
439+
</ClCompile>
440+
<Link>
441+
<AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
442+
<GenerateDebugInformation>true</GenerateDebugInformation>
443+
<SubSystem>Console</SubSystem>
444+
<OptimizeReferences>true</OptimizeReferences>
445+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
446+
</Link>
447+
</ItemDefinitionGroup>
448+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|ARM64'">
449+
<ClCompile>
450+
<Optimization>MaxSpeed</Optimization>
451+
<IntrinsicFunctions>true</IntrinsicFunctions>
452+
<AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
453+
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
454+
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
455+
<FunctionLevelLinking>true</FunctionLevelLinking>
456+
<PrecompiledHeader>
457+
</PrecompiledHeader>
458+
<WarningLevel>Level3</WarningLevel>
459+
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
460+
</ClCompile>
461+
<Link>
462+
<AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
463+
<GenerateDebugInformation>true</GenerateDebugInformation>
464+
<SubSystem>Console</SubSystem>
465+
<OptimizeReferences>true</OptimizeReferences>
466+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
467+
</Link>
468+
</ItemDefinitionGroup>
321469
<ItemGroup>
322470
<ClCompile Include="client.c" />
323471
</ItemGroup>

0 commit comments

Comments
 (0)