示例#1
0
 /// <summary>
 /// Constructor. Reads a makefile from disk.
 /// </summary>
 /// <param name="Reader">The archive to read from</param>
 /// <param name="LastWriteTimeUtc">Last modified time for the makefile</param>
 public TargetMakefile(BinaryArchiveReader Reader, DateTime LastWriteTimeUtc)
 {
     CreateTimeUtc                = new DateTime(Reader.ReadLong(), DateTimeKind.Utc);
     ModifiedTimeUtc              = LastWriteTimeUtc;
     Diagnostics                  = Reader.ReadList(() => Reader.ReadString());
     ExternalMetadata             = Reader.ReadString();
     ExecutableFile               = Reader.ReadFileReference();
     ReceiptFile                  = Reader.ReadFileReference();
     ProjectIntermediateDirectory = Reader.ReadDirectoryReference();
     TargetType              = (TargetType)Reader.ReadInt();
     ConfigValueTracker      = new ConfigValueTracker(Reader);
     bDeployAfterCompile     = Reader.ReadBool();
     bHasProjectScriptPlugin = Reader.ReadBool();
     AdditionalArguments     = Reader.ReadArray(() => Reader.ReadString());
     PreBuildScripts         = Reader.ReadArray(() => Reader.ReadFileReference());
     Actions = Reader.ReadList(() => new Action(Reader));
     EnvironmentVariables    = Reader.ReadList(() => Tuple.Create(Reader.ReadString(), Reader.ReadString()));
     OutputItems             = Reader.ReadList(() => Reader.ReadFileItem());
     ModuleNameToOutputItems = Reader.ReadDictionary(() => Reader.ReadString(), () => Reader.ReadArray(() => Reader.ReadFileItem()), StringComparer.OrdinalIgnoreCase);
     HotReloadModuleNames    = Reader.ReadHashSet(() => Reader.ReadString(), StringComparer.OrdinalIgnoreCase);
     SourceDirectories       = Reader.ReadList(() => Reader.ReadDirectoryItem());
     DirectoryToSourceFiles  = Reader.ReadDictionary(() => Reader.ReadDirectoryItem(), () => Reader.ReadArray(() => Reader.ReadFileItem()));
     WorkingSet = Reader.ReadHashSet(() => Reader.ReadFileItem());
     CandidatesForWorkingSet = Reader.ReadHashSet(() => Reader.ReadFileItem());
     UObjectModules          = Reader.ReadList(() => new UHTModuleInfo(Reader));
     UObjectModuleHeaders    = Reader.ReadList(() => new UHTModuleHeaderInfo(Reader));
     PluginFiles             = Reader.ReadHashSet(() => Reader.ReadFileItem());
     ExternalDependencies    = Reader.ReadHashSet(() => Reader.ReadFileItem());
     InternalDependencies    = Reader.ReadHashSet(() => Reader.ReadFileItem());
 }
示例#2
0
        /// <summary>
        /// Read a file item as a DirectoryItem and name. This is slower than reading it directly, but results in a significantly smaller archive
        /// where most files are in the same directories.
        /// </summary>
        /// <param name="Reader">Archive to read from</param>
        /// <returns>FileItem read from the archive</returns>
        static FileItem ReadCompactFileItemData(this BinaryArchiveReader Reader)
        {
            DirectoryItem Directory = Reader.ReadDirectoryItem();
            string        Name      = Reader.ReadString();

            FileItem FileItem = FileItem.GetItemByFileReference(FileReference.Combine(Directory.Location, Name));

            FileItem.UpdateCachedDirectory(Directory);
            return(FileItem);
        }