Files
UnrealEngineUWP/Engine/Source/UE4Game.Target.cs
Dmitry Rekman 2cd9607c8d Build script: cook non-code projects for Linux.
This is needed so that build farm can populate DDC. Hopefully this will resolve (or at least alleviate) long cooking times problem that Engine-QA guys are seeing (TTP 331980, 332278).

#codereview Gil.Gribb

[CL 2065644 by Dmitry Rekman in Main branch]
2014-05-07 10:59:45 -04:00

100 lines
3.4 KiB
C#

// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.Collections.Generic;
public class UE4GameTarget : TargetRules
{
public UE4GameTarget( TargetInfo Target )
{
Type = TargetType.Game;
// Output to Engine/Binaries/<PLATFORM> even if built as monolithic
bOutputToEngineBinaries = true;
}
public override bool GetSupportedPlatforms(ref List<UnrealTargetPlatform> OutPlatforms)
{
return UnrealBuildTool.UnrealBuildTool.GetAllPlatforms(ref OutPlatforms, false);
}
public override void SetupBinaries(
TargetInfo Target,
ref List<UEBuildBinaryConfiguration> OutBuildBinaryConfigurations,
ref List<string> OutExtraModuleNames
)
{
OutExtraModuleNames.Add("UE4Game");
if (UnrealBuildTool.UnrealBuildTool.BuildingRocket())
{
if ((Target.Platform == UnrealTargetPlatform.Win32) || (Target.Platform == UnrealTargetPlatform.Win64))
{
OutExtraModuleNames.Add("OnlineSubsystemNull");
OutExtraModuleNames.Add("OnlineSubsystemAmazon");
if (UEBuildConfiguration.bCompileSteamOSS == true)
{
OutExtraModuleNames.Add("OnlineSubsystemSteam");
}
OutExtraModuleNames.Add("OnlineSubsystemFacebook");
}
else if (Target.Platform == UnrealTargetPlatform.Mac)
{
OutExtraModuleNames.Add("OnlineSubsystemNull");
if (UEBuildConfiguration.bCompileSteamOSS == true)
{
OutExtraModuleNames.Add("OnlineSubsystemSteam");
}
}
else if (Target.Platform == UnrealTargetPlatform.IOS)
{
OutExtraModuleNames.Add("OnlineSubsystemFacebook");
OutExtraModuleNames.Add("OnlineSubsystemIOS");
OutExtraModuleNames.Add("IOSAdvertising");
}
else if (Target.Platform == UnrealTargetPlatform.Android)
{
// @todo android: Add Android online subsystem
OutExtraModuleNames.Add("AndroidAdvertising");
}
}
}
public override void SetupGlobalEnvironment(
TargetInfo Target,
ref LinkEnvironmentConfiguration OutLinkEnvironmentConfiguration,
ref CPPEnvironmentConfiguration OutCPPEnvironmentConfiguration
)
{
if( UnrealBuildTool.UnrealBuildTool.BuildingRocket() )
{
UEBuildConfiguration.bCompileLeanAndMeanUE = true;
// Don't need editor or editor only data
UEBuildConfiguration.bBuildEditor = false;
UEBuildConfiguration.bBuildWithEditorOnlyData = false;
UEBuildConfiguration.bCompileAgainstEngine = true;
// no exports, so no need to verify that a .lib and .exp file was emitted by the linker.
OutLinkEnvironmentConfiguration.bHasExports = false;
}
else
{
// Tag it as a UE4Game build
OutCPPEnvironmentConfiguration.Definitions.Add("UE4GAME=1");
}
}
public override List<UnrealTargetPlatform> GUBP_GetPlatforms_MonolithicOnly(UnrealTargetPlatform HostPlatform)
{
if (HostPlatform == UnrealTargetPlatform.Mac)
{
return new List<UnrealTargetPlatform> { HostPlatform, UnrealTargetPlatform.IOS };
}
return new List<UnrealTargetPlatform> { HostPlatform, UnrealTargetPlatform.Win32, UnrealTargetPlatform.IOS, UnrealTargetPlatform.XboxOne, UnrealTargetPlatform.PS4, UnrealTargetPlatform.Android, UnrealTargetPlatform.Linux };
}
public override List<UnrealTargetConfiguration> GUBP_GetConfigs_MonolithicOnly(UnrealTargetPlatform HostPlatform, UnrealTargetPlatform Platform)
{
return new List<UnrealTargetConfiguration> { UnrealTargetConfiguration.Development, UnrealTargetConfiguration.Shipping, UnrealTargetConfiguration.Test };
}
}