Skip to content

Commit 2a9c249

Browse files
committed
Projucer: Enable ARM64EC for Visual Studio 2026 exporter
1 parent c352e24 commit 2a9c249

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_MSVC.h

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,7 @@ class MSVCProjectExporterBase : public ProjectExporter
334334
virtual String getToolsVersion() const = 0;
335335
virtual String getDefaultToolset() const = 0;
336336
virtual String getDefaultWindowsTargetPlatformVersion() const = 0;
337+
virtual void getSupportedArchitectures (std::vector<Architecture>&) const = 0;
337338

338339
//==============================================================================
339340
String getIPPLibrary() const { return IPPLibraryValue.get(); }
@@ -623,9 +624,12 @@ class MSVCProjectExporterBase : public ProjectExporter
623624
if (project.isAudioPluginProject())
624625
addVisualStudioPluginInstallPathProperties (props);
625626

626-
const auto architectureList = exporter.getExporterIdentifier() == Identifier { "VS2022" }
627-
? std::vector<Architecture> { Architecture::win32, Architecture::win64, Architecture::arm64, Architecture::arm64ec }
628-
: std::vector<Architecture> { Architecture::win32, Architecture::win64, Architecture::arm64 };
627+
const auto architectureList = std::invoke ([&]
628+
{
629+
std::vector<Architecture> result;
630+
static_cast<const MSVCProjectExporterBase&> (exporter).getSupportedArchitectures (result);
631+
return result;
632+
});
629633

630634
Array<String> architectureListAsStrings;
631635
Array<var> architectureListAsVars;
@@ -2799,6 +2803,11 @@ class MSVCProjectExporterVC2019 final : public MSVCProjectExporterBase
27992803
String getDefaultToolset() const override { return defaultToolset; }
28002804
String getDefaultWindowsTargetPlatformVersion() const override { return defaultTargetPlatform; }
28012805

2806+
void getSupportedArchitectures (std::vector<Architecture>& result) const override
2807+
{
2808+
result.insert (result.end(), { Architecture::win32, Architecture::win64, Architecture::arm64 });
2809+
}
2810+
28022811
static MSVCProjectExporterVC2019* createForSettings (Project& projectToUse, const ValueTree& settingsToUse)
28032812
{
28042813
if (settingsToUse.hasType (getValueTreeTypeName()))
@@ -2844,6 +2853,11 @@ class MSVCProjectExporterVC2022 final : public MSVCProjectExporterBase
28442853
String getDefaultToolset() const override { return defaultToolset; }
28452854
String getDefaultWindowsTargetPlatformVersion() const override { return defaultTargetPlatform; }
28462855

2856+
void getSupportedArchitectures (std::vector<Architecture>& result) const override
2857+
{
2858+
result.insert (result.end(), { Architecture::win32, Architecture::win64, Architecture::arm64, Architecture::arm64ec });
2859+
}
2860+
28472861
static MSVCProjectExporterVC2022* createForSettings (Project& projectToUse, const ValueTree& settingsToUse)
28482862
{
28492863
if (settingsToUse.hasType (getValueTreeTypeName()))
@@ -2889,6 +2903,11 @@ class MSVCProjectExporterVC2026 final : public MSVCProjectExporterBase
28892903
String getDefaultToolset() const override { return defaultToolset; }
28902904
String getDefaultWindowsTargetPlatformVersion() const override { return defaultTargetPlatform; }
28912905

2906+
void getSupportedArchitectures (std::vector<Architecture>& result) const override
2907+
{
2908+
result.insert (result.end(), { Architecture::win32, Architecture::win64, Architecture::arm64, Architecture::arm64ec });
2909+
}
2910+
28922911
static MSVCProjectExporterVC2026* createForSettings (Project& projectToUse, const ValueTree& settingsToUse)
28932912
{
28942913
if (settingsToUse.hasType (getValueTreeTypeName()))

0 commit comments

Comments
 (0)