using System.Collections.Generic;
using UnityEditor;
///
/// Utility class that manages Define Symbols for a given set of build targets.
///
public class DefineSymbolsManager {
private Dictionary defineSymbols = new Dictionary();
public DefineSymbolsManager(BuildTargetGroup[] groups)
{
foreach (var group in groups)
{
var symbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(group);
defineSymbols.Add(group, new DefineSymbols(symbols));
}
}
public void UpdateFromBuildSettings()
{
var groups = defineSymbols.Keys;
defineSymbols = new Dictionary();
foreach (var group in groups)
{
var symbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(group);
defineSymbols.Add(group, new DefineSymbols(symbols));
}
}
public void ApplyToBuildSettings()
{
foreach (var e in defineSymbols)
{
PlayerSettings.SetScriptingDefineSymbolsForGroup(e.Key, e.Value.Get());
}
}
public void Add(string symbol)
{
foreach (var item in defineSymbols)
{
item.Value.Add(symbol);
}
}
public void Remove(string symbol)
{
foreach (var item in defineSymbols)
{
item.Value.Remove(symbol);
}
}
public bool Has(string symbol)
{
var has = true;
foreach (var item in defineSymbols)
{
has = has && item.Value.Has(symbol);
}
return has;
}
public override string ToString()
{
var str = "DefineSymbolsManager {\n";
foreach (var item in defineSymbols)
{
str += item.Key + ": " + item.Value.Get() + "\n";
}
str += "}";
return str;
}
}