| @@ -380,7 +380,7 @@ private: | |||
| auto isVSTHost = project.getEnabledModules().isModuleEnabled ("juce_audio_processors") | |||
| && (project.isConfigFlagEnabled ("JUCE_PLUGINHOST_VST3") || project.isConfigFlagEnabled ("JUCE_PLUGINHOST_VST")); | |||
| auto isPluginProject = proj.getProjectType().isAudioPlugin(); | |||
| auto isPluginProject = proj.isAudioPluginProject(); | |||
| OwnedArray<LibraryModule> modules; | |||
| proj.getEnabledModules().createRequiredModules (modules); | |||
| @@ -471,7 +471,7 @@ private: | |||
| auto customVst3Path = getAppSettings().getStoredPath (Ids::vst3Path, TargetOS::getThisOS()).get().toString(); | |||
| if (customVst3Path.isNotEmpty() && (project.getProjectType().isAudioPlugin() || isVSTHost)) | |||
| if (customVst3Path.isNotEmpty() && (project.isAudioPluginProject() || isVSTHost)) | |||
| paths.add (customVst3Path); | |||
| OwnedArray<LibraryModule> modules; | |||
| @@ -481,7 +481,7 @@ private: | |||
| { | |||
| paths.addIfNotAlreadyThere (module->getFolder().getParentDirectory().getFullPathName()); | |||
| if (customVst3Path.isEmpty() && (project.getProjectType().isAudioPlugin() || isVSTHost)) | |||
| if (customVst3Path.isEmpty() && (project.isAudioPluginProject() || isVSTHost)) | |||
| if (module->getID() == "juce_audio_processors") | |||
| paths.addIfNotAlreadyThere (module->getFolder().getChildFile ("format_types").getChildFile ("VST3_SDK").getFullPathName()); | |||
| } | |||
| @@ -571,7 +571,7 @@ bool EnabledModuleList::isModuleEnabled (const String& moduleID) const | |||
| bool EnabledModuleList::isAudioPluginModuleMissing() const | |||
| { | |||
| return project.getProjectType().isAudioPlugin() | |||
| return project.isAudioPluginProject() | |||
| && ! isModuleEnabled ("juce_audio_plugin_client"); | |||
| } | |||
| @@ -1006,7 +1006,7 @@ void Project::createPropertyEditors (PropertyListBuilder& props) | |||
| props.add (new TextPropertyComponent (bundleIdentifierValue, "Bundle Identifier", 256, false), | |||
| "A unique identifier for this product, mainly for use in OSX/iOS builds. It should be something like 'com.yourcompanyname.yourproductname'"); | |||
| if (getProjectType().isAudioPlugin()) | |||
| if (isAudioPluginProject()) | |||
| createAudioPluginPropertyEditors (props); | |||
| { | |||
| @@ -147,7 +147,6 @@ public: | |||
| String getVSTNumMIDIInputsString() const { return pluginVSTNumMidiInputsValue.get(); } | |||
| String getVSTNumMIDIOutputsString() const { return pluginVSTNumMidiOutputsValue.get(); } | |||
| //============================================================================== | |||
| static bool checkMultiChoiceVar (const ValueWithDefault& valueToCheck, Identifier idToCheck) noexcept | |||
| { | |||
| if (! valueToCheck.get().isArray()) | |||
| @@ -161,18 +160,18 @@ public: | |||
| return false; | |||
| } | |||
| //============================================================================== | |||
| bool shouldBuildVST() const { return checkMultiChoiceVar (pluginFormatsValue, Ids::buildVST); } | |||
| bool shouldBuildVST3() const { return checkMultiChoiceVar (pluginFormatsValue, Ids::buildVST3); } | |||
| bool shouldBuildAU() const { return checkMultiChoiceVar (pluginFormatsValue, Ids::buildAU); } | |||
| bool shouldBuildAUv3() const { return checkMultiChoiceVar (pluginFormatsValue, Ids::buildAUv3); } | |||
| bool shouldBuildRTAS() const { return checkMultiChoiceVar (pluginFormatsValue, Ids::buildRTAS); } | |||
| bool shouldBuildAAX() const { return checkMultiChoiceVar (pluginFormatsValue, Ids::buildAAX); } | |||
| bool shouldBuildStandalonePlugin() const { return checkMultiChoiceVar (pluginFormatsValue, Ids::buildStandalone); } | |||
| bool shouldBuildUnityPlugin() const { return checkMultiChoiceVar (pluginFormatsValue, Ids::buildUnity); } | |||
| bool shouldEnableIAA() const { return checkMultiChoiceVar (pluginFormatsValue, Ids::enableIAA); } | |||
| bool isAudioPluginProject() const { return getProjectType().isAudioPlugin(); } | |||
| bool shouldBuildVST() const { return isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::buildVST); } | |||
| bool shouldBuildVST3() const { return isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::buildVST3); } | |||
| bool shouldBuildAU() const { return isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::buildAU); } | |||
| bool shouldBuildAUv3() const { return isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::buildAUv3); } | |||
| bool shouldBuildRTAS() const { return isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::buildRTAS); } | |||
| bool shouldBuildAAX() const { return isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::buildAAX); } | |||
| bool shouldBuildStandalonePlugin() const { return isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::buildStandalone); } | |||
| bool shouldBuildUnityPlugin() const { return isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::buildUnity); } | |||
| bool shouldEnableIAA() const { return isAudioPluginProject() && checkMultiChoiceVar (pluginFormatsValue, Ids::enableIAA); } | |||
| //============================================================================== | |||
| bool isPluginSynth() const { return checkMultiChoiceVar (pluginCharacteristicsValue, Ids::pluginIsSynth); } | |||
| bool pluginWantsMidiInput() const { return checkMultiChoiceVar (pluginCharacteristicsValue, Ids::pluginWantsMidiIn); } | |||
| bool pluginProducesMidiOutput() const { return checkMultiChoiceVar (pluginCharacteristicsValue, Ids::pluginProducesMidiOut); } | |||
| @@ -183,7 +182,6 @@ public: | |||
| bool isPluginAAXBypassDisabled() const { return checkMultiChoiceVar (pluginCharacteristicsValue, Ids::pluginAAXDisableBypass); } | |||
| bool isPluginAAXMultiMonoDisabled() const { return checkMultiChoiceVar (pluginCharacteristicsValue, Ids::pluginAAXDisableMultiMono); } | |||
| //============================================================================== | |||
| static StringArray getAllAUMainTypeStrings() noexcept; | |||
| static Array<var> getAllAUMainTypeVars() noexcept; | |||
| Array<var> getDefaultAUMainTypes() const noexcept; | |||
| @@ -1350,7 +1350,7 @@ private: | |||
| mo << " \"" << file.toUnixStyle() << "\"" << newLine; | |||
| if ((! projectItem.shouldBeCompiled()) || (! shouldFileBeCompiledByDefault (f)) | |||
| || (getProject().getProjectType().isAudioPlugin() | |||
| || (getProject().isAudioPluginProject() | |||
| && targetType != ProjectType::Target::SharedCodeTarget | |||
| && targetType != ProjectType::Target::StandalonePlugIn)) | |||
| { | |||
| @@ -304,7 +304,7 @@ private: | |||
| template <class Target, class Exporter> | |||
| void getFileInfoList (Target& target, Exporter& exporter, const Project::Item& projectItem, std::vector<std::tuple<String, bool, String>>& fileInfoList) const | |||
| { | |||
| auto targetType = (getProject().getProjectType().isAudioPlugin() ? target.type : Target::Type::SharedCodeTarget); | |||
| auto targetType = (getProject().isAudioPluginProject() ? target.type : Target::Type::SharedCodeTarget); | |||
| if (projectItem.isGroup()) | |||
| { | |||
| @@ -432,7 +432,7 @@ private: | |||
| if (config.exporter.isLinux()) | |||
| { | |||
| if (target.isDynamicLibrary() || getProject().getProjectType().isAudioPlugin()) | |||
| if (target.isDynamicLibrary() || getProject().isAudioPluginProject()) | |||
| flags.add ("-fPIC"); | |||
| auto packages = getPackages(); | |||
| @@ -495,7 +495,7 @@ private: | |||
| { | |||
| auto librarySearchPaths = config.getLibrarySearchPaths(); | |||
| if (getProject().getProjectType().isAudioPlugin() && target.type != ProjectType::Target::SharedCodeTarget) | |||
| if (getProject().isAudioPluginProject() && target.type != ProjectType::Target::SharedCodeTarget) | |||
| librarySearchPaths.add (RelativePath (getSharedCodePath (config), RelativePath::buildTargetFolder).getParentDirectory().toUnixStyle().quoted()); | |||
| return librarySearchPaths; | |||
| @@ -601,7 +601,7 @@ private: | |||
| xml.createNewChildElement ("Option")->setAttribute ("type", getTypeIndex (target.type)); | |||
| xml.createNewChildElement ("Option")->setAttribute ("compiler", "gcc"); | |||
| if (getProject().getProjectType().isAudioPlugin() && target.type != ProjectType::Target::SharedCodeTarget) | |||
| if (getProject().isAudioPluginProject() && target.type != ProjectType::Target::SharedCodeTarget) | |||
| xml.createNewChildElement ("Option")->setAttribute ("external_deps", getSharedCodePath (config)); | |||
| { | |||
| @@ -635,7 +635,7 @@ private: | |||
| { | |||
| auto* linker = xml.createNewChildElement ("Linker"); | |||
| if (getProject().getProjectType().isAudioPlugin() && target.type != ProjectType::Target::SharedCodeTarget) | |||
| if (getProject().isAudioPluginProject() && target.type != ProjectType::Target::SharedCodeTarget) | |||
| setAddOption (*linker, "option", getSharedCodePath (config).quoted()); | |||
| for (auto& flag : getLinkerFlags (config, target)) | |||
| @@ -747,7 +747,7 @@ private: | |||
| // the single target | |||
| CodeBlocksTarget& getMainTarget() const | |||
| { | |||
| if (getProject().getProjectType().isAudioPlugin()) | |||
| if (getProject().isAudioPluginProject()) | |||
| return getTargetWithType (ProjectType::Target::SharedCodeTarget); | |||
| for (auto* target : targets) | |||
| @@ -761,7 +761,7 @@ private: | |||
| CodeBlocksTarget& getTargetForProjectItem (const Project::Item& projectItem) const | |||
| { | |||
| if (getProject().getProjectType().isAudioPlugin()) | |||
| if (getProject().isAudioPluginProject()) | |||
| { | |||
| if (! projectItem.shouldBeCompiled()) | |||
| return getTargetWithType (ProjectType::Target::SharedCodeTarget); | |||
| @@ -196,7 +196,8 @@ public: | |||
| void createConfigProperties (PropertyListBuilder& props) override | |||
| { | |||
| addVisualStudioPluginInstallPathProperties (props); | |||
| if (project.isAudioPluginProject()) | |||
| addVisualStudioPluginInstallPathProperties (props); | |||
| props.add (new ChoicePropertyComponent (architectureTypeValue, "Architecture", | |||
| { get32BitArchName(), get64BitArchName() }, | |||
| @@ -741,7 +742,7 @@ public: | |||
| //============================================================================== | |||
| void addFilesToCompile (const Project::Item& projectItem, XmlElement& cpps, XmlElement& headers, XmlElement& otherFiles) const | |||
| { | |||
| auto targetType = (getOwner().getProject().getProjectType().isAudioPlugin() ? type : SharedCodeTarget); | |||
| auto targetType = (getOwner().getProject().isAudioPluginProject() ? type : SharedCodeTarget); | |||
| if (projectItem.isGroup()) | |||
| { | |||
| @@ -823,7 +824,7 @@ public: | |||
| bool addFilesToFilter (const Project::Item& projectItem, const String& path, | |||
| XmlElement& cpps, XmlElement& headers, XmlElement& otherFiles, XmlElement& groups) const | |||
| { | |||
| auto targetType = (getOwner().getProject().getProjectType().isAudioPlugin() ? type : SharedCodeTarget); | |||
| auto targetType = (getOwner().getProject().isAudioPluginProject() ? type : SharedCodeTarget); | |||
| if (projectItem.isGroup()) | |||
| { | |||
| @@ -718,7 +718,7 @@ private: | |||
| } | |||
| else | |||
| { | |||
| if (! getProject().getProjectType().isAudioPlugin()) | |||
| if (! getProject().isAudioPluginProject()) | |||
| out << "all : " << target->getBuildProduct() << newLine << newLine; | |||
| target->writeTargetLine (out, packages); | |||
| @@ -903,7 +903,7 @@ private: | |||
| { | |||
| Array<std::pair<File, String>> targetFiles; | |||
| auto targetType = (p.getProjectType().isAudioPlugin() ? target->type : MakefileTarget::SharedCodeTarget); | |||
| auto targetType = (p.isAudioPluginProject() ? target->type : MakefileTarget::SharedCodeTarget); | |||
| for (auto& f : files) | |||
| if (p.getTargetTypeFromFilePath (f.first, true) == targetType) | |||
| @@ -955,7 +955,7 @@ private: | |||
| phonyTargetLine << ".PHONY: clean all strip"; | |||
| if (! getProject().getProjectType().isAudioPlugin()) | |||
| if (! getProject().isAudioPluginProject()) | |||
| return phonyTargetLine.toString(); | |||
| for (auto target : targets) | |||
| @@ -275,7 +275,7 @@ public: | |||
| "This way you can specify them for OS X and iOS separately, and modify the content of the resource folders " | |||
| "without re-saving the Projucer project."); | |||
| if (getProject().getProjectType().isAudioPlugin()) | |||
| if (getProject().isAudioPluginProject()) | |||
| props.add (new ChoicePropertyComponent (duplicateAppExResourcesFolderValue, "Add Duplicate Resources Folder to App Extension"), | |||
| "Disable this to prevent the Projucer from creating a duplicate resources folder for AUv3 app extensions."); | |||
| @@ -674,7 +674,9 @@ protected: | |||
| //============================================================================== | |||
| void createConfigProperties (PropertyListBuilder& props) override | |||
| { | |||
| addXcodePluginInstallPathProperties (props); | |||
| if (project.isAudioPluginProject()) | |||
| addXcodePluginInstallPathProperties (props); | |||
| addRecommendedLLVMCompilerWarningsProperty (props); | |||
| addGCCOptimisationProperty (props); | |||
| @@ -1024,7 +1026,7 @@ public: | |||
| { | |||
| Array<SourceFileInfo> result; | |||
| auto targetType = (owner.getProject().getProjectType().isAudioPlugin() ? type : SharedCodeTarget); | |||
| auto targetType = (owner.getProject().isAudioPluginProject() ? type : SharedCodeTarget); | |||
| if (projectItem.isGroup()) | |||
| { | |||
| @@ -1195,7 +1197,7 @@ public: | |||
| || (owner.isiOS() && owner.isiCloudPermissionsEnabled())) | |||
| return true; | |||
| if (owner.project.getProjectType().isAudioPlugin() | |||
| if (owner.project.isAudioPluginProject() | |||
| && ((owner.isOSX() && type == Target::AudioUnitv3PlugIn) | |||
| || (owner.isiOS() && type == Target::StandalonePlugIn && owner.getProject().shouldEnableIAA()))) | |||
| return true; | |||
| @@ -1512,7 +1514,7 @@ public: | |||
| librarySearchPaths.add (owner.getSearchPathForStaticLibrary (lib)); | |||
| } | |||
| if (owner.project.getProjectType().isAudioPlugin()) | |||
| if (owner.project.isAudioPluginProject()) | |||
| { | |||
| if (owner.getTargetOfType (Target::SharedCodeTarget) != nullptr) | |||
| { | |||
| @@ -2233,7 +2235,7 @@ private: | |||
| auto sourceFiles = target->sourceIDs; | |||
| if (target->type == XcodeTarget::SharedCodeTarget | |||
| || (! project.getProjectType().isAudioPlugin())) | |||
| || (! project.isAudioPluginProject())) | |||
| sourceFiles.addArray (sourceIDs); | |||
| target->addBuildPhase ("PBXSourcesBuildPhase", sourceFiles); | |||
| @@ -2244,11 +2246,11 @@ private: | |||
| target->addShellScriptBuildPhase ("Post-build script", getPostBuildScript()); | |||
| if (project.getProjectType().isAudioPlugin() && project.shouldBuildAUv3() | |||
| if (project.isAudioPluginProject() && project.shouldBuildAUv3() | |||
| && project.shouldBuildStandalonePlugin() && target->type == XcodeTarget::StandalonePlugIn) | |||
| embedAppExtension(); | |||
| if (project.getProjectType().isAudioPlugin() && project.shouldBuildUnityPlugin() | |||
| if (project.isAudioPluginProject() && project.shouldBuildUnityPlugin() | |||
| && target->type == XcodeTarget::UnityPlugIn) | |||
| embedUnityScript(); | |||
| @@ -2355,7 +2357,7 @@ private: | |||
| { | |||
| StringArray dependencies; | |||
| if (project.getProjectType().isAudioPlugin()) | |||
| if (project.isAudioPluginProject()) | |||
| { | |||
| if (target.type == XcodeTarget::StandalonePlugIn) // depends on AUv3 and shared code | |||
| { | |||
| @@ -3114,7 +3116,7 @@ private: | |||
| { | |||
| StringPairArray entitlements; | |||
| if (project.getProjectType().isAudioPlugin()) | |||
| if (project.isAudioPluginProject()) | |||
| { | |||
| if (isiOS() && project.shouldEnableIAA()) | |||
| entitlements.set ("inter-app-audio", "<true/>"); | |||
| @@ -3144,7 +3146,7 @@ private: | |||
| for (auto& option : getHardenedRuntimeOptions()) | |||
| entitlements.set (option, "<true/>"); | |||
| if (isAppSandboxEnabled() || (project.getProjectType().isAudioPlugin() && target.type == XcodeTarget::AudioUnitv3PlugIn)) | |||
| if (isAppSandboxEnabled() || (project.isAudioPluginProject() && target.type == XcodeTarget::AudioUnitv3PlugIn)) | |||
| { | |||
| entitlements.set ("com.apple.security.app-sandbox", "<true/>"); | |||
| @@ -95,7 +95,7 @@ public: | |||
| auto projectRootHash = project.getProjectRoot().toXmlString().hashCode(); | |||
| if (project.getProjectType().isAudioPlugin()) | |||
| if (project.isAudioPluginProject()) | |||
| { | |||
| writePluginCharacteristicsFile(); | |||
| @@ -157,7 +157,7 @@ public: | |||
| if (errors.size() == 0) | |||
| { | |||
| if (project.getProjectType().isAudioPlugin()) | |||
| if (project.isAudioPluginProject()) | |||
| writePluginCharacteristicsFile(); | |||
| writeAppConfigFile (modules, loadUserContentFromAppConfig()); | |||