diff --git a/Editor/Commands/StripAOTDllCommand.cs b/Editor/Commands/StripAOTDllCommand.cs index 4c27b47..84ee454 100644 --- a/Editor/Commands/StripAOTDllCommand.cs +++ b/Editor/Commands/StripAOTDllCommand.cs @@ -3,10 +3,12 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Reflection; using System.Text; using System.Threading.Tasks; using UnityEditor; using UnityEngine; +using static UnityEngine.Networking.UnityWebRequest; namespace HybridCLR.Editor.Commands { @@ -18,6 +20,37 @@ namespace HybridCLR.Editor.Commands GenerateStripedAOTDlls(EditorUserBuildSettings.activeBuildTarget); } + static BuildOptions GetBuildPlayerOptions(BuildTarget buildTarget) + { + BuildOptions options = BuildOptions.BuildScriptsOnly; + bool development = EditorUserBuildSettings.development; + if (development) + { + options |= BuildOptions.Development; + } + + if (EditorUserBuildSettings.allowDebugging && development) + { + options |= BuildOptions.AllowDebugging; + } + + if (EditorUserBuildSettings.connectProfiler && (development || buildTarget == BuildTarget.WSAPlayer)) + { + options |= BuildOptions.ConnectWithProfiler; + } + + if (EditorUserBuildSettings.buildWithDeepProfilingSupport && development) + { + options |= BuildOptions.EnableDeepProfilingSupport; + } + +#if UNITY_2021_2_OR_NEWER + options |= BuildOptions.CleanBuildCache; +#endif + + return options; + } + private static string GetLocationPathName(string buildDir, BuildTarget target) { switch(target) @@ -37,7 +70,7 @@ namespace HybridCLR.Editor.Commands string outputPath = $"{SettingsUtil.HybridCLRDataDir}/StrippedAOTDllsTempProj/{target}"; BashUtil.RemoveDir(outputPath); - var buildOptions = BuildOptions.BuildScriptsOnly; + var buildOptions = GetBuildPlayerOptions(target); #if UNITY_2021_2_OR_NEWER buildOptions |= BuildOptions.CleanBuildCache; #endif @@ -75,6 +108,8 @@ namespace HybridCLR.Editor.Commands } } + Debug.Log($"GenerateStripedAOTDlls build option:{buildOptions}"); + BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions() { scenes = EditorBuildSettings.scenes.Where(s => s.enabled).Select(s => s.path).ToArray(),