diff --git a/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp b/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp index 4a84ec16b8..50e7944c68 100644 --- a/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp +++ b/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.cpp @@ -462,7 +462,12 @@ Result PIPGenerator::setProjectSettings (ValueTree& jucerTree) jucerTree.setProperty (Ids::pluginManufacturer, metadata[Ids::vendor], nullptr); StringArray pluginFormatsToBuild (Ids::buildVST.toString(), Ids::buildAU.toString(), Ids::buildStandalone.toString()); + pluginFormatsToBuild.addArray (getExtraPluginFormatsToBuild()); + jucerTree.setProperty (Ids::pluginFormats, pluginFormatsToBuild.joinIntoString (","), nullptr); + + if (! getPluginCharacteristics().isEmpty()) + jucerTree.setProperty (Ids::pluginCharacteristicsValue, getPluginCharacteristics().joinIntoString (","), nullptr); } return Result::ok(); @@ -561,3 +566,30 @@ bool PIPGenerator::copyRelativeFileToLocalSourceDirectory (const File& fileToCop return fileToCopy.copyFileTo (outputDirectory.getChildFile ("Source") .getChildFile (fileToCopy.getFileName())); } + +StringArray PIPGenerator::getExtraPluginFormatsToBuild() const +{ + auto name = metadata[Ids::name].toString(); + + if (name == "AUv3SynthPlugin" || name == "AudioPluginDemo") + return { Ids::buildAUv3.toString() }; + + if (name == "InterAppAudioEffectPlugin") + return { Ids::enableIAA.toString() }; + + return {}; +} + +StringArray PIPGenerator::getPluginCharacteristics() const +{ + StringArray characteristics; + + auto name = metadata[Ids::name].toString(); + + if (name == "AudioPluginDemo" || name == "AUv3SynthPlugin" || name == "MultiOutSynthPlugin") characteristics.add (Ids::pluginWantsMidiIn.toString()); + if (name == "AUv3SynthPlugin" || name == "MultiOutSynthPlugin") characteristics.add (Ids::pluginIsSynth.toString()); + if (name == "AudioPluginDemo") characteristics.add (Ids::pluginEditorRequiresKeys.toString()); + if (name == "ArpeggiatorPlugin") characteristics.add (Ids::pluginIsMidiEffectPlugin.toString()); + + return characteristics; +} diff --git a/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.h b/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.h index 083da2df42..2502ff8536 100644 --- a/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.h +++ b/extras/Projucer/Source/Utility/PIPs/jucer_PIPGenerator.h @@ -74,6 +74,9 @@ private: Array replaceRelativeIncludesAndGetFilesToMove(); bool copyRelativeFileToLocalSourceDirectory (const File&) const noexcept; + StringArray getExtraPluginFormatsToBuild() const; + StringArray getPluginCharacteristics() const; + //============================================================================== File pipFile, outputDirectory; var metadata;