public ModuleProcessingException(STBuildModule Module, Exception InnerException) : base(string.Format("Exception thrown while processing dependent modules of {0}", Module.Name), InnerException) { }
/** Registers a module with this target. */ public void RegisterModule(STBuildModule Module) { Debug.Assert(Module.Target == this); Modules.Add(Module.Name, Module); }
/** * Modify the newly created module passed in for this platform. * This is not required - but allows for hiding details of a * particular platform. * * @param InModule The newly loaded module * @param Target The target being build */ public virtual void ModifyNewlyLoadedModule(STBuildModule InModule, TargetInfo Target) { }
public override void ModifyNewlyLoadedModule(STBuildModule InModule, TargetInfo Target) { if ((Target.Platform == STTargetPlatform.Win32) || (Target.Platform == STTargetPlatform.Win64)) { bool bBuildShaderFormats = STBuildConfiguration.bForceBuildShaderFormats; if (!STBuildConfiguration.bBuildRequiresCookedData) { if (InModule.ToString() == "TargetPlatform") { bBuildShaderFormats = true; } } // allow standalone tools to use target platform modules, without needing Engine if (STBuildConfiguration.bForceBuildTargetPlatforms) { InModule.AddDynamicallyLoadedModule("WindowsTargetPlatform"); InModule.AddDynamicallyLoadedModule("WindowsNoEditorTargetPlatform"); InModule.AddDynamicallyLoadedModule("WindowsServerTargetPlatform"); InModule.AddDynamicallyLoadedModule("WindowsClientTargetPlatform"); } if (bBuildShaderFormats) { InModule.AddDynamicallyLoadedModule("ShaderFormatD3D"); InModule.AddDynamicallyLoadedModule("ShaderFormatOpenGL"); } if (InModule.ToString() == "D3D11RHI") { // To enable platform specific D3D11 RHI Types InModule.AddPrivateIncludePath("Runtime/Windows/D3D11RHI/Private/Windows"); } } }
/** * Allow all registered build platforms to modify the newly created module * passed in for the given platform. * This is not required - but allows for hiding details of a particular platform. * * @param InModule The newly loaded module * @param Target The target being build * @param Only If this is not unknown, then only run that platform */ public static void PlatformModifyNewlyLoadedModule(STBuildModule InModule, TargetInfo Target, STTargetPlatform Only = STTargetPlatform.Unknown) { foreach (var PlatformEntry in BuildPlatformDictionary) { if (Only == STTargetPlatform.Unknown || PlatformEntry.Key == Only || PlatformEntry.Key == Target.Platform) { PlatformEntry.Value.ModifyNewlyLoadedModule(InModule, Target); } } }