Skip to content

Commit 4ad49f0

Browse files
author
David Kline
authored
Merge pull request #6729 from davidkline-ms/moveMsbToConfigurator
Move MSBuild for Unity enabling to MRTK Configurator
2 parents bee3059 + 1ebd279 commit 4ad49f0

File tree

5 files changed

+42
-10
lines changed

5 files changed

+42
-10
lines changed

Assets/MixedRealityToolkit/Inspectors/Setup/MixedRealityProjectConfiguratorWindow.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public class MixedRealityProjectConfiguratorWindow : EditorWindow
2020
{MRConfig.VirtualRealitySupported, true },
2121
{MRConfig.SinglePassInstancing, true },
2222
{MRConfig.SpatialAwarenessLayer, true },
23+
{MRConfig.EnableMSBuildForUnity, true },
2324
// UWP Capabilities
2425
{MRConfig.MicrophoneCapability, true },
2526
{MRConfig.InternetClientCapability, true },
@@ -144,7 +145,7 @@ private void RenderConfigurations()
144145
}
145146
RenderToggle(MRConfig.SinglePassInstancing, "Set Single Pass Instanced rendering path");
146147
RenderToggle(MRConfig.SpatialAwarenessLayer, "Set Default Spatial Awareness Layer");
147-
148+
RenderToggle(MRConfig.EnableMSBuildForUnity, "Enable MSBuild for Unity");
148149
EditorGUILayout.Space();
149150

150151
if (MixedRealityOptimizeUtils.IsBuildTargetUWP())

Assets/MixedRealityToolkit/Utilities/Editor/EditorProjectUtilities.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ public static class EditorProjectUtilities
1818
static EditorProjectUtilities()
1919
{
2020
CheckMinimumEditorVersion();
21-
PackageManifestUpdater.EnsureMSBuildForUnity();
2221
ApplyARFoundationUWPCompileFix();
2322
}
2423

