[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 #if UNITY_VISIONOS
case BuildTarget.VisionOS: case BuildTarget.VisionOS:
#endif #endif
return $"{projectDir}/Library/Bee/artifacts/iOS/ManagedStripped"; return $"{projectDir}/Library/Bee/artifacts/iOS/ManagedStripped";
case BuildTarget.WebGL: case BuildTarget.WebGL:
return $"{projectDir}/Library/Bee/artifacts/WebGL/ManagedStripped"; return $"{projectDir}/Library/Bee/artifacts/WebGL/ManagedStripped";
case BuildTarget.StandaloneOSX: case BuildTarget.StandaloneOSX:

View File

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

View File

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

View File

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

View File

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