Skip to content

Commit 9468f11

Browse files
manbeariandscho
authored andcommitted
vcxproj: support building Windows/ARM64 binaries
Signed-off-by: Ian Bearman <[email protected]> Signed-off-by: Dennis Ameling <[email protected]> Signed-off-by: Johannes Schindelin <[email protected]>
1 parent eb05b91 commit 9468f11

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

contrib/buildsystems/Generators/Vcxproj.pm

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,21 @@ sub createProject {
114114
<Configuration>Release</Configuration>
115115
<Platform>x64</Platform>
116116
</ProjectConfiguration>
117+
<ProjectConfiguration Include="Debug|ARM64">
118+
<Configuration>Debug</Configuration>
119+
<Platform>ARM64</Platform>
120+
</ProjectConfiguration>
121+
<ProjectConfiguration Include="Release|ARM64">
122+
<Configuration>Release</Configuration>
123+
<Platform>ARM64</Platform>
124+
</ProjectConfiguration>
117125
</ItemGroup>
118126
<PropertyGroup Label="Globals">
119127
<ProjectGuid>$uuid</ProjectGuid>
120128
<Keyword>Win32Proj</Keyword>
121129
<VCPKGArch Condition="'\$(Platform)'=='Win32'">x86-windows</VCPKGArch>
122-
<VCPKGArch Condition="'\$(Platform)'!='Win32'">x64-windows</VCPKGArch>
130+
<VCPKGArch Condition="'\$(Platform)'=='x64'">x64-windows</VCPKGArch>
131+
<VCPKGArch Condition="'\$(Platform)'=='ARM64'">arm64-windows</VCPKGArch>
123132
<VCPKGArchDirectory>$cdup\\compat\\vcbuild\\vcpkg\\installed\\\$(VCPKGArch)</VCPKGArchDirectory>
124133
<VCPKGBinDirectory Condition="'\$(Configuration)'=='Debug'">\$(VCPKGArchDirectory)\\debug\\bin</VCPKGBinDirectory>
125134
<VCPKGLibDirectory Condition="'\$(Configuration)'=='Debug'">\$(VCPKGArchDirectory)\\debug\\lib</VCPKGLibDirectory>
@@ -140,7 +149,7 @@ sub createProject {
140149
</PropertyGroup>
141150
<PropertyGroup>
142151
<ConfigurationType>$config_type</ConfigurationType>
143-
<PlatformToolset>v140</PlatformToolset>
152+
<PlatformToolset>v142</PlatformToolset>
144153
<!-- <CharacterSet>UTF-8</CharacterSet> -->
145154
<OutDir>..\\</OutDir>
146155
<!-- <IntDir>\$(ProjectDir)\$(Configuration)\\</IntDir> -->
@@ -346,8 +355,10 @@ sub createGlueProject {
346355
print F << "EOM";
347356
Global
348357
GlobalSection(SolutionConfigurationPlatforms) = preSolution
358+
Debug|ARM64 = Debug|ARM64
349359
Debug|x64 = Debug|x64
350360
Debug|x86 = Debug|x86
361+
Release|ARM64 = Release|ARM64
351362
Release|x64 = Release|x64
352363
Release|x86 = Release|x86
353364
EndGlobalSection
@@ -358,10 +369,14 @@ EOM
358369
foreach (@apps) {
359370
my $appname = $_;
360371
my $uuid = $build_structure{"APPS_${appname}_GUID"};
372+
print F "\t\t${uuid}.Debug|ARM64.ActiveCfg = Debug|ARM64\n";
373+
print F "\t\t${uuid}.Debug|ARM64.Build.0 = Debug|ARM64\n";
361374
print F "\t\t${uuid}.Debug|x64.ActiveCfg = Debug|x64\n";
362375
print F "\t\t${uuid}.Debug|x64.Build.0 = Debug|x64\n";
363376
print F "\t\t${uuid}.Debug|x86.ActiveCfg = Debug|Win32\n";
364377
print F "\t\t${uuid}.Debug|x86.Build.0 = Debug|Win32\n";
378+
print F "\t\t${uuid}.Release|ARM64.ActiveCfg = Release|ARM64\n";
379+
print F "\t\t${uuid}.Release|ARM64.Build.0 = Release|ARM64\n";
365380
print F "\t\t${uuid}.Release|x64.ActiveCfg = Release|x64\n";
366381
print F "\t\t${uuid}.Release|x64.Build.0 = Release|x64\n";
367382
print F "\t\t${uuid}.Release|x86.ActiveCfg = Release|Win32\n";
@@ -370,10 +385,14 @@ EOM
370385
foreach (@libs) {
371386
my $libname = $_;
372387
my $uuid = $build_structure{"LIBS_${libname}_GUID"};
388+
print F "\t\t${uuid}.Debug|ARM64.ActiveCfg = Debug|ARM64\n";
389+
print F "\t\t${uuid}.Debug|ARM64.Build.0 = Debug|ARM64\n";
373390
print F "\t\t${uuid}.Debug|x64.ActiveCfg = Debug|x64\n";
374391
print F "\t\t${uuid}.Debug|x64.Build.0 = Debug|x64\n";
375392
print F "\t\t${uuid}.Debug|x86.ActiveCfg = Debug|Win32\n";
376393
print F "\t\t${uuid}.Debug|x86.Build.0 = Debug|Win32\n";
394+
print F "\t\t${uuid}.Release|ARM64.ActiveCfg = Release|ARM64\n";
395+
print F "\t\t${uuid}.Release|ARM64.Build.0 = Release|ARM64\n";
377396
print F "\t\t${uuid}.Release|x64.ActiveCfg = Release|x64\n";
378397
print F "\t\t${uuid}.Release|x64.Build.0 = Release|x64\n";
379398
print F "\t\t${uuid}.Release|x86.ActiveCfg = Release|Win32\n";

0 commit comments

Comments
 (0)