Skip to content

Commit c958d3c

Browse files
sailroGitHub Enterprise
authored andcommitted
Merge pull request #188 from unity/unity-capability
Add Unity capability to SDK generation
2 parents 21e1b3f + c010eae commit c958d3c

File tree

1 file changed

+38
-1
lines changed

1 file changed

+38
-1
lines changed

Packages/com.unity.ide.visualstudio/Editor/ProjectGeneration/SdkStyleProjectGeneration.cs

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* Licensed under the MIT License. See License.txt in the project root for license information.
55
*--------------------------------------------------------------------------------------------*/
66

7+
using System;
78
using System.IO;
89
using System.Text;
910
using UnityEditor.Compilation;
@@ -29,12 +30,34 @@ public SdkStyleProjectGeneration() : base(
2930
{
3031
}
3132

33+
internal static readonly string[] SupportedCapabilities = new string[]
34+
{
35+
"Unity",
36+
};
37+
38+
internal static readonly string[] UnsupportedCapabilities = new string[]
39+
{
40+
"LaunchProfiles",
41+
"SharedProjectReferences",
42+
"ReferenceManagerSharedProjects",
43+
"ProjectReferences",
44+
"ReferenceManagerProjects",
45+
"COMReferences",
46+
"ReferenceManagerCOM",
47+
"AssemblyReferences",
48+
"ReferenceManagerAssemblies",
49+
};
50+
3251
internal override void GetProjectHeader(ProjectProperties properties, out StringBuilder headerBuilder)
3352
{
3453
headerBuilder = new StringBuilder();
3554

36-
headerBuilder.Append(@"<Project ToolsVersion=""Current"" Sdk=""Microsoft.NET.Sdk"">").Append(k_WindowsNewline);
55+
headerBuilder.Append(@"<Project ToolsVersion=""Current"">").Append(k_WindowsNewline);
3756
headerBuilder.Append(@" <!-- Generated file, do not modify, your changes will be overwritten (use AssetPostprocessor.OnGeneratedCSProject) -->").Append(k_WindowsNewline);
57+
58+
// Supported capabilities
59+
GetCapabilityBlock(headerBuilder, "Sdk.props", "Include", SupportedCapabilities);
60+
3861
headerBuilder.Append(@" <PropertyGroup>").Append(k_WindowsNewline);
3962
headerBuilder.Append(@" <GenerateAssemblyInfo>false</GenerateAssemblyInfo>").Append(k_WindowsNewline);
4063
headerBuilder.Append(@" <EnableDefaultItems>false</EnableDefaultItems>").Append(k_WindowsNewline);
@@ -78,7 +101,21 @@ internal override void AppendProjectReference(Assembly assembly, Assembly refere
78101

79102
internal override void GetProjectFooter(StringBuilder footerBuilder)
80103
{
104+
// Unsupported capabilities
105+
GetCapabilityBlock(footerBuilder, "Sdk.targets", "Remove", UnsupportedCapabilities);
106+
81107
footerBuilder.Append("</Project>").Append(k_WindowsNewline);
82108
}
109+
110+
internal static void GetCapabilityBlock(StringBuilder footerBuilder, string import, string attribute, string[] capabilities)
111+
{
112+
footerBuilder.Append($@" <Import Project=""{import}"" Sdk=""Microsoft.NET.Sdk"" />").Append(k_WindowsNewline);
113+
footerBuilder.Append(@" <ItemGroup>").Append(k_WindowsNewline);
114+
foreach (var capability in capabilities)
115+
{
116+
footerBuilder.Append($@" <ProjectCapability {attribute}=""{capability}"" />").Append(k_WindowsNewline);
117+
}
118+
footerBuilder.Append(@" </ItemGroup>").Append(k_WindowsNewline);
119+
}
83120
}
84121
}

0 commit comments

Comments
 (0)