Files
UnrealEngineUWP/Engine/Source/Programs/UnrealBuildTool/System/XmlConfigFileAttribute.cs
jonathan adamczewski f89613487e UnrealBuildTool: Add support for deprecating an xml config option
Example code:

	[XmlConfigFile(Deprecated = true, NewAttributeName = "PrimaryProjectName")]
	protected string MasterProjectName = "UE5";


Example output:

WARNING: Deprecated setting found in "/Users/jonathan.adamczewski/.config/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml":
WARNING: The setting "MasterProjectName" is deprecated. Support for this setting will be removed in a future version of Unreal Engine.
WARNING: Use "PrimaryProjectName" in place of "MasterProjectName"
The value provided for "MasterProjectName" will be applied to "PrimaryProjectName"


#jira none

#ROBOMERGE-AUTHOR: jonathan.adamczewski
#ROBOMERGE-SOURCE: CL 17680559 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v875-17642767)

[CL 17680584 by jonathan adamczewski in ue5-release-engine-test branch]
2021-09-30 13:52:47 -04:00

41 lines
1.2 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace UnrealBuildTool
{
/// <summary>
/// Marks a field as being serializable from a config file
/// </summary>
[AttributeUsage(AttributeTargets.Field, AllowMultiple = true)]
class XmlConfigFileAttribute : Attribute
{
/// <summary>
/// The category for this config value. Optional; defaults to the declaring type name.
/// </summary>
public string? Category = null;
/// <summary>
/// Name of the key to read. Optional; defaults to the field name.
/// </summary>
public string? Name = null;
/// <summary>
/// Use this field to indicate that the XML attribute has been deprecated, and that a warning should
/// be shown to the user if it is used.
/// A deprecated field should also be marked with the [Obsolete] attribute.
/// </summary>
public bool Deprecated = false;
/// <summary>
/// If the attribute has been deprecated because it has been renamed, this field can be used to apply the
/// value used for this field to another.
/// </summary>
public string? NewAttributeName = null;
}
}