1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Projucer: Remove ARM32 support on Windows

This commit is contained in:
Oliver James 2024-10-01 10:55:12 +01:00 committed by reuk
parent ccdd857662
commit af51cb46eb
3 changed files with 41 additions and 5 deletions

View file

@ -59,6 +59,7 @@ namespace ProjectMessages
DECLARE_ID (pluginCodeInvalid);
DECLARE_ID (manufacturerCodeInvalid);
DECLARE_ID (deprecatedExporter);
DECLARE_ID (unsupportedArm32Config);
DECLARE_ID (notification);
DECLARE_ID (warning);
@ -73,7 +74,7 @@ namespace ProjectMessages
static Identifier warnings[] = { Ids::cppStandard, Ids::moduleNotFound, Ids::jucePath,
Ids::jucerFileModified, Ids::missingModuleDependencies,
Ids::oldProjucer, Ids::pluginCodeInvalid, Ids::manufacturerCodeInvalid,
Ids::deprecatedExporter };
Ids::deprecatedExporter, Ids::unsupportedArm32Config };
if (std::find (std::begin (warnings), std::end (warnings), message) != std::end (warnings))
return Ids::warning;
@ -99,6 +100,7 @@ namespace ProjectMessages
if (message == Ids::pluginCodeInvalid) return "Invalid Plugin Code";
if (message == Ids::manufacturerCodeInvalid) return "Invalid Manufacturer Code";
if (message == Ids::deprecatedExporter) return "Deprecated Exporter";
if (message == Ids::unsupportedArm32Config) return "Unsupported Architecture";
jassertfalse;
return {};
@ -116,6 +118,7 @@ namespace ProjectMessages
if (message == Ids::pluginCodeInvalid) return "The plugin code should be exactly four characters in length.";
if (message == Ids::manufacturerCodeInvalid) return "The manufacturer code should be exactly four characters in length.";
if (message == Ids::deprecatedExporter) return "The project includes a deprecated exporter.";
if (message == Ids::unsupportedArm32Config) return "The project includes a Visual Studio configuration that uses the 32-bit Arm architecture, which is no longer supported. This configuration has been hidden, and will be removed on save.";
jassertfalse;
return {};

View file

@ -148,6 +148,24 @@ public:
config->getValue (Ids::targetName) = oldStyleLibName;
}
{
std::vector<ValueTree> toErase;
for (const auto& config : getConfigurations())
{
if (config.getProperty (Ids::winArchitecture) == "ARM")
toErase.push_back (config);
}
if (! toErase.empty())
{
for (const auto& e : toErase)
e.getParent().removeChild (e, nullptr);
getProject().addProjectMessage (ProjectMessages::Ids::unsupportedArm32Config, {});
}
}
for (ConfigIterator i (*this); i.next();)
dynamic_cast<MSVCBuildConfiguration&> (*i).updateOldLTOSetting();
}
@ -214,7 +232,6 @@ public:
String getIntel64BitArchName() const { return "x64"; }
String getIntel32BitArchName() const { return "Win32"; }
String getArm64BitArchName() const { return "ARM64"; }
String getArm32BitArchName() const { return "ARM"; }
String getArchitectureString() const { return architectureTypeValue.get(); }
String getDebugInformationFormatString() const { return debugInformationFormatValue.get(); }
@ -258,8 +275,8 @@ public:
addVisualStudioPluginInstallPathProperties (props);
props.add (new ChoicePropertyComponent (architectureTypeValue, "Architecture",
{ getIntel32BitArchName(), getIntel64BitArchName(), getArm32BitArchName(), getArm64BitArchName() },
{ getIntel32BitArchName(), getIntel64BitArchName(), getArm32BitArchName(), getArm64BitArchName() }),
{ getIntel32BitArchName(), getIntel64BitArchName(), getArm64BitArchName() },
{ getIntel32BitArchName(), getIntel64BitArchName(), getArm64BitArchName() }),
"Which Windows architecture to use.");
props.add (new ChoicePropertyComponentWithEnablement (debugInformationFormatValue,
@ -399,7 +416,6 @@ public:
{
{ "Win32", { "%programfiles(x86)%", "%CommonProgramFiles(x86)%" } },
{ "x64", { "%ProgramW6432%", "%CommonProgramW6432%" } },
{ "ARM", { "%programfiles(arm)%", "%CommonProgramFiles(arm)%" } },
{ "ARM64", { "%ProgramW6432%", "%CommonProgramW6432%" } }
};