// Copyright Epic Games, Inc. All Rights Reserved.
using System.Collections.Generic;
using UnrealBuildBase;
namespace UnrealBuildTool
{
///
/// Information about a PCH instance
///
class PrecompiledHeaderInstance
{
///
/// The file to include to use this shared PCH
///
public FileItem HeaderFile;
///
/// The definitions file
///
public FileItem DefinitionsFile;
///
/// The compile environment for this shared PCH
///
public CppCompileEnvironment CompileEnvironment;
///
/// The output files for the shared PCH
///
public CPPOutput Output;
///
/// List of modules using this instance
///
public HashSet Modules = new HashSet();
///
/// These are definitions that are immutable and should never be #undef. There are a few exceptions and we make sure those are not ending up in this list
///
public HashSet ImmutableDefinitions;
///
/// Parent PCH instance used in PCH chaining
///
public PrecompiledHeaderInstance? ParentPCHInstance;
///
/// Constructor
///
public PrecompiledHeaderInstance(FileItem HeaderFile, FileItem DefinitionsFile, CppCompileEnvironment CompileEnvironment, CPPOutput Output, HashSet ImmutableDefinitions)
{
this.HeaderFile = HeaderFile;
this.DefinitionsFile = DefinitionsFile;
this.CompileEnvironment = CompileEnvironment;
this.Output = Output;
this.ImmutableDefinitions = ImmutableDefinitions;
}
///
/// Return a string representation of this object for debugging
///
/// String representation of the object
public override string ToString()
{
return HeaderFile.Location.GetFileName();
}
}
}