/// <summary> /// Write this module to a JsonWriter /// </summary> /// <param name="Writer">Writer to output to</param> void Write(JsonWriter Writer) { Writer.WriteObjectStart(); Writer.WriteValue("Name", Name); Writer.WriteValue("Type", Type.ToString()); Writer.WriteValue("LoadingPhase", LoadingPhase.ToString()); if (WhitelistPlatforms != null && WhitelistPlatforms.Count > 0) { Writer.WriteArrayStart("WhitelistPlatforms"); foreach (UnrealTargetPlatform WhitelistPlatform in WhitelistPlatforms) { Writer.WriteValue(WhitelistPlatform.ToString()); } Writer.WriteArrayEnd(); } if (BlacklistPlatforms != null && BlacklistPlatforms.Count > 0) { Writer.WriteArrayStart("BlacklistPlatforms"); foreach (UnrealTargetPlatform BlacklistPlatform in BlacklistPlatforms) { Writer.WriteValue(BlacklistPlatform.ToString()); } Writer.WriteArrayEnd(); } if (WhitelistTargets != null && WhitelistTargets.Length > 0) { Writer.WriteArrayStart("WhitelistTargets"); foreach (TargetType WhitelistTarget in WhitelistTargets) { Writer.WriteValue(WhitelistTarget.ToString()); } Writer.WriteArrayEnd(); } if (BlacklistTargets != null && BlacklistTargets.Length > 0) { Writer.WriteArrayStart("BlacklistTargets"); foreach (TargetType BlacklistTarget in BlacklistTargets) { Writer.WriteValue(BlacklistTarget.ToString()); } Writer.WriteArrayEnd(); } if (WhitelistTargetConfigurations != null && WhitelistTargetConfigurations.Length > 0) { Writer.WriteArrayStart("WhitelistTargetConfigurations"); foreach (UnrealTargetConfiguration WhitelistTargetConfiguration in WhitelistTargetConfigurations) { Writer.WriteValue(WhitelistTargetConfiguration.ToString()); } Writer.WriteArrayEnd(); } if (BlacklistTargetConfigurations != null && BlacklistTargetConfigurations.Length > 0) { Writer.WriteArrayStart("BlacklistTargetConfigurations"); foreach (UnrealTargetConfiguration BlacklistTargetConfiguration in BlacklistTargetConfigurations) { Writer.WriteValue(BlacklistTargetConfiguration.ToString()); } Writer.WriteArrayEnd(); } if (WhitelistPrograms != null && WhitelistPrograms.Length > 0) { Writer.WriteStringArrayField("WhitelistPrograms", WhitelistPrograms); } if (BlacklistPrograms != null && BlacklistPrograms.Length > 0) { Writer.WriteStringArrayField("BlacklistPrograms", BlacklistPrograms); } if (AdditionalDependencies != null && AdditionalDependencies.Length > 0) { Writer.WriteArrayStart("AdditionalDependencies"); foreach (string AdditionalDependency in AdditionalDependencies) { Writer.WriteValue(AdditionalDependency); } Writer.WriteArrayEnd(); } Writer.WriteObjectEnd(); }
/// <summary> /// Write the receipt to disk. /// </summary> /// <param name="Location">Output filename</param> /// <param name="EngineDir">Engine directory for expanded paths</param> /// <param name="ProjectDir">Project directory for expanded paths</param> public void Write(FileReference Location, DirectoryReference EngineDir, DirectoryReference ProjectDir) { using (JsonWriter Writer = new JsonWriter(Location.FullName)) { Writer.WriteObjectStart(); Writer.WriteValue("TargetName", TargetName); Writer.WriteValue("Platform", Platform.ToString()); Writer.WriteValue("Configuration", Configuration.ToString()); Writer.WriteObjectStart("Version"); Version.WriteProperties(Writer); Writer.WriteObjectEnd(); Writer.WriteArrayStart("BuildProducts"); foreach (BuildProduct BuildProduct in BuildProducts) { Writer.WriteObjectStart(); Writer.WriteValue("Path", InsertPathVariables(BuildProduct.Path, EngineDir, ProjectDir)); Writer.WriteValue("Type", BuildProduct.Type.ToString()); if (BuildProduct.IsPrecompiled) { Writer.WriteValue("IsPrecompiled", BuildProduct.IsPrecompiled); } Writer.WriteObjectEnd(); } Writer.WriteArrayEnd(); Writer.WriteArrayStart("RuntimeDependencies"); foreach (RuntimeDependency RuntimeDependency in RuntimeDependencies) { Writer.WriteObjectStart(); Writer.WriteValue("Path", InsertPathVariables(RuntimeDependency.Path, EngineDir, ProjectDir)); Writer.WriteValue("Type", RuntimeDependency.Type.ToString()); Writer.WriteObjectEnd(); } Writer.WriteArrayEnd(); if (AdditionalProperties.Count > 0) { Writer.WriteArrayStart("AdditionalProperties"); foreach (ReceiptProperty AdditionalProperty in AdditionalProperties) { Writer.WriteObjectStart(); Writer.WriteValue("Name", AdditionalProperty.Name); Writer.WriteValue("Value", AdditionalProperty.Value); Writer.WriteObjectEnd(); } Writer.WriteArrayEnd(); } if (PrecompiledBuildDependencies.Count > 0) { Writer.WriteArrayStart("PrecompiledBuildDependencies"); foreach (string PrecompiledBuildDependency in PrecompiledBuildDependencies.Select(x => InsertPathVariables(x, EngineDir, ProjectDir)).OrderBy(x => x)) { Writer.WriteValue(PrecompiledBuildDependency); } Writer.WriteArrayEnd(); } if (PrecompiledRuntimeDependencies.Count > 0) { Writer.WriteArrayStart("PrecompiledRuntimeDependencies"); foreach (string PrecompiledRuntimeDependency in PrecompiledRuntimeDependencies.Select(x => InsertPathVariables(x, EngineDir, ProjectDir)).OrderBy(x => x)) { Writer.WriteValue(PrecompiledRuntimeDependency); } Writer.WriteArrayEnd(); } Writer.WriteObjectEnd(); } }