123456789101112131415161718192021222324252627282930313233343536373839404142 |
- using System;
- using System.IO;
- using UnityEditor;
- using UnityEditor.Build;
- #pragma warning disable CS0618
- namespace SingularityGroup.HotReload.Editor {
- public class BuildGenerateBuildInfo : IPreprocessBuild, IPostprocessBuild {
- public int callbackOrder => 10;
- public void OnPreprocessBuild(BuildTarget target, string path) {
- try {
- if (!HotReloadBuildHelper.IncludeInThisBuild()) {
- return;
- }
- // write BuildInfo json into the StreamingAssets directory
- GenerateBuildInfo(BuildInfo.GetStoredPath(), target);
- } catch (BuildFailedException) {
- throw;
- } catch (Exception e) {
- throw new BuildFailedException(e);
- }
- }
-
- private static void GenerateBuildInfo(string buildFilePath, BuildTarget buildTarget) {
- var buildInfo = BuildInfoHelper.GenerateBuildInfoMainThread(buildTarget);
- // write to StreamingAssets
- // create StreamingAssets folder if not exists (in-case project has no StreamingAssets files)
- // ReSharper disable once AssignNullToNotNullAttribute
- Directory.CreateDirectory(Path.GetDirectoryName(buildFilePath));
- File.WriteAllText(buildFilePath, buildInfo.ToJson());
- }
-
- public void OnPostprocessBuild(BuildTarget target, string path) {
- try {
- File.Delete(BuildInfo.GetStoredPath());
- } catch {
- // ignore
- }
- }
- }
- }
|