From f049177e20a276049c61edbad631c1b2bbdd5706 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 15 Oct 2020 19:05:22 +0800 Subject: -advanced inspector +odin --- .../Scripts/Editor/BuildAOTAutomation.cs | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 Assets/Plugins/Sirenix/Odin Inspector/Scripts/Editor/BuildAOTAutomation.cs (limited to 'Assets/Plugins/Sirenix/Odin Inspector/Scripts/Editor/BuildAOTAutomation.cs') diff --git a/Assets/Plugins/Sirenix/Odin Inspector/Scripts/Editor/BuildAOTAutomation.cs b/Assets/Plugins/Sirenix/Odin Inspector/Scripts/Editor/BuildAOTAutomation.cs new file mode 100644 index 00000000..c4ec6f45 --- /dev/null +++ b/Assets/Plugins/Sirenix/Odin Inspector/Scripts/Editor/BuildAOTAutomation.cs @@ -0,0 +1,79 @@ +//----------------------------------------------------------------------- +// +// Copyright (c) Sirenix IVS. All rights reserved. +// +//----------------------------------------------------------------------- + +#if UNITY_EDITOR && UNITY_5_6_OR_NEWER + +namespace Sirenix.Serialization.Internal +{ + using Sirenix.Serialization; + using UnityEditor; + using UnityEditor.Build; + using System.IO; + using System; + +#if UNITY_2018_1_OR_NEWER + + using UnityEditor.Build.Reporting; + +#endif + +#if UNITY_2018_1_OR_NEWER + public class PreBuildAOTAutomation : IPreprocessBuildWithReport +#else + public class PreBuildAOTAutomation : IPreprocessBuild +#endif + { + public int callbackOrder { get { return -1000; } } + + public void OnPreprocessBuild(BuildTarget target, string path) + { + if (AOTGenerationConfig.Instance.ShouldAutomationGeneration(target)) + { + AOTGenerationConfig.Instance.ScanProject(); + AOTGenerationConfig.Instance.GenerateDLL(); + } + } + +#if UNITY_2018_1_OR_NEWER + + public void OnPreprocessBuild(BuildReport report) + { + this.OnPreprocessBuild(report.summary.platform, report.summary.outputPath); + } + +#endif + } + +#if UNITY_2018_1_OR_NEWER + public class PostBuildAOTAutomation : IPostprocessBuildWithReport +#else + public class PostBuildAOTAutomation : IPostprocessBuild +#endif + { + public int callbackOrder { get { return -1000; } } + + public void OnPostprocessBuild(BuildTarget target, string path) + { + if (AOTGenerationConfig.Instance.DeleteDllAfterBuilds && AOTGenerationConfig.Instance.ShouldAutomationGeneration(target)) + { + Directory.Delete(AOTGenerationConfig.Instance.AOTFolderPath, true); + File.Delete(AOTGenerationConfig.Instance.AOTFolderPath.TrimEnd('/', '\\') + ".meta"); + AssetDatabase.Refresh(); + } + } + +#if UNITY_2018_1_OR_NEWER + + public void OnPostprocessBuild(BuildReport report) + { + this.OnPostprocessBuild(report.summary.platform, report.summary.outputPath); + } + +#endif + } +} + +#endif // UNITY_EDITOR && UNITY_5_6_OR_NEWER \ No newline at end of file -- cgit v1.1-26-g67d0