using System;
using UnityEditor.Build;
namespace UnityEditor.TestTools.TestRunner
{
internal class UwpPlatformSetup : IPlatformSetup
{
private const string k_SettingsBuildConfiguration = "BuildConfiguration";
private bool m_InternetClientServer;
private bool m_PrivateNetworkClientServer;
public void Setup()
{
m_InternetClientServer = PlayerSettings.WSA.GetCapability(PlayerSettings.WSACapability.InternetClientServer);
m_PrivateNetworkClientServer = PlayerSettings.WSA.GetCapability(PlayerSettings.WSACapability.PrivateNetworkClientServer);
PlayerSettings.WSA.SetCapability(PlayerSettings.WSACapability.InternetClientServer, true);
PlayerSettings.WSA.SetCapability(PlayerSettings.WSACapability.PrivateNetworkClientServer, true);
// This setting is initialized only when Window Store App is selected from the Build Settings window, and
// is typically an empty strings when running tests via UTR on the command-line.
bool wsaSettingNotInitialized = string.IsNullOrEmpty(EditorUserBuildSettings.wsaArchitecture);
// If WSA build settings aren't fully initialized or running from a build machine, specify a default build configuration.
// Otherwise we can use the existing configuration specified by the user in Build Settings.
if (Environment.GetEnvironmentVariable("UNITY_THISISABUILDMACHINE") == "1" || wsaSettingNotInitialized)
{
#if UNITY_2021_3_OR_NEWER
#else
EditorUserBuildSettings.wsaSubtarget = WSASubtarget.PC;
#endif
EditorUserBuildSettings.wsaArchitecture = "x64";
EditorUserBuildSettings.SetPlatformSettings(BuildPipeline.GetBuildTargetName(BuildTarget.WSAPlayer), k_SettingsBuildConfiguration, WSABuildType.Debug.ToString());
EditorUserBuildSettings.wsaUWPBuildType = WSAUWPBuildType.ExecutableOnly;
#if UNITY_2021_2_OR_NEWER
PlayerSettings.SetIl2CppCompilerConfiguration(NamedBuildTarget.WindowsStoreApps, Il2CppCompilerConfiguration.Debug);
#else
PlayerSettings.SetIl2CppCompilerConfiguration(BuildTargetGroup.WSA, Il2CppCompilerConfiguration.Debug);
#endif
}
}
public void PostBuildAction()
{
}
public void PostSuccessfulBuildAction()
{
}
public void PostSuccessfulLaunchAction()
{
}
public void CleanUp()
{
PlayerSettings.WSA.SetCapability(PlayerSettings.WSACapability.InternetClientServer, m_InternetClientServer);
PlayerSettings.WSA.SetCapability(PlayerSettings.WSACapability.PrivateNetworkClientServer, m_PrivateNetworkClientServer);
}
}
}