|  | 
| 3 | 3 | // https://unity3d.com/legal/licenses/Unity_Reference_Only_License | 
| 4 | 4 | 
 | 
| 5 | 5 | using UnityEngine; | 
|  | 6 | +using System; | 
| 6 | 7 | using System.Collections.Generic; | 
| 7 | 8 | using DiscoveredTargetInfo = UnityEditor.BuildTargetDiscovery.DiscoveredTargetInfo; | 
| 8 | 9 | using TargetAttributes = UnityEditor.BuildTargetDiscovery.TargetAttributes; | 
| 9 | 10 | 
 | 
| 10 | 11 | namespace UnityEditor.Build | 
| 11 | 12 | { | 
| 12 | 13 |     // All settings for a build platform. | 
| 13 |  | -    internal class BuildPlatform | 
|  | 14 | +    internal class BuildPlatform : ICloneable | 
| 14 | 15 |     { | 
| 15 | 16 |         // short name used for texture settings, etc. | 
| 16 | 17 |         public string name; | 
| @@ -38,13 +39,24 @@ public BuildPlatform(string locTitle, string tooltip, string iconId, NamedBuildT | 
| 38 | 39 |         { | 
| 39 | 40 |             this.namedBuildTarget = namedBuildTarget; | 
| 40 | 41 |             name = namedBuildTarget.TargetName; | 
| 41 |  | -            m_Title = new ScalableGUIContent(locTitle, null, iconId); | 
|  | 42 | + | 
|  | 43 | +            // Workaround for some platforms which have | in their name which is also used as separator for tooltips | 
|  | 44 | +            if (locTitle.Contains("|"))       | 
|  | 45 | +                m_Title = new ScalableGUIContent(locTitle.Replace("|", " "), null, iconId); | 
|  | 46 | +            else | 
|  | 47 | +                m_Title = new ScalableGUIContent(locTitle, null, iconId); | 
|  | 48 | + | 
| 42 | 49 |             m_SmallTitle = new ScalableGUIContent(null, null, iconId + ".Small"); | 
| 43 | 50 |             this.tooltip = tooltip; | 
| 44 | 51 |             this.hideInUi = hideInUi; | 
| 45 | 52 |             this.defaultTarget = defaultTarget; | 
| 46 | 53 |             this.installed = installed; | 
| 47 | 54 |         } | 
|  | 55 | + | 
|  | 56 | +        public object Clone() | 
|  | 57 | +        { | 
|  | 58 | +            return MemberwiseClone(); | 
|  | 59 | +        } | 
| 48 | 60 |     } | 
| 49 | 61 | 
 | 
| 50 | 62 |     internal class BuildPlatformWithSubtarget : BuildPlatform | 
| @@ -132,29 +144,10 @@ public string GetBuildTargetDisplayName(NamedBuildTarget namedBuildTarget, Build | 
| 132 | 144 |             } | 
| 133 | 145 | 
 | 
| 134 | 146 |             var suffix = namedBuildTarget == NamedBuildTarget.Server ? " Server" : ""; | 
| 135 |  | - | 
| 136 |  | -            switch (target) | 
| 137 |  | -            { | 
| 138 |  | -                case BuildTarget.StandaloneWindows: | 
| 139 |  | -                case BuildTarget.StandaloneWindows64: | 
| 140 |  | -                    return $"Windows{suffix}"; | 
| 141 |  | -                case BuildTarget.StandaloneOSX: | 
| 142 |  | -                    // Deprecated | 
| 143 |  | -#pragma warning disable 612, 618 | 
| 144 |  | -                case BuildTarget.StandaloneOSXIntel: | 
| 145 |  | -                case BuildTarget.StandaloneOSXIntel64: | 
| 146 |  | -#pragma warning restore 612, 618 | 
| 147 |  | -                    return $"macOS{suffix}"; | 
| 148 |  | -                    // Deprecated | 
| 149 |  | -#pragma warning disable 612, 618 | 
| 150 |  | -                case BuildTarget.StandaloneLinux: | 
| 151 |  | -                case BuildTarget.StandaloneLinuxUniversal: | 
| 152 |  | -#pragma warning restore 612, 618 | 
| 153 |  | -                case BuildTarget.StandaloneLinux64: | 
| 154 |  | -                    return $"Linux{suffix}"; | 
| 155 |  | -            } | 
| 156 |  | - | 
| 157 |  | -            return "Unsupported Target"; | 
|  | 147 | +#pragma warning disable CS0618 // Member is obsolete | 
|  | 148 | +            string targetName = BuildTargetDiscovery.BuildPlatformDisplayName(target) + suffix; | 
|  | 149 | +#pragma warning restore CS0618 | 
|  | 150 | +            return targetName.Length == 0 ? "Unsupported Target" : targetName; | 
| 158 | 151 |         } | 
| 159 | 152 | 
 | 
| 160 | 153 |         public string GetModuleDisplayName(NamedBuildTarget namedBuildTarget, BuildTarget buildTarget) | 
|  | 
0 commit comments