IsPluginEnabledForTarget() always returns false for optional plugins

Hey there,

Regarding local argument for bBuildDeveloperTools - I suspect this could be an oversight in that we should be deferring to the target rules - which itself is using the same conditional if itself isn’t overridden.

Regarding AdditionalDependencies, it is used here:

`private ModuleRules CreateModuleRulesAndSetDefaults(string ModuleName, string ReferenceChain, ILogger Logger)
{
// Create the rules from the assembly
ModuleRules RulesObject = RulesAssembly.CreateModuleRules(ModuleName, Rules, ReferenceChain, Logger);

// Set whether the module requires an IMPLEMENT_MODULE macro
if (!RulesObject.bRequiresImplementModule.HasValue)
{
RulesObject.bRequiresImplementModule = (RulesObject.Type == ModuleRules.ModuleType.CPlusPlus && RulesObject.Name != Rules.LaunchModuleName);
}

// Reads additional dependencies array for project module from project file and fills PrivateDependencyModuleNames.
if (ProjectDescriptor != null && ProjectDescriptor.Modules != null)
{
ModuleDescriptor? Module = ProjectDescriptor.Modules.FirstOrDefault(x => x.Name.Equals(ModuleName, StringComparison.InvariantCultureIgnoreCase));
if (Module != null && Module.AdditionalDependencies != null)
{
RulesObject.PrivateDependencyModuleNames.AddRange(Module.AdditionalDependencies);
}
}
//…
}`I do feel like you’re on the right path regarding the defines for achieving your end goal.

Julian