// 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(); } } }