diff --git a/Assets/BuildMetadata/Editor/BuildMetadataMenu.cs b/Assets/BuildMetadata/Editor/BuildMetadataMenu.cs new file mode 100644 index 0000000..dd184d4 --- /dev/null +++ b/Assets/BuildMetadata/Editor/BuildMetadataMenu.cs @@ -0,0 +1,13 @@ +using UnityEditor; + +namespace BuildMetadata.Editor +{ + internal static class BuildMetadataMenu + { + [MenuItem("Tools/Build Metadata/Generate Now", priority = 100)] + private static void GenerateNow() + { + BuildMetadataProcessor.Generate(); + } + } +} diff --git a/Assets/BuildMetadata/Editor/BuildMetadataProcessor.cs b/Assets/BuildMetadata/Editor/BuildMetadataProcessor.cs index 4b951c1..1146de8 100644 --- a/Assets/BuildMetadata/Editor/BuildMetadataProcessor.cs +++ b/Assets/BuildMetadata/Editor/BuildMetadataProcessor.cs @@ -25,7 +25,21 @@ public class BuildMetadataProcessor : IPreprocessBuildWithReport public void OnPreprocessBuild(BuildReport report) { var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(report.summary.platform); + Generate(buildTargetGroup, report.summary.guid.ToString()); + } + /// + /// Generates and writes the build metadata JSON using the active build target. + /// Can be called without starting a build. + /// + public static void Generate() + { + var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget); + Generate(buildTargetGroup, Guid.NewGuid().ToString()); + } + + private static void Generate(BuildTargetGroup buildTargetGroup, string buildGuid) + { var data = new BuildMetadataData( appVersion: Application.version, unityVersion: Application.unityVersion, @@ -41,7 +55,7 @@ public void OnPreprocessBuild(BuildReport report) scriptingDefines: PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup), buildMachine: Environment.MachineName, buildOS: Environment.OSVersion.ToString(), - buildGuid: report.summary.guid.ToString() + buildGuid: buildGuid ); PopulateExtensions(data);