Files
UnrealEngine/Engine/Source/Programs/UnrealBuildTool/System/PrecompiledHeaderInstance.cs
2025-05-18 13:04:45 +08:00

70 lines
1.9 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using System.Collections.Generic;
using UnrealBuildBase;
namespace UnrealBuildTool
{
/// <summary>
/// Information about a PCH instance
/// </summary>
class PrecompiledHeaderInstance
{
/// <summary>
/// The file to include to use this shared PCH
/// </summary>
public FileItem HeaderFile;
/// <summary>
/// The definitions file
/// </summary>
public FileItem DefinitionsFile;
/// <summary>
/// The compile environment for this shared PCH
/// </summary>
public CppCompileEnvironment CompileEnvironment;
/// <summary>
/// The output files for the shared PCH
/// </summary>
public CPPOutput Output;
/// <summary>
/// List of modules using this instance
/// </summary>
public HashSet<UEBuildModuleCPP> Modules = new HashSet<UEBuildModuleCPP>();
/// <summary>
/// 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
/// </summary>
public HashSet<string> ImmutableDefinitions;
/// <summary>
/// Parent PCH instance used in PCH chaining
/// </summary>
public PrecompiledHeaderInstance? ParentPCHInstance;
/// <summary>
/// Constructor
/// </summary>
public PrecompiledHeaderInstance(FileItem HeaderFile, FileItem DefinitionsFile, CppCompileEnvironment CompileEnvironment, CPPOutput Output, HashSet<string> ImmutableDefinitions)
{
this.HeaderFile = HeaderFile;
this.DefinitionsFile = DefinitionsFile;
this.CompileEnvironment = CompileEnvironment;
this.Output = Output;
this.ImmutableDefinitions = ImmutableDefinitions;
}
/// <summary>
/// Return a string representation of this object for debugging
/// </summary>
/// <returns>String representation of the object</returns>
public override string ToString()
{
return HeaderFile.Location.GetFileName();
}
}
}