diff --git a/extras/Projucer/Source/Project/jucer_Module.cpp b/extras/Projucer/Source/Project/jucer_Module.cpp index e33a28f5bce7..a2b33e542cca 100644 --- a/extras/Projucer/Source/Project/jucer_Module.cpp +++ b/extras/Projucer/Source/Project/jucer_Module.cpp @@ -302,7 +302,12 @@ void LibraryModule::addSettingsForModuleToExporter (ProjectExporter& exporter, P auto& xcodeExporter = dynamic_cast (exporter); 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(); xcodeExporter.xcodeFrameworks.addTokens (frameworks, ", ", {}); diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h index e917cef0e2d2..473fb40f3398 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h @@ -1772,7 +1772,7 @@ class XcodeProjectExporter : public ProjectExporter " -I \\\"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\\\"" " -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"); plistKey.addTextElement ("AudioComponents"); @@ -1819,10 +1819,10 @@ class XcodeProjectExporter : public ProjectExporter 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"); plistKey.addTextElement ("NSExtension"); @@ -2656,6 +2656,16 @@ class XcodeProjectExporter : public ProjectExporter s.removeDuplicates (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) { auto frameworkID = addFramework (framework);