59 lines
No EOL
2.6 KiB
C#
Executable file
59 lines
No EOL
2.6 KiB
C#
Executable file
using UnityEditor;
|
|
|
|
namespace ABI.CCK.Scripts.Editor.AssetProcessing
|
|
{
|
|
/// <summary>
|
|
/// Cleans up scripting symbols that were added by the CCK when the CCK is deleted.
|
|
/// This is done to prevent Third Party scripts from spewing compile errors when doing a fresh import or uninstall.
|
|
/// </summary>
|
|
public static class CCK_AutoCleanupProcessor
|
|
{
|
|
private const string CCK_ROOT_FOLDER = "Assets/ABI.CCK";
|
|
|
|
// All scripting symbols that can be added by the CCK
|
|
private static readonly string[] CCK_SCRIPTING_SYMBOLS =
|
|
{
|
|
"CVR_CCK_EXISTS",
|
|
// third party addons
|
|
"CCK_ADDIN_TRANSLATABLE_TMP",
|
|
"CCK_ADDIN_HIGHLIGHT_PLUS",
|
|
"CCK_ADDIN_MAGICACLOTHSUPPORT"
|
|
};
|
|
|
|
internal static void OnProcessDeletedAsset(string deletedAsset)
|
|
{
|
|
if (deletedAsset == CCK_ROOT_FOLDER)
|
|
OnCCKLikelyDeleted();
|
|
}
|
|
|
|
private static void OnCCKLikelyDeleted()
|
|
{
|
|
// Remove for BuildTargetGroups
|
|
var selectedBuildTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup; // just in case somehow user is on unsupported build target group
|
|
var buildTargetGroups = new[] { BuildTargetGroup.Standalone, BuildTargetGroup.Android, selectedBuildTargetGroup };
|
|
foreach (BuildTargetGroup buildTargetGroup in buildTargetGroups)
|
|
{
|
|
var defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup);
|
|
|
|
foreach (var scriptingSymbol in CCK_SCRIPTING_SYMBOLS)
|
|
if (defines.Contains(scriptingSymbol)) // remove all CCK scripting symbols
|
|
defines = defines.Replace(scriptingSymbol, "");
|
|
|
|
PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTargetGroup, defines);
|
|
}
|
|
|
|
// Remove for NamedBuildTarget ???
|
|
// var buildTargets = new[] { NamedBuildTarget.Standalone, NamedBuildTarget.Android };
|
|
// foreach (NamedBuildTarget buildTarget in buildTargets)
|
|
// {
|
|
// var defines = PlayerSettings.GetScriptingDefineSymbols(buildTarget);
|
|
//
|
|
// foreach (var scriptingSymbol in CCK_SCRIPTING_SYMBOLS)
|
|
// if (defines.Contains(scriptingSymbol)) // remove all CCK scripting symbols
|
|
// defines = defines.Replace(scriptingSymbol, "");
|
|
//
|
|
// PlayerSettings.SetScriptingDefineSymbols(buildTarget, defines);
|
|
// }
|
|
}
|
|
}
|
|
} |