@@ -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