// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved. using System.Collections.Generic; using System.IO; using UnrealBuildTool; public class UnrealCEFSubProcessTarget : TargetRules { public UnrealCEFSubProcessTarget(TargetInfo Target) { Type = TargetType.Program; } // // TargetRules interface. // public override bool GetSupportedPlatforms(ref List OutPlatforms) { OutPlatforms.Add(UnrealTargetPlatform.Win32); OutPlatforms.Add(UnrealTargetPlatform.Win64); OutPlatforms.Add(UnrealTargetPlatform.Mac); OutPlatforms.Add(UnrealTargetPlatform.Linux); return true; } public override bool ShouldCompileMonolithic(UnrealTargetPlatform InPlatform, UnrealTargetConfiguration InConfiguration) { return true; } public override void SetupBinaries( TargetInfo Target, ref List OutBuildBinaryConfigurations, ref List OutExtraModuleNames ) { OutBuildBinaryConfigurations.Add( new UEBuildBinaryConfiguration(InType: UEBuildBinaryType.Executable, InModuleNames: new List() { "UnrealCEFSubProcess" }) ); } public override void SetupGlobalEnvironment( TargetInfo Target, ref LinkEnvironmentConfiguration OutLinkEnvironmentConfiguration, ref CPPEnvironmentConfiguration OutCPPEnvironmentConfiguration ) { // Turn off various third party features we don't need // Currently we force Lean and Mean mode UEBuildConfiguration.bCompileLeanAndMeanUE = true; // Currently this app is not linking against the engine, so we'll compile out references from Core to the rest of the engine UEBuildConfiguration.bCompileAgainstEngine = false; UEBuildConfiguration.bCompileAgainstCoreUObject = false; UEBuildConfiguration.bBuildWithEditorOnlyData = true; // Never use malloc profiling in CEFSubProcess. BuildConfiguration.bUseMallocProfiler = false; // Force all shader formats to be built and included. //UEBuildConfiguration.bForceBuildShaderFormats = true; // CEFSubProcess is a console application, not a Windows app (sets entry point to main(), instead of WinMain()) OutLinkEnvironmentConfiguration.bIsBuildingConsoleApplication = false; // Disable logging, as the sub processes are spawned often and logging will just slow them down OutCPPEnvironmentConfiguration.Definitions.Add("ALLOW_LOG_FILE=0"); } public override bool GUBP_AlwaysBuildWithBaseEditor() { return true; } public override bool GUBP_NeedsPlatformSpecificDLLs() { return true; } }