Skip to content
This repository was archived by the owner on May 1, 2024. It is now read-only.

Commit e981bea

Browse files
pictosTheCodeTravelerjsuarezruiz
authoredDec 31, 2021
Adding Source Generator (#1714)
* Added Source Generator project * Configure Source Generator project * Make sure that we will use it just in NETSTANDARD1_0 * removed old build and csproj clean up * fixed sample app * added SG dll into Libs folder * Added SourceGenerator project in all solutions * Reference the SG dll Co-authored-by: Brandon Minnick <13558917+brminnick@users.noreply.github.com> Co-authored-by: Javier Suárez <javiersuarezruiz@hotmail.com>
1 parent 9716d94 commit e981bea

12 files changed

+109
-21
lines changed
 
Binary file not shown.

Diff for: ‎Xamarin.CommunityToolkit.All.sln

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio Version 16
4-
VisualStudioVersion = 16.0.31019.210
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.1.31903.286
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.CommunityToolkit", "src\CommunityToolkit\Xamarin.CommunityToolkit\Xamarin.CommunityToolkit.csproj", "{1B9B44A1-281F-4854-8DA9-4679A34593BB}"
77
EndProject
88
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.CommunityToolkit.Markup", "src\Markup\Xamarin.CommunityToolkit.Markup\Xamarin.CommunityToolkit.Markup.csproj", "{ED6D1344-7A87-4DCF-BBA3-13E319108C56}"
99
EndProject
10+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.CommunityToolkit.SourceGenerator", "src\SourceGenerator\Xamarin.CommunityToolkit.SourceGenerator\Xamarin.CommunityToolkit.SourceGenerator.csproj", "{13195939-6F8A-4991-B42A-C13DE7ED1EB6}"
11+
EndProject
1012
Global
1113
GlobalSection(SolutionConfigurationPlatforms) = preSolution
1214
Debug|Any CPU = Debug|Any CPU
@@ -21,6 +23,10 @@ Global
2123
{ED6D1344-7A87-4DCF-BBA3-13E319108C56}.Debug|Any CPU.Build.0 = Debug|Any CPU
2224
{ED6D1344-7A87-4DCF-BBA3-13E319108C56}.Release|Any CPU.ActiveCfg = Release|Any CPU
2325
{ED6D1344-7A87-4DCF-BBA3-13E319108C56}.Release|Any CPU.Build.0 = Release|Any CPU
26+
{13195939-6F8A-4991-B42A-C13DE7ED1EB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
27+
{13195939-6F8A-4991-B42A-C13DE7ED1EB6}.Debug|Any CPU.Build.0 = Debug|Any CPU
28+
{13195939-6F8A-4991-B42A-C13DE7ED1EB6}.Release|Any CPU.ActiveCfg = Release|Any CPU
29+
{13195939-6F8A-4991-B42A-C13DE7ED1EB6}.Release|Any CPU.Build.0 = Release|Any CPU
2430
EndGlobalSection
2531
GlobalSection(SolutionProperties) = preSolution
2632
HideSolutionNode = FALSE

Diff for: ‎samples/XCT.Sample.sln

+28-2
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.CommunityToolkit.Sa
3232
EndProject
3333
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.CommunityToolkit.Markup", "..\src\Markup\Xamarin.CommunityToolkit.Markup\Xamarin.CommunityToolkit.Markup.csproj", "{A5AAB927-15D7-498C-8295-4209F21836CE}"
3434
EndProject
35-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.CommunityToolkit.Markup.UnitTests", "..\src\Markup\Xamarin.CommunityToolkit.Markup.UnitTests\Xamarin.CommunityToolkit.Markup.UnitTests.csproj", "{AAE423C4-E9B4-434E-885C-2164C12BF79C}"
35+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.CommunityToolkit.Markup.UnitTests", "..\src\Markup\Xamarin.CommunityToolkit.Markup.UnitTests\Xamarin.CommunityToolkit.Markup.UnitTests.csproj", "{AAE423C4-E9B4-434E-885C-2164C12BF79C}"
3636
EndProject
37-
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Xamarin.CommunityToolkit.Sample.FSharp", "XCT.Sample.FSharp\Xamarin.CommunityToolkit.Sample.FSharp.fsproj", "{D5C2D19A-E929-4587-A9DE-FA50E46AAB59}"
37+
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Xamarin.CommunityToolkit.Sample.FSharp", "XCT.Sample.FSharp\Xamarin.CommunityToolkit.Sample.FSharp.fsproj", "{D5C2D19A-E929-4587-A9DE-FA50E46AAB59}"
38+
EndProject
39+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.CommunityToolkit.SourceGenerator", "..\src\SourceGenerator\Xamarin.CommunityToolkit.SourceGenerator\Xamarin.CommunityToolkit.SourceGenerator.csproj", "{47143F45-FF3B-4F74-9697-212886E9967E}"
3840
EndProject
3941
Global
4042
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -354,6 +356,30 @@ Global
354356
{D5C2D19A-E929-4587-A9DE-FA50E46AAB59}.Release|x64.Build.0 = Release|Any CPU
355357
{D5C2D19A-E929-4587-A9DE-FA50E46AAB59}.Release|x86.ActiveCfg = Release|Any CPU
356358
{D5C2D19A-E929-4587-A9DE-FA50E46AAB59}.Release|x86.Build.0 = Release|Any CPU
359+
{47143F45-FF3B-4F74-9697-212886E9967E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
360+
{47143F45-FF3B-4F74-9697-212886E9967E}.Debug|Any CPU.Build.0 = Debug|Any CPU
361+
{47143F45-FF3B-4F74-9697-212886E9967E}.Debug|ARM.ActiveCfg = Debug|Any CPU
362+
{47143F45-FF3B-4F74-9697-212886E9967E}.Debug|ARM.Build.0 = Debug|Any CPU
363+
{47143F45-FF3B-4F74-9697-212886E9967E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
364+
{47143F45-FF3B-4F74-9697-212886E9967E}.Debug|iPhone.Build.0 = Debug|Any CPU
365+
{47143F45-FF3B-4F74-9697-212886E9967E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
366+
{47143F45-FF3B-4F74-9697-212886E9967E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
367+
{47143F45-FF3B-4F74-9697-212886E9967E}.Debug|x64.ActiveCfg = Debug|Any CPU
368+
{47143F45-FF3B-4F74-9697-212886E9967E}.Debug|x64.Build.0 = Debug|Any CPU
369+
{47143F45-FF3B-4F74-9697-212886E9967E}.Debug|x86.ActiveCfg = Debug|Any CPU
370+
{47143F45-FF3B-4F74-9697-212886E9967E}.Debug|x86.Build.0 = Debug|Any CPU
371+
{47143F45-FF3B-4F74-9697-212886E9967E}.Release|Any CPU.ActiveCfg = Release|Any CPU
372+
{47143F45-FF3B-4F74-9697-212886E9967E}.Release|Any CPU.Build.0 = Release|Any CPU
373+
{47143F45-FF3B-4F74-9697-212886E9967E}.Release|ARM.ActiveCfg = Release|Any CPU
374+
{47143F45-FF3B-4F74-9697-212886E9967E}.Release|ARM.Build.0 = Release|Any CPU
375+
{47143F45-FF3B-4F74-9697-212886E9967E}.Release|iPhone.ActiveCfg = Release|Any CPU
376+
{47143F45-FF3B-4F74-9697-212886E9967E}.Release|iPhone.Build.0 = Release|Any CPU
377+
{47143F45-FF3B-4F74-9697-212886E9967E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
378+
{47143F45-FF3B-4F74-9697-212886E9967E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
379+
{47143F45-FF3B-4F74-9697-212886E9967E}.Release|x64.ActiveCfg = Release|Any CPU
380+
{47143F45-FF3B-4F74-9697-212886E9967E}.Release|x64.Build.0 = Release|Any CPU
381+
{47143F45-FF3B-4F74-9697-212886E9967E}.Release|x86.ActiveCfg = Release|Any CPU
382+
{47143F45-FF3B-4F74-9697-212886E9967E}.Release|x86.Build.0 = Release|Any CPU
357383
EndGlobalSection
358384
GlobalSection(SolutionProperties) = preSolution
359385
HideSolutionNode = FALSE

Diff for: ‎samples/XCT.Sample/Xamarin.CommunityToolkit.Sample.csproj

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
44
<TargetFramework>netstandard2.0</TargetFramework>
@@ -52,5 +52,8 @@
5252
<ItemGroup>
5353
<ProjectReference Include="..\..\src\CommunityToolkit\Xamarin.CommunityToolkit\Xamarin.CommunityToolkit.csproj" />
5454
<ProjectReference Include="..\..\src\Markup\Xamarin.CommunityToolkit.Markup\Xamarin.CommunityToolkit.Markup.csproj" />
55+
<ProjectReference Include="..\..\src\SourceGenerator\Xamarin.CommunityToolkit.SourceGenerator\Xamarin.CommunityToolkit.SourceGenerator.csproj"
56+
OutputItemType="Analyzer"
57+
ReferenceOutputAssembly="false"/>
5558
</ItemGroup>
5659
</Project>

Diff for: ‎src/CommunityToolkit/Xamarin.CommunityToolkit/Helpers/XCT.android.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
namespace Xamarin.CommunityToolkit.Helpers
88
{
9-
static class XCT
9+
static partial class XCT
1010
{
1111
static Context? context;
1212
static int? sdkInt;

Diff for: ‎src/CommunityToolkit/Xamarin.CommunityToolkit/Helpers/XCT.ios.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Xamarin.CommunityToolkit.Helpers
44
{
5-
static class XCT
5+
static partial class XCT
66
{
77
static bool? isiOS13OrNewer;
88

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
5+
namespace Xamarin.CommunityToolkit.Helpers
6+
{
7+
public static partial class XCT
8+
{
9+
/// <summary>
10+
/// Just a wrapper to solve VS xaml issues
11+
/// </summary>
12+
public static void Init()
13+
{
14+
}
15+
}
16+
}

Diff for: ‎src/CommunityToolkit/Xamarin.CommunityToolkit/Xamarin.CommunityToolkit.csproj

+1-2
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,7 @@
210210
</ItemGroup>
211211

212212
<ItemGroup>
213-
<Compile Remove="build\*.cs" />
214-
<None Include="build\**\*.cs;build\**\*.targets" Pack="true" PackagePath="build" />
213+
<None Include="..\..\..\Libs\SourceGenerator\Xamarin.CommunityToolkit.SourceGenerator.dll" Pack="true" Visible="true" PackagePath="analyzers/dotnet/xct/cs" />
215214
</ItemGroup>
216215

217216
<Import Project="..\..\mdoc.targets" Condition=" '$(OS)' == 'Windows_NT' AND '$(GenerateApiDocs)' == 'true'" />

Diff for: ‎src/CommunityToolkit/Xamarin.CommunityToolkit/build/PreserveXamarinCommunityToolkit.cs

-5
This file was deleted.

Diff for: ‎src/CommunityToolkit/Xamarin.CommunityToolkit/build/Xamarin.CommunityToolkit.targets

-7
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using Microsoft.CodeAnalysis;
6+
using Microsoft.CodeAnalysis.CSharp;
7+
using Microsoft.CodeAnalysis.CSharp.Syntax;
8+
using Microsoft.CodeAnalysis.Text;
9+
10+
namespace Xamarin.CommunityToolkit.SourceGenerator
11+
{
12+
[Generator]
13+
public class XCTGenerator : ISourceGenerator
14+
{
15+
const string code = @"
16+
namespace Xamarin.CommunityToolkit.Initializer
17+
{
18+
sealed class XCTInitCaller
19+
{
20+
public void CallInit()
21+
{
22+
Xamarin.CommunityToolkit.Helpers.XCT.Init();
23+
}
24+
}
25+
}";
26+
27+
public void Execute(GeneratorExecutionContext context)
28+
{
29+
context.AddSource("InitCaller.g.cs", SourceText.From(code, Encoding.UTF8));
30+
}
31+
32+
public void Initialize(GeneratorInitializationContext context)
33+
{
34+
}
35+
}
36+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>netstandard2.0</TargetFramework>
5+
<LangVersion>latest</LangVersion>
6+
<IsRoslynComponent>true</IsRoslynComponent>
7+
<IsPackable>false</IsPackable>
8+
</PropertyGroup>
9+
10+
<ItemGroup>
11+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.11.0" PrivateAssets="all" />
12+
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.3" PrivateAssets="all" />
13+
</ItemGroup>
14+
</Project>

0 commit comments

Comments
 (0)