/// <summary> /// Write the makefile to the given archive /// </summary> /// <param name="Writer">The archive to write to</param> public void Write(BinaryArchiveWriter Writer) { Writer.WriteLong(CreateTimeUtc.Ticks); Writer.WriteString(ToolchainInfo); Writer.WriteString(ExternalMetadata); Writer.WriteFileReference(ReceiptFile); Writer.WriteDirectoryReference(ProjectIntermediateDirectory); Writer.WriteInt((int)TargetType); Writer.WriteBool(bDeployAfterCompile); Writer.WriteBool(bHasProjectScriptPlugin); Writer.WriteArray(AdditionalArguments, Item => Writer.WriteString(Item)); Writer.WriteArray(PreBuildScripts, Item => Writer.WriteFileReference(Item)); Writer.WriteList(Actions, Action => Action.Write(Writer)); Writer.WriteList(EnvironmentVariables, x => { Writer.WriteString(x.Item1); Writer.WriteString(x.Item2); }); Writer.WriteList(OutputItems, Item => Writer.WriteFileItem(Item)); Writer.WriteDictionary(ModuleNameToOutputItems, k => Writer.WriteString(k), v => Writer.WriteArray(v, e => Writer.WriteFileItem(e))); Writer.WriteHashSet(HotReloadModuleNames, x => Writer.WriteString(x)); Writer.WriteDictionary(DirectoryToSourceFiles, k => Writer.WriteDirectoryItem(k), v => Writer.WriteArray(v, e => Writer.WriteFileItem(e))); Writer.WriteHashSet(WorkingSet, x => Writer.WriteFileItem(x)); Writer.WriteHashSet(CandidatesForWorkingSet, x => Writer.WriteFileItem(x)); Writer.WriteList(UObjectModules, e => e.Write(Writer)); Writer.WriteList(UObjectModuleHeaders, x => x.Write(Writer)); Writer.WriteHashSet(PluginFiles, x => Writer.WriteFileItem(x)); Writer.WriteHashSet(AdditionalDependencies, x => Writer.WriteFileItem(x)); }
/// <summary> /// Write a TargetInfo to an archive on disk /// </summary> /// <param name="Writer">Archive to write to</param> public void Write(BinaryArchiveWriter Writer) { Writer.WriteString(Name); Writer.WriteString(Platform.ToString()); Writer.WriteString(Configuration.ToString()); Writer.WriteString(Architecture); Writer.WriteFileReference(ProjectFile); Writer.WriteArray(Arguments.GetRawArray(), Item => Writer.WriteString(Item)); }
/// <summary> /// ISerializable: Called when serialized to report additional properties that should be saved /// </summary> public void Write(BinaryArchiveWriter Writer) { Writer.WriteByte((byte)ActionType); Writer.WriteDirectoryReference(WorkingDirectory); Writer.WriteBool(bPrintDebugInfo); Writer.WriteFileReference(CommandPath); Writer.WriteString(CommandArguments); Writer.WriteString(CommandDescription); Writer.WriteString(StatusDescription); Writer.WriteBool(bCanExecuteRemotely); Writer.WriteBool(bCanExecuteRemotelyWithSNDBS); Writer.WriteBool(bIsGCCCompiler); Writer.WriteBool(bShouldOutputStatusDescription); Writer.WriteBool(bProducesImportLibrary); Writer.WriteList(PrerequisiteItems, Item => Writer.WriteFileItem(Item)); Writer.WriteList(ProducedItems, Item => Writer.WriteFileItem(Item)); Writer.WriteList(DeleteItems, Item => Writer.WriteFileItem(Item)); Writer.WriteFileItem(DependencyListFile); }
/// <summary> /// Write a file item to a binary archive /// </summary> /// <param name="Writer">Writer to serialize data to</param> /// <param name="FileItem">File item to write</param> public static void WriteFileItem(this BinaryArchiveWriter Writer, FileItem FileItem) { Writer.WriteObjectReference <FileItem>(FileItem, () => Writer.WriteFileReference(FileItem.Location)); }