[new] HybridCLRSettings新增enableProfilerInReleaseBuild和enableStraceTraceInWebGLReleaseBuild两个选项

main
walon 2024-08-22 21:57:40 +08:00
parent 3705ca6e1f
commit 08f493ab3e
5 changed files with 31 additions and 1 deletions

View File

@ -44,7 +44,7 @@ namespace HybridCLR.Editor.BuildProcessors
#if UNITY_VISIONOS
case BuildTarget.VisionOS:
#endif
return $"{projectDir}/Library/Bee/artifacts/iOS/ManagedStripped";
return $"{projectDir}/Library/Bee/artifacts/iOS/ManagedStripped";
case BuildTarget.WebGL:
return $"{projectDir}/Library/Bee/artifacts/WebGL/ManagedStripped";
case BuildTarget.StandaloneOSX:

View File

@ -1,4 +1,5 @@
using HybridCLR.Editor.Link;
using HybridCLR.Editor.Settings;
using System;
using System.Collections.Generic;
using System.Linq;
@ -21,6 +22,8 @@ namespace HybridCLR.Editor.Commands
HotUpdateAssemblies = SettingsUtil.HotUpdateAssemblyNamesIncludePreserved,
OutputFile = $"{SettingsUtil.LocalIl2CppDir}/libil2cpp/hybridclr/generated/UnityVersion.h",
OutputFile2 = $"{SettingsUtil.LocalIl2CppDir}/libil2cpp/hybridclr/generated/AssemblyManifest.cpp",
EnableProfilerInReleaseBuild = HybridCLRSettings.Instance.enableProfilerInReleaseBuild,
EnableStraceTraceInWebGLReleaseBuild = HybridCLRSettings.Instance.enableStraceTraceInWebGLReleaseBuild,
};
var g = new Il2CppDef.Il2CppDefGenerator(options);

View File

@ -22,6 +22,10 @@ namespace HybridCLR.Editor.Il2CppDef
public string OutputFile2 { get; set; }
public string UnityVersion { get; set; }
public bool EnableProfilerInReleaseBuild { get; set; }
public bool EnableStraceTraceInWebGLReleaseBuild { get; set; }
}
private readonly Options _options;
@ -77,6 +81,16 @@ namespace HybridCLR.Editor.Il2CppDef
lines.Add($"#define HYBRIDCLR_TUANJIE_VERSION 10000");
#endif
if (_options.EnableProfilerInReleaseBuild)
{
lines.Add("#define HYBRIDCLR_ENABLE_PROFILER_IN_RELEASE_BUILD 1");
}
if (_options.EnableStraceTraceInWebGLReleaseBuild)
{
lines.Add("#define HYBRIDCLR_ENABLE_STRACE_TRACE_IN_WEBGL_RELEASE_BUILD 1");
}
frr.Replace("UNITY_VERSION", string.Join("\n", lines));
frr.Commit(_options.OutputFile);

View File

@ -25,6 +25,9 @@ namespace HybridCLR.Editor.Settings
private SerializedProperty _outputAOTGenericReferenceFile;
private SerializedProperty _maxGenericReferenceIteration;
private SerializedProperty _maxMethodBridgeGenericIteration;
private SerializedProperty _enableProfilerInReleaseBuild;
private SerializedProperty enableStraceTraceInWebGLReleaseBuild;
private GUIStyle buttonStyle;
public HybridCLRSettingsProvider() : base("Project/HybridCLR Settings", SettingsScope.Project) { }
public override void OnActivate(string searchContext, VisualElement rootElement)
@ -52,6 +55,8 @@ namespace HybridCLR.Editor.Settings
_outputAOTGenericReferenceFile = _serializedObject.FindProperty("outputAOTGenericReferenceFile");
_maxGenericReferenceIteration = _serializedObject.FindProperty("maxGenericReferenceIteration");
_maxMethodBridgeGenericIteration = _serializedObject.FindProperty("maxMethodBridgeGenericIteration");
_enableProfilerInReleaseBuild = _serializedObject.FindProperty("enableProfilerInReleaseBuild");
enableStraceTraceInWebGLReleaseBuild = _serializedObject.FindProperty("enableStraceTraceInWebGLReleaseBuild");
}
private void OnEditorFocused()
{
@ -140,6 +145,8 @@ namespace HybridCLR.Editor.Settings
EditorGUILayout.PropertyField(_outputAOTGenericReferenceFile);
EditorGUILayout.PropertyField(_maxGenericReferenceIteration);
EditorGUILayout.PropertyField(_maxMethodBridgeGenericIteration);
EditorGUILayout.PropertyField(_enableProfilerInReleaseBuild);
EditorGUILayout.PropertyField(enableStraceTraceInWebGLReleaseBuild);
if (EditorGUI.EndChangeCheck())
{
_serializedObject.ApplyModifiedProperties();

View File

@ -50,5 +50,11 @@ namespace HybridCLR.Editor.Settings
[Header("MethodBridge泛型搜索迭代次数")]
public int maxMethodBridgeGenericIteration = 10;
[Header("Release发布模式下也开启Profiler支持")]
public bool enableProfilerInReleaseBuild = false;
[Header("WebGL平台Release发布模式下也开启StraceTrace支持")]
public bool enableStraceTraceInWebGLReleaseBuild = false;
}
}