Skip to content
This repository has been archived by the owner on Aug 11, 2024. It is now read-only.

Commit

Permalink
Fixed a few issues with the build pipeline from the refactoring (#836)
Browse files Browse the repository at this point in the history
* Fixed a few issues with the bulid pipeline from the refactoring

* fixed some initializers

* missed one

* removed some debug stuff

* try to get or create build info asset any time we check for valid BuildInfo

* update progress bar a bit

* forgotten to override the android build platform

* Updated build info

* updated submodules
  • Loading branch information
StephenHodgson authored May 11, 2021
1 parent bda52b4 commit b1f1050
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 37 deletions.
8 changes: 3 additions & 5 deletions Editor/BuildPipeline/AndroidBuildInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
using UnityEngine;
using XRTK.Attributes;
using XRTK.Definitions.Platforms;
using XRTK.Interfaces;
using XRTK.Services;

namespace XRTK.Editor.BuildPipeline
Expand All @@ -17,6 +18,8 @@ public class AndroidBuildInfo : BuildInfo
/// <inheritdoc />
public override BuildTarget BuildTarget => BuildTarget.Android;

public override IMixedRealityPlatform BuildPlatform => new AndroidPlatform();

/// <inheritdoc />
public override string ExecutableFileExtension => ".apk";

Expand All @@ -29,11 +32,6 @@ public override void OnPreProcessBuild(BuildReport report)
return;
}

if (MixedRealityToolkit.ActivePlatforms.Contains(BuildPlatform))
{
Debug.Log($"{nameof(AndroidBuildInfo)}.{nameof(OnPreProcessBuild)}");
}

if (VersionCode.HasValue)
{
PlayerSettings.Android.bundleVersionCode = VersionCode.Value;
Expand Down
10 changes: 9 additions & 1 deletion Editor/BuildPipeline/BuildDeployWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,15 @@ private void BuildUnityProject()
Debug.Assert(!isBuilding, "Build already in progress!");
isBuilding = true;

UnityPlayerBuildTools.BuildUnityPlayer();
try
{
UnityPlayerBuildTools.BuildUnityPlayer();
}
catch (Exception e)
{
Debug.LogError(e);
EditorUtility.ClearProgressBar();
}

isBuilding = false;
}
Expand Down
49 changes: 31 additions & 18 deletions Editor/BuildPipeline/BuildInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,17 +58,8 @@ public override void OnInspectorGUI()
[RuntimePlatform(typeof(WindowsStandalonePlatform))]
public class BuildInfo : ScriptableObject, IBuildInfo
{
protected virtual void Awake()
{
bundleIdentifier = PlayerSettings.applicationIdentifier;
IsCommandLine = Application.isBatchMode;
BuildSymbols = string.Empty;
BuildTarget = EditorUserBuildSettings.activeBuildTarget;
Scenes = EditorBuildSettings.scenes.Where(scene => !string.IsNullOrWhiteSpace(scene.path)).Where(scene => scene.enabled);
}

[SerializeField]
private bool autoIncrement = false;
private bool autoIncrement;

/// <inheritdoc />
public bool AutoIncrement
Expand All @@ -84,7 +75,15 @@ public bool AutoIncrement
/// <inheritdoc />
public string BundleIdentifier
{
get => bundleIdentifier;
get
{
if (string.IsNullOrWhiteSpace(bundleIdentifier))
{
bundleIdentifier = PlayerSettings.applicationIdentifier;
}

return bundleIdentifier;
}
set
{
bundleIdentifier = value;
Expand All @@ -99,13 +98,13 @@ public string BundleIdentifier
public int? VersionCode { get; set; }

/// <inheritdoc />
public virtual BuildTarget BuildTarget { get; private set; }
public virtual BuildTarget BuildTarget => EditorUserBuildSettings.activeBuildTarget;

/// <inheritdoc />
public virtual IMixedRealityPlatform BuildPlatform => MixedRealityPreferences.CurrentPlatformTarget;

/// <inheritdoc />
public bool IsCommandLine { get; private set; }
public bool IsCommandLine => Application.isBatchMode;

private string outputDirectory;

Expand Down Expand Up @@ -154,8 +153,22 @@ public virtual string ExecutableFileExtension
}
}

private List<EditorBuildSettingsScene> scenes;

/// <inheritdoc />
public IEnumerable<EditorBuildSettingsScene> Scenes { get; set; }
public IEnumerable<EditorBuildSettingsScene> Scenes
{
get
{
if (scenes == null || !scenes.Any())
{
scenes = EditorBuildSettings.scenes.Where(scene => !string.IsNullOrWhiteSpace(scene.path)).Where(scene => scene.enabled).ToList();
}

return scenes;
}
set => scenes = value.ToList();
}

/// <inheritdoc />
public BuildOptions BuildOptions { get; set; }
Expand All @@ -164,7 +177,7 @@ public virtual string ExecutableFileExtension
public ColorSpace? ColorSpace { get; set; }

/// <inheritdoc />
public string BuildSymbols { get; set; }
public string BuildSymbols { get; set; } = string.Empty;

/// <inheritdoc />
public string Architecture { get; set; }
Expand Down Expand Up @@ -255,7 +268,7 @@ public virtual void ParseCommandLineArgs()

[SerializeField]
[Tooltip("Should the executable be installed OnPostProcessBuild?")]
private bool install = false;
private bool install;

/// <inheritdoc />
public virtual bool Install
Expand Down Expand Up @@ -301,7 +314,7 @@ public virtual void OnPreProcessBuild(BuildReport report)
{
if (MixedRealityToolkit.ActivePlatforms.Contains(BuildPlatform))
{
Debug.Log($"{nameof(BuildInfo)}.{nameof(OnPreProcessBuild)}");
// Do a thing.
}
}

Expand All @@ -310,7 +323,7 @@ public virtual void OnPostProcessBuild(BuildReport report)
{
if (MixedRealityToolkit.ActivePlatforms.Contains(BuildPlatform))
{
Debug.Log($"{nameof(BuildInfo)}.{nameof(OnPostProcessBuild)}");
// Do a thing.
}
}
}
Expand Down
47 changes: 34 additions & 13 deletions Editor/BuildPipeline/UnityPlayerBuildTools.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,10 @@ public static IBuildInfo BuildInfo
get
{
BuildInfo buildInfoInstance;
var currentPlatformTarget = MixedRealityPreferences.CurrentPlatformTarget.GetType();

if (buildInfo == null ||
buildInfo.BuildPlatform.GetType() != MixedRealityPreferences.CurrentPlatformTarget.GetType())
buildInfo.BuildPlatform.GetType() != currentPlatformTarget)
{
buildInfoInstance = AppDomain.CurrentDomain
.GetAssemblies()
Expand All @@ -56,7 +57,7 @@ public static IBuildInfo BuildInfo
BuildInfo instance = null;
var runtimePlatformAttributes = type.GetCustomAttributes<RuntimePlatformAttribute>();
if (runtimePlatformAttributes.All(runtimePlatformAttribute => runtimePlatformAttribute.Platform != MixedRealityPreferences.CurrentPlatformTarget.GetType()))
if (runtimePlatformAttributes.All(runtimePlatformAttribute => runtimePlatformAttribute.Platform != currentPlatformTarget))
{
return null;
}
Expand All @@ -67,9 +68,8 @@ public static IBuildInfo BuildInfo
{
var assetPath = AssetDatabase.GUIDToAssetPath(guid);
var asset = AssetDatabase.LoadAssetAtPath(assetPath, type) as IBuildInfo;
var currentPlatform = MixedRealityPreferences.CurrentPlatformTarget;
if (asset?.BuildPlatform.GetType() == currentPlatform.GetType())
if (asset?.BuildPlatform.GetType() == currentPlatformTarget)
{
instance = asset as BuildInfo;
break;
Expand Down Expand Up @@ -97,21 +97,44 @@ public static IBuildInfo BuildInfo
}

Debug.Assert(buildInfoInstance.IsNotNull());
var buildAsset = buildInfoInstance.GetOrCreateAsset($"{MixedRealityPreferences.ProfileGenerationPath}\\BuildInfo\\");
Debug.Assert(!buildAsset.IsNull());
}
else
{
buildInfoInstance = buildInfo as BuildInfo;
}

Debug.Assert(buildInfoInstance.IsNotNull());
var buildAsset = buildInfoInstance.GetOrCreateAsset($"{MixedRealityPreferences.ProfileGenerationPath}\\BuildInfo\\");
Debug.Assert(buildAsset.IsNotNull());
buildInfo = buildInfoInstance;
Debug.Assert(buildInfo != null);

return buildInfo;
}
}

