diff --git a/XRTK.Lumin/Packages/com.xrtk.lumin/Editor/BuildPipeline.meta b/XRTK.Lumin/Packages/com.xrtk.lumin/Editor/BuildPipeline.meta
new file mode 100644
index 0000000..d3c59fc
--- /dev/null
+++ b/XRTK.Lumin/Packages/com.xrtk.lumin/Editor/BuildPipeline.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 58dbb33b2e0612b459a10291b45d170d
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/XRTK.Lumin/Packages/com.xrtk.lumin/Editor/BuildPipeline/LuminBuildInfo.cs b/XRTK.Lumin/Packages/com.xrtk.lumin/Editor/BuildPipeline/LuminBuildInfo.cs
new file mode 100644
index 0000000..a099031
--- /dev/null
+++ b/XRTK.Lumin/Packages/com.xrtk.lumin/Editor/BuildPipeline/LuminBuildInfo.cs
@@ -0,0 +1,136 @@
+// Copyright (c) XRTK. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using System;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using UnityEditor;
+using UnityEditor.Build.Reporting;
+using UnityEngine;
+using XRTK.Attributes;
+using XRTK.Definitions.Platforms;
+using XRTK.Extensions;
+using XRTK.Services;
+using Debug = UnityEngine.Debug;
+
+namespace XRTK.Editor.BuildPipeline
+{
+ [RuntimePlatform(typeof(LuminPlatform))]
+ public class LuminBuildInfo : BuildInfo
+ {
+ ///
+ public override BuildTarget BuildTarget => BuildTarget.Lumin;
+
+ ///
+ public override bool Install => true;
+
+ ///
+ public override string ExecutableFileExtension => ".mpk";
+
+ ///
+ public override void OnPreProcessBuild(BuildReport report)
+ {
+ if (!MixedRealityToolkit.ActivePlatforms.Contains(BuildPlatform) ||
+ EditorUserBuildSettings.activeBuildTarget != BuildTarget)
+ {
+ return;
+ }
+
+ if (MixedRealityToolkit.ActivePlatforms.Contains(BuildPlatform))
+ {
+ Debug.Log($"{nameof(LuminBuildInfo)}.{nameof(OnPreProcessBuild)}");
+ }
+
+ if (VersionCode.HasValue)
+ {
+ PlayerSettings.Lumin.versionCode = VersionCode.Value;
+ }
+ else
+ {
+ // Usually version codes are unique and not tied to the usual semver versions
+ // see https://developer.android.com/studio/publish/versioning#appversioning
+ // versionCode - A positive integer used as an internal version number.
+ // This number is used only to determine whether one version is more recent than another,
+ // with higher numbers indicating more recent versions. The Android system uses the
+ // versionCode value to protect against downgrades by preventing users from installing
+ // an APK with a lower versionCode than the version currently installed on their device.
+ PlayerSettings.Lumin.versionCode++;
+ }
+
+ var mabuPath = $"{Directory.GetParent(Application.dataPath)}\\Library\\Mabu";
+
+ if (IsCommandLine &&
+ Directory.Exists(mabuPath))
+ {
+ Directory.Delete(mabuPath, true);
+ }
+ }
+
+ ///
+ public override void OnPostProcessBuild(BuildReport buildReport)
+ {
+ if (!MixedRealityToolkit.ActivePlatforms.Contains(BuildPlatform) ||
+ EditorUserBuildSettings.activeBuildTarget != BuildTarget ||
+ buildReport.summary.result == BuildResult.Failed)
+ {
+ return;
+ }
+
+ if (MixedRealityToolkit.ActivePlatforms.Contains(BuildPlatform))
+ {
+ Debug.Log($"{nameof(LuminBuildInfo)}.{nameof(OnPostProcessBuild)}");
+ }
+
+ if (Install && !Application.isBatchMode)
+ {
+ InstallOnDevice();
+ }
+ }
+
+ private async void InstallOnDevice()
+ {
+ var canInstall = false;
+
+ try
+ {
+ var deviceResult = await new Process().RunAsync("mldb devices", false);
+
+ if (deviceResult.ExitCode == 0)
+ {
+ foreach (var deviceId in deviceResult.Output)
+ {
+ if (!string.IsNullOrWhiteSpace(deviceId))
+ {
+ Debug.Log(deviceId);
+
+ if (!deviceId.Contains("List"))
+ {
+ canInstall = true;
+ }
+ }
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ Debug.Log(e);
+ }
+
+ if (!canInstall)
+ {
+ Debug.Log("No devices found, skipping installation");
+ return;
+ }
+
+ try
+ {
+ await new Process().RunAsync($"mldb install -u \"{OutputDirectory}\"", true);
+ }
+ catch (Exception e)
+ {
+ Debug.Log(e);
+ }
+ }
+ }
+}
diff --git a/XRTK.Lumin/Packages/com.xrtk.lumin/Editor/BuildPipeline/LuminBuildInfo.cs.meta b/XRTK.Lumin/Packages/com.xrtk.lumin/Editor/BuildPipeline/LuminBuildInfo.cs.meta
new file mode 100644
index 0000000..611ceed
--- /dev/null
+++ b/XRTK.Lumin/Packages/com.xrtk.lumin/Editor/BuildPipeline/LuminBuildInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 381696c5d2b029348b62e696d4daf2b9
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {fileID: 2800000, guid: 8ac5213854cf4dbabd140decf8df1946, type: 3}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/XRTK.Lumin/Packages/com.xrtk.lumin/Editor/BuildPipeline/XRTK.Lumin.Editor.BuildPipeline.asmdef b/XRTK.Lumin/Packages/com.xrtk.lumin/Editor/BuildPipeline/XRTK.Lumin.Editor.BuildPipeline.asmdef
new file mode 100644
index 0000000..8b82d45
--- /dev/null
+++ b/XRTK.Lumin/Packages/com.xrtk.lumin/Editor/BuildPipeline/XRTK.Lumin.Editor.BuildPipeline.asmdef
@@ -0,0 +1,20 @@
+{
+ "name": "XRTK.Lumin.Editor.BuildPipeline",
+ "references": [
+ "GUID:f3241d040533491e8a1e2714b27c3111",
+ "GUID:e67d30660ec243e4836aac191d3f36fb",
+ "GUID:258402e6b12e10c43925784eabc239e5",
+ "GUID:49d8940ef8dc2f044abcf0447091dced"
+ ],
+ "includePlatforms": [
+ "Editor"
+ ],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
+}
\ No newline at end of file
diff --git a/XRTK.Lumin/Packages/com.xrtk.lumin/Editor/BuildPipeline/XRTK.Lumin.Editor.BuildPipeline.asmdef.meta b/XRTK.Lumin/Packages/com.xrtk.lumin/Editor/BuildPipeline/XRTK.Lumin.Editor.BuildPipeline.asmdef.meta
new file mode 100644
index 0000000..f8a3cb9
--- /dev/null
+++ b/XRTK.Lumin/Packages/com.xrtk.lumin/Editor/BuildPipeline/XRTK.Lumin.Editor.BuildPipeline.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 34b401ee334e22544a30886dfafd3fdd
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/XRTK.Lumin/Packages/com.xrtk.lumin/Runtime/LuminPlatform.cs b/XRTK.Lumin/Packages/com.xrtk.lumin/Runtime/LuminPlatform.cs
index f9f77a2..ab870b2 100644
--- a/XRTK.Lumin/Packages/com.xrtk.lumin/Runtime/LuminPlatform.cs
+++ b/XRTK.Lumin/Packages/com.xrtk.lumin/Runtime/LuminPlatform.cs
@@ -22,17 +22,14 @@ public override bool IsAvailable
}
}
+#if UNITY_EDITOR
+
///
- public override bool IsBuildTargetAvailable
+ public override UnityEditor.BuildTarget[] ValidBuildTargets { get; } =
{
- get
- {
-#if UNITY_EDITOR
- return UnityEditor.EditorUserBuildSettings.activeBuildTarget == UnityEditor.BuildTarget.Lumin;
-#else
- return false;
-#endif
- }
- }
+ UnityEditor.BuildTarget.Lumin
+ };
+
+#endif // UNITY_EDITOR
}
}
\ No newline at end of file
diff --git a/XRTK.Lumin/Packages/com.xrtk.lumin/package.json b/XRTK.Lumin/Packages/com.xrtk.lumin/package.json
index b8618f1..8f7bed5 100644
--- a/XRTK.Lumin/Packages/com.xrtk.lumin/package.json
+++ b/XRTK.Lumin/Packages/com.xrtk.lumin/package.json
@@ -13,7 +13,7 @@
"reality",
"lumin"
],
- "version": "0.2.6",
+ "version": "0.2.7",
"unity": "2019.4",
"license": "MIT",
"repository": {
@@ -22,7 +22,7 @@
},
"author": "XRTK Team (https://github.com/XRTK)",
"dependencies": {
- "com.xrtk.core": "0.2.13"
+ "com.xrtk.core": "0.2.14-preview.2"
},
"profiles": [
{
diff --git a/XRTK.Lumin/Packages/packages-lock.json b/XRTK.Lumin/Packages/packages-lock.json
index ae95cae..667d1ed 100644
--- a/XRTK.Lumin/Packages/packages-lock.json
+++ b/XRTK.Lumin/Packages/packages-lock.json
@@ -128,7 +128,7 @@
"url": "https://packages.unity.com"
},
"com.xrtk.core": {
- "version": "0.2.13",
+ "version": "0.2.14-preview.2",
"depth": 1,
"source": "registry",
"dependencies": {
@@ -145,7 +145,7 @@
"depth": 0,
"source": "embedded",
"dependencies": {
- "com.xrtk.core": "0.2.13"
+ "com.xrtk.core": "0.2.14-preview.2"
}
},
"com.unity.modules.ai": {
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index fe8f1cf..5d32a34 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -21,7 +21,7 @@ variables:
isReleaseBuild: $[ and( eq(variables['Build.SourceBranchName'], 'main'), or( eq(variables['build.reason'], 'BatchedCI'), eq(variables['build.reason'], 'Manual') ) ) ]
isPreviewBuild: $[ and( eq(variables['System.PullRequest.TargetBranch'], 'main'), eq(variables['build.reason'], 'PullRequest') ) ]
-name: $(package.name) ${{ coalesce( variables['date'], '$(System.PullRequest.PullRequestNumber)', '$(Date:yyyyMMdd)' ) }}$(Rev:.r)
+name: ${{ coalesce( variables['package.name'], variables['project.name'] ) }} ${{ coalesce( variables['date'], '$(System.PullRequest.PullRequestNumber)', '$(Date:yyyyMMdd)' ) }}$(Rev:.r)
pr:
autoCancel: true