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

ARA Client: Add CMake support for creating plugins

This commit is contained in:
attila 2022-03-01 17:08:43 +01:00
parent 5f4da905d7
commit 6c2881ce30
5 changed files with 176 additions and 7 deletions

View file

@ -320,6 +320,13 @@ namespace build_tools
addPlistDictionaryKey (*resourceUsageDict, "temporary-exception.files.all.read-write", true);
}
if (isPluginARAEffect)
{
dict->createNewChildElement ("key")->addTextElement ("tags");
auto* tagsArray = dict->createNewChildElement ("array");
tagsArray->createNewChildElement ("string")->addTextElement ("ARA");
}
return { plistKey, plistEntry };
}

View file

@ -86,6 +86,7 @@ namespace build_tools
bool isAuSandboxSafe = false;
bool isPluginSynth = false;
bool suppressResourceUsage = false;
bool isPluginARAEffect = false;
private:
void write (MemoryOutputStream&) const;

View file

@ -50,6 +50,7 @@ namespace build_tools
virtual bool isGUIApplication() const { return false; }
virtual bool isCommandLineApp() const { return false; }
virtual bool isAudioPlugin() const { return false; }
virtual bool isARAAudioPlugin() const { return false; }
//==============================================================================
struct Target
@ -111,8 +112,7 @@ namespace build_tools
case SharedCodeTarget: return "Shared Code";
case AggregateTarget: return "All";
case LV2TurtleProgram: return "LV2 Manifest Helper";
case unspecified:
default: break;
case unspecified: break;
}
return "undefined";
@ -160,7 +160,7 @@ namespace build_tools
case LV2TurtleProgram: return executable;
case AggregateTarget:
case unspecified:
default: break;
break;
}
return unknown;
@ -252,7 +252,43 @@ namespace build_tools
case Target::StaticLibrary:
case Target::DynamicLibrary:
case Target::unspecified:
default:
break;
}
return false;
}
};
struct ProjectType_ARAAudioPlugin : public ProjectType
{
ProjectType_ARAAudioPlugin() : ProjectType (getTypeName(), "ARA Audio Plug-in") {}
static const char* getTypeName() noexcept { return "araaudioplug"; }
bool isAudioPlugin() const override { return true; }
bool isARAAudioPlugin() const override { return true; }
bool supportsTargetType (Target::Type targetType) const override
{
switch (targetType)
{
case Target::VSTPlugIn:
case Target::VST3PlugIn:
case Target::AAXPlugIn:
case Target::AudioUnitPlugIn:
case Target::AudioUnitv3PlugIn:
case Target::StandalonePlugIn:
case Target::UnityPlugIn:
case Target::SharedCodeTarget:
case Target::AggregateTarget:
return true;
case Target::GUIApp:
case Target::ConsoleApp:
case Target::StaticLibrary:
case Target::DynamicLibrary:
case Target::unspecified:
case Target::LV2PlugIn:
case Target::LV2TurtleProgram:
break;
}
@ -268,8 +304,9 @@ namespace build_tools
static ProjectType_StaticLibrary staticLib;
static ProjectType_DLL dll;
static ProjectType_AudioPlugin plugin;
static ProjectType_ARAAudioPlugin araplugin;
return Array<ProjectType*>(&guiApp, &consoleApp, &staticLib, &dll, &plugin);
return Array<ProjectType*>(&guiApp, &consoleApp, &staticLib, &dll, &plugin, &araplugin);
}
}
}