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

Projucer: Generate moduleinfo.json file during VST3 build

This commit is contained in:
reuk 2023-04-24 17:44:21 +01:00
parent 0032e1ec86
commit b8f116c5c5
No known key found for this signature in database
GPG key ID: FCB43929F012EE5C
10 changed files with 310 additions and 95 deletions

View file

@ -221,10 +221,14 @@ public:
s.add ("JUCE_LV2DIR := " + escapeQuotesAndSpaces (targetName) + ".lv2");
targetName = "$(JUCE_LV2DIR)/" + targetName + ".so";
}
else if (type == LV2TurtleProgram)
else if (type == LV2Helper)
{
targetName = Project::getLV2FileWriterName();
}
else if (type == VST3Helper)
{
targetName = Project::getVST3FileWriterName();
}
s.add ("JUCE_TARGET_" + getTargetVarName() + String (" := ") + escapeQuotesAndSpaces (targetName));
@ -331,9 +335,12 @@ public:
String getPhonyName() const
{
if (type == LV2TurtleProgram)
if (type == LV2Helper)
return "LV2_MANIFEST_HELPER";
if (type == VST3Helper)
return "VST3_MANIFEST_HELPER";
return String (getName()).upToFirstOccurrenceOf (" ", false, false);
}
@ -349,6 +356,8 @@ public:
if (type == LV2PlugIn)
out << " $(JUCE_OUTDIR)/$(JUCE_TARGET_LV2_MANIFEST_HELPER)";
else if (type == VST3PlugIn && owner.project.isVst3ManifestEnabled())
out << " $(JUCE_OUTDIR)/$(JUCE_TARGET_VST3_MANIFEST_HELPER)";
out << newLine;
@ -399,6 +408,15 @@ public:
if (type == VST3PlugIn)
{
if (owner.project.isVst3ManifestEnabled())
{
out << "\t$(V_AT) $(JUCE_OUTDIR)/$(JUCE_TARGET_VST3_MANIFEST_HELPER) "
"-create "
"-version " << owner.project.getVersionString().quoted() << " "
"-path \"$(JUCE_OUTDIR)/$(JUCE_VST3DIR)\" "
"-output \"$(JUCE_OUTDIR)/$(JUCE_VST3DIR)/Contents/moduleinfo.json\" " << newLine;
}
out << "\t-$(V_AT)[ ! \"$(JUCE_VST3DESTDIR)\" ] || (mkdir -p $(JUCE_VST3DESTDIR) && cp -R $(JUCE_COPYCMD_VST3))" << newLine;
}
else if (type == VSTPlugIn)
@ -486,11 +504,12 @@ public:
case Target::AggregateTarget:
case Target::VSTPlugIn:
case Target::VST3PlugIn:
case Target::VST3Helper:
case Target::StandalonePlugIn:
case Target::DynamicLibrary:
case Target::UnityPlugIn:
case Target::LV2PlugIn:
case Target::LV2TurtleProgram:
case Target::LV2Helper:
return true;
case Target::AAXPlugIn:
case Target::AudioUnitPlugIn:
@ -1172,13 +1191,23 @@ private:
targetFiles.emplace_back (linuxSubprocessHelperProperties.getLinuxSubprocessHelperBinaryDataSource(), "");
}
if (targetType == MakefileTarget::LV2TurtleProgram)
if (targetType == MakefileTarget::LV2Helper)
{
targetFiles.emplace_back (getLV2TurtleDumpProgramSource().rebased (projectFolder,
getTargetFolder(),
build_tools::RelativePath::buildTargetFolder),
targetFiles.emplace_back (getLV2HelperProgramSource().rebased (projectFolder,
getTargetFolder(),
build_tools::RelativePath::buildTargetFolder),
String{});
}
else if (targetType == MakefileTarget::VST3Helper)
{
for (const auto& source : getVST3HelperProgramSources (*this))
{
targetFiles.emplace_back (source.rebased (projectFolder,
getTargetFolder(),
build_tools::RelativePath::buildTargetFolder),
String{});
}
}
return targetFiles;
};