mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-09 23:34:20 +00:00
VST3 Client: Enable manifest generation globally
This commit is contained in:
parent
77458fb4f9
commit
c509a1821a
7 changed files with 28 additions and 60 deletions
|
|
@ -527,17 +527,6 @@ attributes directly to these creation functions, rather than adding them later.
|
|||
`Pitch Shift`, `Restoration`, `Reverb`, `Sampler`, `Spatial`, `Stereo`, `Surround`, `Synth`,
|
||||
`Tools`, `Up-Downmix`
|
||||
|
||||
`VST3_MANIFEST_ENABLED`
|
||||
- May be either TRUE or FALSE. Defaults to FALSE. Set this to TRUE if you want a moduleinfo.json
|
||||
file to be generated as part of the VST3 build. This may improve startup/scanning time for hosts
|
||||
that understand the contents of this file. This setting is disabled by default because the
|
||||
moduleinfo.json path can cause problems during code signing on macOS. Bundles containing a
|
||||
moduleinfo.json may be rejected by code signing verification at any point in the future without
|
||||
notice per https://developer.apple.com/library/archive/technotes/tn2206. If you enable this
|
||||
setting, be aware that the code signature for the moduleinfo.json will be stored in its extended
|
||||
file attributes. Therefore, you will need to ensure that these attributes are not changed or
|
||||
removed when distributing the VST3.
|
||||
|
||||
`AU_MAIN_TYPE`
|
||||
- Should be one of: `kAudioUnitType_Effect`, `kAudioUnitType_FormatConverter`,
|
||||
`kAudioUnitType_Generator`, `kAudioUnitType_MIDIProcessor`, `kAudioUnitType_Mixer`,
|
||||
|
|
|
|||
|
|
@ -1019,7 +1019,6 @@ function(_juce_set_plugin_target_properties shared_code_target kind)
|
|||
LIBRARY_OUTPUT_DIRECTORY "${output_path}/Contents/${JUCE_TARGET_ARCHITECTURE}-linux")
|
||||
endif()
|
||||
|
||||
if("${manifest_enabled}")
|
||||
# Add a target for the helper tool
|
||||
_juce_add_vst3_manifest_helper_target()
|
||||
|
||||
|
|
@ -1035,7 +1034,6 @@ function(_juce_set_plugin_target_properties shared_code_target kind)
|
|||
-path "${output_path}"
|
||||
-output "${output_path}/Contents/Resources/moduleinfo.json"
|
||||
VERBATIM)
|
||||
endif()
|
||||
|
||||
_juce_set_copy_properties(${shared_code_target} ${target_name} "${output_path}" JUCE_VST3_COPY_DIR)
|
||||
elseif(kind STREQUAL "VST")
|
||||
|
|
@ -1503,8 +1501,6 @@ function(_juce_set_fallback_properties target)
|
|||
_juce_set_property_if_not_set(${target} VST_NUM_MIDI_INS 16)
|
||||
_juce_set_property_if_not_set(${target} VST_NUM_MIDI_OUTS 16)
|
||||
|
||||
_juce_set_property_if_not_set(${target} VST3_MANIFEST_ENABLED FALSE)
|
||||
|
||||
_juce_set_property_if_not_set(${target} AU_SANDBOX_SAFE FALSE)
|
||||
|
||||
_juce_set_property_if_not_set(${target} SUPPRESS_AU_PLIST_RESOURCE_USAGE FALSE)
|
||||
|
|
@ -1792,7 +1788,6 @@ function(_juce_initialise_target target)
|
|||
IS_ARA_EFFECT
|
||||
ARA_FACTORY_ID
|
||||
ARA_DOCUMENT_ARCHIVE_ID
|
||||
VST3_MANIFEST_ENABLED
|
||||
|
||||
VST_COPY_DIR
|
||||
VST3_COPY_DIR
|
||||
|
|
|
|||
|
|
@ -369,8 +369,6 @@ void Project::initialiseAudioPluginValues()
|
|||
pluginVSTNumMidiOutputsValue.referTo (projectRoot, Ids::pluginVSTNumMidiOutputs, getUndoManager(), 16);
|
||||
|
||||
pluginLV2URIValue.referTo (projectRoot, Ids::lv2Uri, getUndoManager(), getDefaultLV2URI());
|
||||
|
||||
vst3ManifestEnabledValue.referTo (projectRoot, Ids::vst3ManifestEnabled, getUndoManager(), false);
|
||||
}
|
||||
|
||||
void Project::updateOldStyleConfigList()
|
||||
|
|
@ -1265,7 +1263,7 @@ bool Project::shouldBuildTargetType (build_tools::ProjectType::Target::Type targ
|
|||
case Target::VST3PlugIn:
|
||||
return shouldBuildVST3();
|
||||
case Target::VST3Helper:
|
||||
return shouldBuildVST3() && isVst3ManifestEnabled();
|
||||
return shouldBuildVST3();
|
||||
case Target::AAXPlugIn:
|
||||
return shouldBuildAAX();
|
||||
case Target::AudioUnitPlugIn:
|
||||
|
|
@ -1541,14 +1539,6 @@ void Project::createAudioPluginPropertyEditors (PropertyListBuilder& props)
|
|||
"If neither of these are selected, the appropriate one will be automatically added based on the \"Plugin is a synth\" option.");
|
||||
}
|
||||
|
||||
props.add (new ChoicePropertyComponent (vst3ManifestEnabledValue, "Plugin VST3 moduleinfo.json Enabled"),
|
||||
"Check this box if you want a moduleinfo.json file to be generated as part of the VST3 build. "
|
||||
"This may improve startup/scanning time for hosts that understand the contents of this file. "
|
||||
"This setting is disabled by default because the moduleinfo.json path can cause problems during code signing on macOS. "
|
||||
"Bundles containing a moduleinfo.json may be rejected by code signing verification at any point in the future without notice per https://developer.apple.com/library/archive/technotes/tn2206."
|
||||
"If you enable this setting, be aware that the code signature for the moduleinfo.json will be stored in its extended file attributes. "
|
||||
"Therefore, you will need to ensure that these attributes are not changed or removed when distributing the VST3.");
|
||||
|
||||
props.add (new MultiChoicePropertyComponent (pluginAAXCategoryValue, "Plugin AAX Category", getAllAAXCategoryStrings(), getAllAAXCategoryVars()),
|
||||
"AAX category.");
|
||||
|
||||
|
|
|
|||
|
|
@ -292,8 +292,6 @@ public:
|
|||
bool isPluginAAXBypassDisabled() const { return checkMultiChoiceVar (pluginCharacteristicsValue, Ids::pluginAAXDisableBypass); }
|
||||
bool isPluginAAXMultiMonoDisabled() const { return checkMultiChoiceVar (pluginCharacteristicsValue, Ids::pluginAAXDisableMultiMono); }
|
||||
|
||||
bool isVst3ManifestEnabled() const { return vst3ManifestEnabledValue.get(); }
|
||||
|
||||
void disableStandaloneForARAPlugIn();
|
||||
|
||||
static StringArray getAllAUMainTypeStrings() noexcept;
|
||||
|
|
@ -586,7 +584,7 @@ private:
|
|||
pluginCodeValue, pluginChannelConfigsValue, pluginCharacteristicsValue, pluginAUExportPrefixValue, pluginAAXIdentifierValue,
|
||||
pluginAUMainTypeValue, pluginAUSandboxSafeValue, pluginVSTCategoryValue, pluginVST3CategoryValue, pluginAAXCategoryValue,
|
||||
pluginEnableARA, pluginARAAnalyzableContentValue, pluginARAFactoryIDValue, pluginARAArchiveIDValue, pluginARACompatibleArchiveIDsValue, pluginARATransformFlagsValue,
|
||||
pluginVSTNumMidiInputsValue, pluginVSTNumMidiOutputsValue, pluginLV2URIValue, vst3ManifestEnabledValue;
|
||||
pluginVSTNumMidiInputsValue, pluginVSTNumMidiOutputsValue, pluginLV2URIValue;
|
||||
|
||||
//==============================================================================
|
||||
std::unique_ptr<EnabledModulesList> enabledModulesList;
|
||||
|
|
|
|||
|
|
@ -1774,7 +1774,7 @@ protected:
|
|||
if (target->type == MSVCTargetBase::LV2PlugIn && lv2HelperGuid.isNotEmpty())
|
||||
out << "\t\t" << lv2HelperGuid << " = " << lv2HelperGuid << newLine;
|
||||
|
||||
if (target->type == MSVCTargetBase::VST3PlugIn && vst3HelperGuid.isNotEmpty() && project.isVst3ManifestEnabled())
|
||||
if (target->type == MSVCTargetBase::VST3PlugIn && vst3HelperGuid.isNotEmpty())
|
||||
out << "\t\t" << vst3HelperGuid << " = " << vst3HelperGuid << newLine;
|
||||
|
||||
out << "\tEndProjectSection" << newLine;
|
||||
|
|
|
|||
|
|
@ -356,7 +356,7 @@ public:
|
|||
|
||||
if (type == LV2PlugIn)
|
||||
out << " $(JUCE_OUTDIR)/$(JUCE_TARGET_LV2_MANIFEST_HELPER)";
|
||||
else if (type == VST3PlugIn && owner.project.isVst3ManifestEnabled())
|
||||
else if (type == VST3PlugIn)
|
||||
out << " $(JUCE_OUTDIR)/$(JUCE_TARGET_VST3_MANIFEST_HELPER)";
|
||||
|
||||
out << newLine;
|
||||
|
|
@ -407,8 +407,6 @@ public:
|
|||
}
|
||||
|
||||
if (type == VST3PlugIn)
|
||||
{
|
||||
if (owner.project.isVst3ManifestEnabled())
|
||||
{
|
||||
out << "\t-$(V_AT)mkdir -p $(JUCE_OUTDIR)/$(JUCE_VST3DIR)/Contents/Resources" << newLine
|
||||
<< "\t-$(V_AT)rm -f $(JUCE_OUTDIR)/$(JUCE_VST3DIR)/Contents/moduleinfo.json" << newLine
|
||||
|
|
@ -416,10 +414,8 @@ public:
|
|||
"-create "
|
||||
"-version " << owner.project.getVersionString().quoted() << " "
|
||||
"-path \"$(JUCE_OUTDIR)/$(JUCE_VST3DIR)\" "
|
||||
"-output \"$(JUCE_OUTDIR)/$(JUCE_VST3DIR)/Contents/Resources/moduleinfo.json\"" << newLine;
|
||||
}
|
||||
|
||||
out << "\t-$(V_AT)[ ! \"$(JUCE_VST3DESTDIR)\" ] || (mkdir -p $(JUCE_VST3DESTDIR) && cp -R $(JUCE_COPYCMD_VST3))" << newLine;
|
||||
"-output \"$(JUCE_OUTDIR)/$(JUCE_VST3DIR)/Contents/Resources/moduleinfo.json\"" << newLine
|
||||
<< "\t-$(V_AT)[ ! \"$(JUCE_VST3DESTDIR)\" ] || (mkdir -p $(JUCE_VST3DESTDIR) && cp -R $(JUCE_COPYCMD_VST3))" << newLine;
|
||||
}
|
||||
else if (type == VSTPlugIn)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1291,7 +1291,7 @@ public:
|
|||
dependencyIDs.add (helperTarget->addDependencyFor (*this));
|
||||
}
|
||||
|
||||
if (type == VST3PlugIn && owner.project.isVst3ManifestEnabled())
|
||||
if (type == VST3PlugIn)
|
||||
{
|
||||
if (auto* helperTarget = owner.getTargetOfType (VST3Helper))
|
||||
dependencyIDs.add (helperTarget->addDependencyFor (*this));
|
||||
|
|
@ -2364,7 +2364,7 @@ private:
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (target->type == XcodeTarget::VST3PlugIn && project.isVst3ManifestEnabled())
|
||||
else if (target->type == XcodeTarget::VST3PlugIn)
|
||||
{
|
||||
script << "\"$CONFIGURATION_BUILD_DIR/" << Project::getVST3FileWriterName() << "\" "
|
||||
"-create "
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue