Browse Source

macOS: Fixed compatibility targeting macOS 10.10 and earlier when building against the 10.15 SDK

tags/2021-05-28
Tom Poole 5 years ago
parent
commit
997b217179
2 changed files with 21 additions and 6 deletions
  1. +6
    -1
      extras/Projucer/Source/Project/jucer_Module.cpp
  2. +15
    -5
      extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h

+ 6
- 1
extras/Projucer/Source/Project/jucer_Module.cpp View File

@@ -302,7 +302,12 @@ void LibraryModule::addSettingsForModuleToExporter (ProjectExporter& exporter, P
auto& xcodeExporter = dynamic_cast<XcodeProjectExporter&> (exporter); auto& xcodeExporter = dynamic_cast<XcodeProjectExporter&> (exporter);
if (project.isAUPluginHost()) if (project.isAUPluginHost())
xcodeExporter.xcodeFrameworks.addTokens (xcodeExporter.isOSX() ? "AudioUnit CoreAudioKit" : "CoreAudioKit", false);
{
xcodeExporter.xcodeFrameworks.add ("CoreAudioKit");
if (xcodeExporter.isOSX())
xcodeExporter.xcodeFrameworks.add ("AudioUnit");
}
auto frameworks = moduleInfo.moduleInfo [xcodeExporter.isOSX() ? "OSXFrameworks" : "iOSFrameworks"].toString(); auto frameworks = moduleInfo.moduleInfo [xcodeExporter.isOSX() ? "OSXFrameworks" : "iOSFrameworks"].toString();
xcodeExporter.xcodeFrameworks.addTokens (frameworks, ", ", {}); xcodeExporter.xcodeFrameworks.addTokens (frameworks, ", ", {});


+ 15
- 5
extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h View File

@@ -1772,7 +1772,7 @@ public:
" -I \\\"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\\\"" " -I \\\"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\\\""
" -I \\\"$(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioUnit.framework/Headers\\\""; " -I \\\"$(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioUnit.framework/Headers\\\"";
xcodeFrameworks.addTokens ("AudioUnit CoreAudioKit", false);
xcodeFrameworks.addArray ({ "AudioUnit", "CoreAudioKit" });
XmlElement plistKey ("key"); XmlElement plistKey ("key");
plistKey.addTextElement ("AudioComponents"); plistKey.addTextElement ("AudioComponents");
@@ -1819,10 +1819,10 @@ public:
void addExtraAudioUnitv3PlugInTargetSettings() void addExtraAudioUnitv3PlugInTargetSettings()
{ {
if (owner.isiOS())
xcodeFrameworks.addTokens ("CoreAudioKit AVFoundation", false);
else
xcodeFrameworks.addTokens ("AudioUnit CoreAudioKit AVFoundation", false);
xcodeFrameworks.addArray ({ "AVFoundation", "CoreAudioKit" });
if (owner.isOSX())
xcodeFrameworks.add ("AudioUnit");
XmlElement plistKey ("key"); XmlElement plistKey ("key");
plistKey.addTextElement ("NSExtension"); plistKey.addTextElement ("NSExtension");
@@ -2656,6 +2656,16 @@ private:
s.removeDuplicates (true); s.removeDuplicates (true);
s.sort (true); s.sort (true);
// When building against the 10.15 SDK we need to make sure the
// AudioUnit framework is linked before the AudioToolbox framework.
auto audioUnitIndex = s.indexOf ("AudioUnit", false, 1);
if (audioUnitIndex != -1)
{
s.remove (audioUnitIndex);
s.insert (0, "AudioUnit");
}
for (auto& framework : s) for (auto& framework : s)
{ {
auto frameworkID = addFramework (framework); auto frameworkID = addFramework (framework);


Loading…
Cancel
Save