Skip to content

Commit 08f493a

Browse files
committed
[new] HybridCLRSettings新增enableProfilerInReleaseBuild和enableStraceTraceInWebGLReleaseBuild两个选项
1 parent 3705ca6 commit 08f493a

5 files changed

Lines changed: 31 additions & 1 deletion

File tree

Editor/BuildProcessors/CopyStrippedAOTAssemblies.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public static string GetStripAssembliesDir2021(BuildTarget target)
4444
#if UNITY_VISIONOS
4545
case BuildTarget.VisionOS:
4646
#endif
47-
return $"{projectDir}/Library/Bee/artifacts/iOS/ManagedStripped";
47+
return $"{projectDir}/Library/Bee/artifacts/iOS/ManagedStripped";
4848
case BuildTarget.WebGL:
4949
return $"{projectDir}/Library/Bee/artifacts/WebGL/ManagedStripped";
5050
case BuildTarget.StandaloneOSX:

Editor/Commands/Il2CppDefGeneratorCommand.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using HybridCLR.Editor.Link;
2+
using HybridCLR.Editor.Settings;
23
using System;
34
using System.Collections.Generic;
45
using System.Linq;
@@ -21,6 +22,8 @@ public static void GenerateIl2CppDef()
2122
HotUpdateAssemblies = SettingsUtil.HotUpdateAssemblyNamesIncludePreserved,
2223
OutputFile = $"{SettingsUtil.LocalIl2CppDir}/libil2cpp/hybridclr/generated/UnityVersion.h",
2324
OutputFile2 = $"{SettingsUtil.LocalIl2CppDir}/libil2cpp/hybridclr/generated/AssemblyManifest.cpp",
25+
EnableProfilerInReleaseBuild = HybridCLRSettings.Instance.enableProfilerInReleaseBuild,
26+
EnableStraceTraceInWebGLReleaseBuild = HybridCLRSettings.Instance.enableStraceTraceInWebGLReleaseBuild,
2427
};
2528

2629
var g = new Il2CppDef.Il2CppDefGenerator(options);

Editor/Il2CppDef/Il2CppDefGenerator.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ public class Options
2222
public string OutputFile2 { get; set; }
2323

2424
public string UnityVersion { get; set; }
25+
26+
public bool EnableProfilerInReleaseBuild { get; set; }
27+
28+
public bool EnableStraceTraceInWebGLReleaseBuild { get; set; }
2529
}
2630

2731
private readonly Options _options;
@@ -77,6 +81,16 @@ private void GenerateIl2CppConfig()
7781
lines.Add($"#define HYBRIDCLR_TUANJIE_VERSION 10000");
7882
#endif
7983

84+
if (_options.EnableProfilerInReleaseBuild)
85+
{
86+
lines.Add("#define HYBRIDCLR_ENABLE_PROFILER_IN_RELEASE_BUILD 1");
87+
}
88+
89+
if (_options.EnableStraceTraceInWebGLReleaseBuild)
90+
{
91+
lines.Add("#define HYBRIDCLR_ENABLE_STRACE_TRACE_IN_WEBGL_RELEASE_BUILD 1");
92+
}
93+
8094
frr.Replace("UNITY_VERSION", string.Join("\n", lines));
8195

8296
frr.Commit(_options.OutputFile);

Editor/Settings/HybridCLRSettingProvider.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ public class HybridCLRSettingsProvider : SettingsProvider
2525
private SerializedProperty _outputAOTGenericReferenceFile;
2626
private SerializedProperty _maxGenericReferenceIteration;
2727
private SerializedProperty _maxMethodBridgeGenericIteration;
28+
private SerializedProperty _enableProfilerInReleaseBuild;
29+
private SerializedProperty enableStraceTraceInWebGLReleaseBuild;
30+
2831
private GUIStyle buttonStyle;
2932
public HybridCLRSettingsProvider() : base("Project/HybridCLR Settings", SettingsScope.Project) { }
3033
public override void OnActivate(string searchContext, VisualElement rootElement)
@@ -52,6 +55,8 @@ private void InitGUI()
5255
_outputAOTGenericReferenceFile = _serializedObject.FindProperty("outputAOTGenericReferenceFile");
5356
_maxGenericReferenceIteration = _serializedObject.FindProperty("maxGenericReferenceIteration");
5457
_maxMethodBridgeGenericIteration = _serializedObject.FindProperty("maxMethodBridgeGenericIteration");
58+
_enableProfilerInReleaseBuild = _serializedObject.FindProperty("enableProfilerInReleaseBuild");
59+
enableStraceTraceInWebGLReleaseBuild = _serializedObject.FindProperty("enableStraceTraceInWebGLReleaseBuild");
5560
}
5661
private void OnEditorFocused()
5762
{
@@ -140,6 +145,8 @@ public override void OnGUI(string searchContext)
140145
EditorGUILayout.PropertyField(_outputAOTGenericReferenceFile);
141146
EditorGUILayout.PropertyField(_maxGenericReferenceIteration);
142147
EditorGUILayout.PropertyField(_maxMethodBridgeGenericIteration);
148+
EditorGUILayout.PropertyField(_enableProfilerInReleaseBuild);
149+
EditorGUILayout.PropertyField(enableStraceTraceInWebGLReleaseBuild);
143150
if (EditorGUI.EndChangeCheck())
144151
{
145152
_serializedObject.ApplyModifiedProperties();

Editor/Settings/HybridCLRSettings.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,11 @@ public class HybridCLRSettings : ScriptableSingleton<HybridCLRSettings>
5050

5151
[Header("MethodBridge泛型搜索迭代次数")]
5252
public int maxMethodBridgeGenericIteration = 10;
53+
54+
[Header("Release发布模式下也开启Profiler支持")]
55+
public bool enableProfilerInReleaseBuild = false;
56+
57+
[Header("WebGL平台Release发布模式下也开启StraceTrace支持")]
58+
public bool enableStraceTraceInWebGLReleaseBuild = false;
5359
}
5460
}

0 commit comments

Comments
 (0)