// Copyright Epic Games, Inc. All Rights Reserved.
using System;
using EpicGames.Core;
namespace UnrealBuildTool
{
///
/// A single targeted (with a TargetFilePath) project within a project. A project may have any number of targets within it.
/// in themselves that the project wraps up.
///
class ProjectTarget : Project
{
/// The target rules file path on disk, if we have one
public FileReference TargetFilePath;
/// The project file path on disk
public FileReference ProjectFilePath;
/// Delegate for creating a rules instance for a given platform/configuration
public Func CreateRulesDelegate;
/// Delegate for creating a rules instance for a given platform/configuration/architecture
public Func CreateRulesDelegateWithArch;
public string Name => TargetFilePath.GetFileNameWithoutAnyExtensions();
public override string ToString()
{
return TargetFilePath.GetFileNameWithoutExtension();
}
public ProjectTarget(
FileReference TargetFilePath,
FileReference ProjectFilePath,
FileReference? UnrealProjectFilePath,
TargetRules? TargetRules,
UnrealTargetPlatform[] SupportedPlatforms,
Func CreateRulesDelegate,
Func CreateRulesDelegateWithArch
)
: base(SupportedPlatforms)
{
this.TargetFilePath = TargetFilePath;
this.ProjectFilePath = ProjectFilePath;
this.UnrealProjectFilePath = UnrealProjectFilePath;
this.TargetRules = TargetRules;
this.CreateRulesDelegate = CreateRulesDelegate;
this.CreateRulesDelegateWithArch = CreateRulesDelegateWithArch;
}
}
}