Skip to content

Commit dd28445

Browse files
committed
Use common .props and .targets files instead of Prerequisites package.
1 parent d49db1a commit dd28445

22 files changed

+169
-144
lines changed

ThisAssembly.sln

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThisAssembly.AssemblyInfo",
2323
EndProject
2424
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThisAssembly.Strings", "src\Generators\ThisAssembly.Strings\ThisAssembly.Strings.csproj", "{3E7158B5-BFEF-4416-8226-9096C7C98268}"
2525
EndProject
26-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThisAssembly.Prerequisites", "src\ThisAssembly.Prerequisites\ThisAssembly.Prerequisites.csproj", "{568E5150-84AD-4619-BEA3-AA5EDF084ABC}"
27-
EndProject
2826
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThisAssembly.Constants", "src\Generators\ThisAssembly.Constants\ThisAssembly.Constants.csproj", "{31C53CCE-13FC-4890-803A-85CD146B909B}"
2927
EndProject
3028
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThisAssembly.Tests", "src\ThisAssembly.Tests\ThisAssembly.Tests.csproj", "{AD25424F-7DE0-4515-AE9F-B95414218292}"
@@ -93,10 +91,6 @@ Global
9391
{3E7158B5-BFEF-4416-8226-9096C7C98268}.Debug|Any CPU.Build.0 = Debug|Any CPU
9492
{3E7158B5-BFEF-4416-8226-9096C7C98268}.Release|Any CPU.ActiveCfg = Release|Any CPU
9593
{3E7158B5-BFEF-4416-8226-9096C7C98268}.Release|Any CPU.Build.0 = Release|Any CPU
96-
{568E5150-84AD-4619-BEA3-AA5EDF084ABC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
97-
{568E5150-84AD-4619-BEA3-AA5EDF084ABC}.Debug|Any CPU.Build.0 = Debug|Any CPU
98-
{568E5150-84AD-4619-BEA3-AA5EDF084ABC}.Release|Any CPU.ActiveCfg = Release|Any CPU
99-
{568E5150-84AD-4619-BEA3-AA5EDF084ABC}.Release|Any CPU.Build.0 = Release|Any CPU
10094
{31C53CCE-13FC-4890-803A-85CD146B909B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
10195
{31C53CCE-13FC-4890-803A-85CD146B909B}.Debug|Any CPU.Build.0 = Debug|Any CPU
10296
{31C53CCE-13FC-4890-803A-85CD146B909B}.Release|Any CPU.ActiveCfg = Release|Any CPU
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<Project>
2+
3+
<PropertyGroup>
4+
<ThisAssemblyCommonPropsImported>true</ThisAssemblyCommonPropsImported>
5+
</PropertyGroup>
6+
7+
<!-- Minimum version of Roslyn supporting our source generators -->
8+
<PropertyGroup>
9+
<ThisAssemblyMinRoslynVersion>4.2</ThisAssemblyMinRoslynVersion>
10+
<ThisAssemblyMinRoslynVersionHint>.NET SDK v6.0.300+ / Visual Studio 2022 17.2+</ThisAssemblyMinRoslynVersionHint>
11+
</PropertyGroup>
12+
13+
<ItemGroup>
14+
<CompilerVisibleProperty Include="ThisAssembly_ClassName" />
15+
<CompilerVisibleProperty Include="ThisAssembly_GeneratePublicClass" />
16+
<CompilerVisibleProperty Include="ThisAssembly_GenerateStaticClasses" />
17+
<CompilerVisibleProperty Include="ThisAssembly_GenerateAllConstantsAsFields" />
18+
<CompilerVisibleProperty Include="_ThisAssembly_FirstGenerator" />
19+
</ItemGroup>
20+
21+
</Project>
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<Project>
2+
3+
<PropertyGroup>
4+
<ThisAssemblyCommonTargetsImported>true</ThisAssemblyCommonTargetsImported>
5+
</PropertyGroup>
6+
7+
<Target Name="ThisAssembly_CheckRoslynVersion"
8+
BeforeTargets="BeforeCompile;CoreCompile"
9+
DependsOnTargets="ResolvePackageAssets">
10+
11+
<!--Evaluate warning conditons -->
12+
<ItemGroup>
13+
<_ThisAssemblyWarning Include="THIS001"
14+
Text="ThisAssembly uses Roslyn source generators, which are only supported in C# and Visual Basic."
15+
Condition="'$(Language)' != 'C#' And '$(Language)' != 'VB'" />
16+
<!--
17+
CompilerApiVersion: https://github.com/dotnet/sdk/pull/20793
18+
VersionLessThan: https://github.com/dotnet/msbuild/pull/4911
19+
-->
20+
<_ThisAssemblyWarning Include="THIS002"
21+
Text="ThisAssembly requires Roslyn version $(ThisAssemblyMinRoslynVersion) or later ($(ThisAssemblyMinRoslynVersionHint))."
22+
Condition="!$(CompilerApiVersion.StartsWith('roslyn'))
23+
Or $(CompilerApiVersion.Length) &lt; 9
24+
Or $([MSBuild]::VersionLessThan('$(CompilerApiVersion.Substring(6))', '$(ThisAssemblyMinRoslynVersion)'))" />
25+
</ItemGroup>
26+
27+
<!--Issue warnings as determined above -->
28+
<Warning Condition="@(_ThisAssemblyWarning->Count()) > 0"
29+
Code="%(Identity)"
30+
Text="%(Text)"
31+
File="$(MSBuildProjectFullPath)" />
32+
33+
<!--Free up some memory -->
34+
<ItemGroup>
35+
<_ThisAssemblyWarning Remove="@(_ThisAssemblyWarning)" />
36+
</ItemGroup>
37+
38+
</Target>
39+
40+
</Project>

src/Directory.props

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44
<PropertyGroup Label="NuGet">
55
<PackageTags>dotnet roslyn</PackageTags>
66
<PackOnBuild>true</PackOnBuild>
7-
<PackFolder>analyzers/dotnet/cs</PackFolder>
87
<GenerateDocumentationFile>false</GenerateDocumentationFile>
8+
9+
<!-- Use locally built NuGetizer if present -->
910
<RestoreSources Condition="Exists('$(MSBuildThisFileDirectory)..\..\nugetizer\bin\')">$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)..\..\nugetizer\bin'));$(RestoreSources)</RestoreSources>
1011

1112
<PackageProjectUrl>https://clarius.org/ThisAssembly</PackageProjectUrl>
@@ -17,6 +18,13 @@
1718
<PropertyGroup Label="Build">
1819
<SignAssembly>false</SignAssembly>
1920
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
21+
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
22+
</PropertyGroup>
23+
24+
<PropertyGroup>
25+
<SourceRoot>$(MSBuildThisFileDirectory)</SourceRoot>
26+
<GeneratorsRoot>$(SourceRoot)Generators\</GeneratorsRoot>
27+
<TestsRoot>$(SourceRoot)Tests\</TestsRoot>
2028
</PropertyGroup>
2129

2230
</Project>

src/Directory.targets

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
<Project>
22
<!-- Extend Directory.Build.targets -->
33

4+
<PropertyGroup>
5+
<SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking>
6+
</PropertyGroup>
7+
48
<ItemGroup Condition="'$(IsPackable)' == 'true'">
5-
<PackageFile Include="$(MSBuildThisFileDirectory)_._" PackagePath="lib/netstandard2.0/_._" />
6-
<PackageFile Include="*.props;*.targets" PackagePath="build\$(TargetFramework)\%(Filename)%(Extension)" />
9+
<PackageFile Include="*.props;*.targets" PackagePath="build\%(Filename)%(Extension)" />
710
</ItemGroup>
811

912
<!--

src/Generators/Directory.Build.targets

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,4 @@
7272
<PackageReference Include="NuGetizer" />
7373
</ItemGroup>
7474

75-
<!-- Common project references for all source generator projects -->
76-
<ItemGroup>
77-
<ProjectReference Include="$(MSBuildThisFileDirectory)..\ThisAssembly.Prerequisites\ThisAssembly.Prerequisites.csproj" />
78-
</ItemGroup>
79-
8075
</Project>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<Project>
2+
3+
<Import Project="$(MSBuildThisFileDirectory)ThisAssembly.Common.props"
4+
Condition="'$(ThisAssemblyCommonPropsImported)' != 'true'"/>
5+
6+
<PropertyGroup>
7+
<ThisAssemblyFirstGenerator Condition="'$(ThisAssemblyFirstGenerator)' == ''">$(MSBuildThisFileName)</ThisAssemblyFirstGenerator>
8+
</PropertyGroup>
9+
10+
</Project>
Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<Project>
2-
3-
<ItemGroup>
4-
<CompilerVisibleProperty Include="DebugThisAssemblyAssemblyInfo" />
5-
</ItemGroup>
6-
2+
3+
<Import Project="$(MSBuildThisFileDirectory)ThisAssembly.Common.targets"
4+
Condition="'$(ThisAssemblyCommonTargetsImported)' != 'true'"/>
5+
76
</Project>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<Project>
2+
3+
<Import Project="$(MSBuildThisFileDirectory)ThisAssembly.Common.props"
4+
Condition="'$(ThisAssemblyCommonPropsImported)' != 'true'"/>
5+
6+
<PropertyGroup>
7+
<ThisAssemblyFirstGenerator Condition="'$(ThisAssemblyFirstGenerator)' == ''">$(MSBuildThisFileName)</ThisAssemblyFirstGenerator>
8+
</PropertyGroup>
9+
10+
<ItemGroup>
11+
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="SourceItemType" />
12+
<CompilerVisibleItemMetadata Include="Constant" MetadataName="Comment" />
13+
<CompilerVisibleItemMetadata Include="Constant" MetadataName="Value" />
14+
</ItemGroup>
15+
16+
<ItemDefinitionGroup>
17+
<FileConstant>
18+
<Link />
19+
<AreaPath />
20+
<Area />
21+
<Value />
22+
</FileConstant>
23+
</ItemDefinitionGroup>
24+
25+
</Project>

src/Generators/ThisAssembly.Constants/ThisAssembly.Constants.targets

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,7 @@
11
<Project>
22

3-
<ItemGroup>
4-
<CompilerVisibleProperty Include="DebugThisAssemblyConstants" />
5-
6-
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="SourceItemType" />
7-
<CompilerVisibleItemMetadata Include="Constant" MetadataName="Comment" />
8-
<CompilerVisibleItemMetadata Include="Constant" MetadataName="Value" />
9-
</ItemGroup>
10-
11-
<ItemDefinitionGroup>
12-
<FileConstant>
13-
<Link />
14-
<AreaPath />
15-
<Area />
16-
<Value />
17-
</FileConstant>
18-
</ItemDefinitionGroup>
3+
<Import Project="$(MSBuildThisFileDirectory)ThisAssembly.Common.targets"
4+
Condition="'$(ThisAssemblyCommonTargetsImported)' != 'true'"/>
195

206
<Target Name="_InjectConstantAdditionalFiles"
217
BeforeTargets="PrepareForBuild;CompileDesignTime;GenerateMSBuildEditorConfigFileShouldRun"

0 commit comments

Comments
 (0)