Skip to content

Commit 244f511

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 6910f69 commit 244f511

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

contrib/buildsystems/Generators/Vcxproj.pm

+21-2
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> -->
@@ -355,8 +364,10 @@ sub createGlueProject {
355364
print F << "EOM";
356365
Global
357366
GlobalSection(SolutionConfigurationPlatforms) = preSolution
367+
Debug|ARM64 = Debug|ARM64
358368
Debug|x64 = Debug|x64
359369
Debug|x86 = Debug|x86
370+
Release|ARM64 = Release|ARM64
360371
Release|x64 = Release|x64
361372
Release|x86 = Release|x86
362373
EndGlobalSection
@@ -367,10 +378,14 @@ EOM
367378
foreach (@apps) {
368379
my $appname = $_;
369380
my $uuid = $build_structure{"APPS_${appname}_GUID"};
381+
print F "\t\t${uuid}.Debug|ARM64.ActiveCfg = Debug|ARM64\n";
382+
print F "\t\t${uuid}.Debug|ARM64.Build.0 = Debug|ARM64\n";
370383
print F "\t\t${uuid}.Debug|x64.ActiveCfg = Debug|x64\n";
371384
print F "\t\t${uuid}.Debug|x64.Build.0 = Debug|x64\n";
372385
print F "\t\t${uuid}.Debug|x86.ActiveCfg = Debug|Win32\n";
373386
print F "\t\t${uuid}.Debug|x86.Build.0 = Debug|Win32\n";
387+
print F "\t\t${uuid}.Release|ARM64.ActiveCfg = Release|ARM64\n";
388+
print F "\t\t${uuid}.Release|ARM64.Build.0 = Release|ARM64\n";
374389
print F "\t\t${uuid}.Release|x64.ActiveCfg = Release|x64\n";
375390
print F "\t\t${uuid}.Release|x64.Build.0 = Release|x64\n";
376391
print F "\t\t${uuid}.Release|x86.ActiveCfg = Release|Win32\n";
@@ -379,10 +394,14 @@ EOM
379394
foreach (@libs) {
380395
my $libname = $_;
381396
my $uuid = $build_structure{"LIBS_${libname}_GUID"};
397+
print F "\t\t${uuid}.Debug|ARM64.ActiveCfg = Debug|ARM64\n";
398+
print F "\t\t${uuid}.Debug|ARM64.Build.0 = Debug|ARM64\n";
382399
print F "\t\t${uuid}.Debug|x64.ActiveCfg = Debug|x64\n";
383400
print F "\t\t${uuid}.Debug|x64.Build.0 = Debug|x64\n";
384401
print F "\t\t${uuid}.Debug|x86.ActiveCfg = Debug|Win32\n";
385402
print F "\t\t${uuid}.Debug|x86.Build.0 = Debug|Win32\n";
403+
print F "\t\t${uuid}.Release|ARM64.ActiveCfg = Release|ARM64\n";
404+
print F "\t\t${uuid}.Release|ARM64.Build.0 = Release|ARM64\n";
386405
print F "\t\t${uuid}.Release|x64.ActiveCfg = Release|x64\n";
387406
print F "\t\t${uuid}.Release|x64.Build.0 = Release|x64\n";
388407
print F "\t\t${uuid}.Release|x86.ActiveCfg = Release|Win32\n";

0 commit comments

Comments
 (0)