Assets/MixedRealityToolkit/Utilities/Editor/PackageManifest/PackageManifestUpdater.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ namespace Microsoft.MixedReality.Toolkit.Utilities.Editor
1313
/// </summary>
1414
internal static class PackageManifestUpdater
1515
{
16-
private static string PackageManifestRelativePath = Path.Combine("Packages", "manifest.json");
17-
1816
/// <summary>
1917
/// Ensures the required settings exist in the package manager to allow for
2018
/// installing MSBuild for Unity.
@@ -23,12 +21,13 @@ internal static void EnsureMSBuildForUnity()
2321
{
2422
// Locate the full path to the package manifest.
2523
DirectoryInfo projectRoot = new DirectoryInfo(Application.dataPath).Parent;
26-
string manifestPath = Path.Combine(projectRoot.FullName, PackageManifestRelativePath);
27-
24+
string[] paths = { projectRoot.FullName, "Packages", "manifest.json" };
25+
string manifestPath = Path.Combine(paths);
26+
2827
// Verify that the package manifest file exists.
2928
if (!File.Exists(manifestPath))
3029
{
31-
Debug.LogError("Unable to locate the package manifest file");
30+
Debug.LogError($"Package manifest file ({manifestPath}) could not be found.");
3231
return;
3332
}
3433

@@ -58,7 +57,7 @@ internal static void EnsureMSBuildForUnity()
5857

5958
if (manifest == null)
6059
{
61-
Debug.LogError("Failed to load the package manifest");
60+
Debug.LogError($"Failed to read the package manifest file ({manifestPath})");
6261
return;
6362
}
6463

Assets/MixedRealityToolkit/Utilities/Editor/Setup/MixedRealityProjectConfigurator.cs

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public enum Configurations
3232
VirtualRealitySupported,
3333
SinglePassInstancing,
3434
SpatialAwarenessLayer,
35+
EnableMSBuildForUnity,
3536

3637
// WSA Capabilities
3738
SpatialPerceptionCapability = 1000,
@@ -60,6 +61,7 @@ public enum Configurations
6061
{ Configurations.VirtualRealitySupported, () => { return PlayerSettings.virtualRealitySupported; } },
6162
{ Configurations.SinglePassInstancing, () => { return MixedRealityOptimizeUtils.IsSinglePassInstanced(); } },
6263
{ Configurations.SpatialAwarenessLayer, () => { return HasSpatialAwarenessLayer(); } },
64+
{ Configurations.EnableMSBuildForUnity, () => { return IsMSBuildForUnityEnabled(); } },
6365

6466
// UWP Capabilities
6567
{ Configurations.SpatialPerceptionCapability, () => { return PlayerSettings.WSA.GetCapability(PlayerSettings.WSACapability.SpatialPerception); } },
@@ -91,6 +93,7 @@ public enum Configurations
9193
{ Configurations.VirtualRealitySupported, () => { PlayerSettings.virtualRealitySupported = true; } },
9294
{ Configurations.SinglePassInstancing, () => { MixedRealityOptimizeUtils.SetSinglePassInstanced(); } },
9395
{ Configurations.SpatialAwarenessLayer, () => { SetSpatialAwarenessLayer(); } },
96+
{ Configurations.EnableMSBuildForUnity, () => { PackageManifestUpdater.EnsureMSBuildForUnity(); } },
9497

9598
// UWP Capabilities
9699
{ Configurations.SpatialPerceptionCapability, () => { PlayerSettings.WSA.SetCapability(PlayerSettings.WSACapability.SpatialPerception, true); } },
@@ -105,7 +108,7 @@ public enum Configurations
105108
{ Configurations.AndroidMinSdkVersion, () => { PlayerSettings.Android.minSdkVersion = MinAndroidSdk; } },
106109

107110
// iOS Settings
108-
{ Configurations.IOSMinOSVersion, () => { PlayerSettings.iOS.targetOSVersionString = iOSMinOsVersion.ToString(); } },
111+
{ Configurations.IOSMinOSVersion, () => { PlayerSettings.iOS.targetOSVersionString = iOSMinOsVersion.ToString("n1"); } },
109112
{ Configurations.IOSArchitecture, () => { PlayerSettings.SetArchitecture(BuildTargetGroup.iOS, RequirediOSArchitecture); } },
110113
{ Configurations.IOSCameraUsageDescription, () => { PlayerSettings.iOS.cameraUsageDescription = iOSCameraUsageDescription; } },
111114
};
@@ -213,6 +216,36 @@ public static bool IsForceTextSerialization()
213216
return EditorSettings.serializationMode == SerializationMode.ForceText;
214217
}
215218

219+
/// <summary>
220+
/// Checks package manifest to see if MSBuild for Unity is included in the dependencies.
221+
/// </summary>
222+
public static bool IsMSBuildForUnityEnabled()
223+
{
224+
// Locate the full path to the package manifest.
225+
DirectoryInfo projectRoot = new DirectoryInfo(Application.dataPath).Parent;
226+
string[] paths = { projectRoot.FullName, "Packages", "manifest.json" };
227+
string manifestPath = Path.Combine(paths);
228+
229+
// Verify that the package manifest file exists.
230+
if (!File.Exists(manifestPath))
231+
{
232+
Debug.LogError($"Package manifest file ({manifestPath}) could not be found.");
233+
return false;
234+
}
235+
236+
// Load the manfiest file.
237+
string manifestFileContents = File.ReadAllText(manifestPath);
238+
if (string.IsNullOrWhiteSpace(manifestFileContents))
239+
{
240+
Debug.LogError($"Failed to read the package manifest file ({manifestPath})");
241+
return false;
242+
}
243+
244+
// Attempt to find the MSBuild for Unity package name.
245+
const string msBuildPackageName = "com.microsoft.msbuildforunity";
246+
return manifestFileContents.Contains(msBuildPackageName);
247+
}
248+
216249
/// <summary>
217250
/// Configures current Unity project to force text serialization
218251
/// </summary>

ProjectSettings/ProjectSettings.asset

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ PlayerSettings:
179179
StripUnusedMeshComponents: 0
180180
VertexChannelCompressionMask: 214
181181
iPhoneSdkVersion: 988
182-
iOSTargetOSVersionString: 11
182+
iOSTargetOSVersionString: 11.0
183183
tvOSSdkVersion: 0
184184
tvOSRequireExtendedGameController: 0
185185
tvOSTargetOSVersionString: 9.0

0 commit comments

Comments
 (0)