private static string GetValidVersionString(string version)
{
if (string.IsNullOrWhiteSpace(version))
{
return "1.0.0";
}

var parts = version.Split('.');

switch (parts.Length)
{
case 0:
return "1.0.0";
case 1:
return $"{parts[0]}.0.0";
case 2:
return $"{parts[0]}.{parts[1]}.0";
default:
return $"{parts[0]}.{parts[1]}.{parts[2]}";
}
}

/// <summary>
/// Starts the build process with the provided <see cref="IBuildInfo"/>
/// </summary>
Expand All @@ -123,7 +146,7 @@ public static BuildReport BuildUnityPlayer()
throw new ArgumentNullException(nameof(BuildInfo));
}

EditorUtility.DisplayProgressBar("Build Pipeline", "Gathering Build Data...", 0.25f);
EditorUtility.DisplayProgressBar($"{BuildInfo.BuildPlatform.Name} Build Pipeline", "Gathering Build Data...", 0.25f);

if (BuildInfo.IsCommandLine)
{
Expand All @@ -134,12 +157,10 @@ public static BuildReport BuildUnityPlayer()
// major.minor.build
Version version = new Version(
(buildInfo.Version == null || buildInfo.AutoIncrement)
? string.IsNullOrWhiteSpace(Application.version)
? string.IsNullOrWhiteSpace(PlayerSettings.bundleVersion)
? "1.0.0"
: PlayerSettings.bundleVersion
: Application.version
: buildInfo.Version.ToString(3));
? string.IsNullOrWhiteSpace(PlayerSettings.bundleVersion)
? GetValidVersionString(Application.version)
: GetValidVersionString(PlayerSettings.bundleVersion)
: GetValidVersionString(buildInfo.Version.ToString()));

// Only auto incitement if the version wasn't specified in the build info.
if (buildInfo.Version == null &&
Expand Down

0 comments on commit b1f1050

Please sign in to comment.