Skip to content

Commit

Permalink
macOS: Fixed compatibility targeting macOS 10.10 and earlier when bui…
Browse files Browse the repository at this point in the history
…lding against the 10.15 SDK
  • Loading branch information
tpoole committed Jan 7, 2020
1 parent 2f6053b commit 997b217
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
7 changes: 6 additions & 1 deletion extras/Projucer/Source/Project/jucer_Module.cpp
Expand Up @@ -302,7 +302,12 @@ void LibraryModule::addSettingsForModuleToExporter (ProjectExporter& exporter, P
auto& xcodeExporter = dynamic_cast<XcodeProjectExporter&> (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, ", ", {});
Expand Down
20 changes: 15 additions & 5 deletions extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Xcode.h
Expand Up @@ -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");
Expand Down Expand Up @@ -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");
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 997b217

Please sign in to comment.