Browse Source

Setup generators project in the repository, use in the control catalog

pull/10407/head
Max Katz 3 years ago
parent
commit
30d1dc7e61
  1. 14
      Avalonia.sln
  2. 17
      build/SourceGenerators.props
  3. 14
      samples/ControlCatalog/ControlCatalog.csproj
  4. 8
      samples/ControlCatalog/Pages/FlyoutsPage.axaml.cs
  5. 11
      samples/ControlCatalog/Pages/LabelsPage.axaml.cs
  6. 14
      samples/ControlCatalog/Pages/RefreshContainerPage.axaml.cs
  7. 13
      samples/ControlCatalog/Pages/RelativePanelPage.axaml.cs
  8. 20
      samples/ControlCatalog/Pages/ThemePage.axaml.cs
  9. 57
      src/tools/Avalonia.Generators/Avalonia.Generators.csproj
  10. 16
      src/tools/Avalonia.Generators/Compiler/RoslynTypeSystem.cs
  11. 27
      src/tools/Avalonia.Generators/Directory.Build.props
  12. 4
      src/tools/Avalonia.Generators/Generator.cs
  13. 50
      tests/Avalonia.Generators.Tests/Avalonia.Generators.Tests.csproj

14
Avalonia.sln

@ -244,6 +244,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepe
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepeater.UnitTests", "tests\Avalonia.Controls.ItemsRepeater.UnitTests\Avalonia.Controls.ItemsRepeater.UnitTests.csproj", "{F4E36AA8-814E-4704-BC07-291F70F45193}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepeater.UnitTests", "tests\Avalonia.Controls.ItemsRepeater.UnitTests\Avalonia.Controls.ItemsRepeater.UnitTests.csproj", "{F4E36AA8-814E-4704-BC07-291F70F45193}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Generators", "src\tools\Avalonia.Generators\Avalonia.Generators.csproj", "{DDA28789-C21A-4654-86CE-D01E81F095C5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Generators.Tests", "tests\Avalonia.Generators.Tests\Avalonia.Generators.Tests.csproj", "{2D7C812B-7E73-4252-8EFD-BC8A4D5CCB9F}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -571,6 +575,14 @@ Global
{C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Debug|Any CPU.Build.0 = Release|Any CPU {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Debug|Any CPU.Build.0 = Release|Any CPU
{C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|Any CPU.ActiveCfg = Release|Any CPU {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|Any CPU.Build.0 = Release|Any CPU {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|Any CPU.Build.0 = Release|Any CPU
{DDA28789-C21A-4654-86CE-D01E81F095C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DDA28789-C21A-4654-86CE-D01E81F095C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DDA28789-C21A-4654-86CE-D01E81F095C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DDA28789-C21A-4654-86CE-D01E81F095C5}.Release|Any CPU.Build.0 = Release|Any CPU
{2D7C812B-7E73-4252-8EFD-BC8A4D5CCB9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2D7C812B-7E73-4252-8EFD-BC8A4D5CCB9F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2D7C812B-7E73-4252-8EFD-BC8A4D5CCB9F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2D7C812B-7E73-4252-8EFD-BC8A4D5CCB9F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -638,6 +650,8 @@ Global
{C810060E-3809-4B74-A125-F11533AF9C1B} = {9B9E3891-2366-4253-A952-D08BCEB71098} {C810060E-3809-4B74-A125-F11533AF9C1B} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{F4E36AA8-814E-4704-BC07-291F70F45193} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {F4E36AA8-814E-4704-BC07-291F70F45193} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{C692FE73-43DB-49CE-87FC-F03ED61F25C9} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637} {C692FE73-43DB-49CE-87FC-F03ED61F25C9} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637}
{DDA28789-C21A-4654-86CE-D01E81F095C5} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637}
{2D7C812B-7E73-4252-8EFD-BC8A4D5CCB9F} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A} SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A}

17
build/SourceGenerators.props

@ -1,5 +1,10 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <PropertyGroup>
<IncludeDevGenerators Condition="'$(IncludeDevGenerators)' == ''">true</IncludeDevGenerators>
<IncludeAvaloniaGenerators Condition="'$(IncludeAvaloniaGenerators)' == ''">false</IncludeAvaloniaGenerators>
</PropertyGroup>
<ItemGroup Condition="'$(IncludeDevGenerators)' == 'true'">
<ProjectReference <ProjectReference
Include="$(MSBuildThisFileDirectory)/../src/tools/DevGenerators/DevGenerators.csproj" Include="$(MSBuildThisFileDirectory)/../src/tools/DevGenerators/DevGenerators.csproj"
OutputItemType="Analyzer" OutputItemType="Analyzer"
@ -7,4 +12,14 @@
PrivateAssets="all" /> PrivateAssets="all" />
<Compile Include="$(MSBuildThisFileDirectory)/../src/Shared/SourceGeneratorAttributes.cs" /> <Compile Include="$(MSBuildThisFileDirectory)/../src/Shared/SourceGeneratorAttributes.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(IncludeAvaloniaGenerators)' == 'true'">
<ProjectReference
Include="../../src/tools/Avalonia.Generators/Avalonia.Generators.csproj"
OutputItemType="Analyzer"
ReferenceOutputAssembly="false"
PrivateAssets="all" />
</ItemGroup>
<Import Project="$(MSBuildThisFileDirectory)/../src/tools/Avalonia.Generators/Avalonia.Generators.props"
Condition="'$(IncludeDevGenerators)' == 'true'" />
</Project> </Project>

14
samples/ControlCatalog/ControlCatalog.csproj

@ -2,7 +2,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;net6.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;net6.0</TargetFrameworks>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<IncludeAvaloniaGenerators>true</IncludeAvaloniaGenerators>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Update="**\*.xaml.cs"> <Compile Update="**\*.xaml.cs">
@ -34,14 +35,5 @@
</ItemGroup> </ItemGroup>
<Import Project="..\..\build\BuildTargets.targets" /> <Import Project="..\..\build\BuildTargets.targets" />
<Import Project="..\..\build\SourceGenerators.props" />
<ItemGroup>
<None Remove="Pages\CustomDrawing.xaml" />
</ItemGroup>
<ItemGroup>
<AvaloniaResource Update="Pages\CustomDrawing.xaml">
<Generator></Generator>
</AvaloniaResource>
</ItemGroup>
</Project> </Project>

8
samples/ControlCatalog/Pages/FlyoutsPage.axaml.cs

@ -1,11 +1,10 @@
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Controls.Primitives; using Avalonia.Controls.Primitives;
using Avalonia.Markup.Xaml;
using Avalonia.Interactivity; using Avalonia.Interactivity;
namespace ControlCatalog.Pages namespace ControlCatalog.Pages
{ {
public class FlyoutsPage : UserControl public partial class FlyoutsPage : UserControl
{ {
public FlyoutsPage() public FlyoutsPage()
{ {
@ -28,11 +27,6 @@ namespace ControlCatalog.Pages
} }
} }
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
private void SetXamlTexts() private void SetXamlTexts()
{ {
var bfxt = this.Get<TextBlock>("ButtonFlyoutXamlText"); var bfxt = this.Get<TextBlock>("ButtonFlyoutXamlText");

11
samples/ControlCatalog/Pages/LabelsPage.axaml.cs

@ -1,11 +1,9 @@
using Avalonia; using Avalonia.Controls;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using ControlCatalog.Models; using ControlCatalog.Models;
namespace ControlCatalog.Pages namespace ControlCatalog.Pages
{ {
public class LabelsPage : UserControl public partial class LabelsPage : UserControl
{ {
private Person? _person; private Person? _person;
@ -25,11 +23,6 @@ namespace ControlCatalog.Pages
}; };
} }
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
public void DoSave() public void DoSave()
{ {

14
samples/ControlCatalog/Pages/RefreshContainerPage.axaml.cs

@ -1,18 +1,15 @@
using System.Threading.Tasks; using Avalonia.Controls;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using ControlCatalog.ViewModels; using ControlCatalog.ViewModels;
namespace ControlCatalog.Pages namespace ControlCatalog.Pages
{ {
public class RefreshContainerPage : UserControl public partial class RefreshContainerPage : UserControl
{ {
private RefreshContainerViewModel _viewModel; private RefreshContainerViewModel _viewModel;
public RefreshContainerPage() public RefreshContainerPage()
{ {
this.InitializeComponent(); InitializeComponent();
_viewModel = new RefreshContainerViewModel(); _viewModel = new RefreshContainerViewModel();
@ -27,10 +24,5 @@ namespace ControlCatalog.Pages
deferral.Complete(); deferral.Complete();
} }
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
} }
} }

13
samples/ControlCatalog/Pages/RelativePanelPage.axaml.cs

@ -1,19 +1,12 @@
using Avalonia; using Avalonia.Controls;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace ControlCatalog.Pages namespace ControlCatalog.Pages
{ {
public class RelativePanelPage : UserControl public partial class RelativePanelPage : UserControl
{ {
public RelativePanelPage() public RelativePanelPage()
{ {
this.InitializeComponent(); InitializeComponent();
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
} }
} }
} }

20
samples/ControlCatalog/Pages/ThemePage.axaml.cs

@ -1,35 +1,31 @@
using Avalonia; using Avalonia.Controls;
using Avalonia.Controls;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
using Avalonia.Styling; using Avalonia.Styling;
namespace ControlCatalog.Pages namespace ControlCatalog.Pages
{ {
public class ThemePage : UserControl public partial class ThemePage : UserControl
{ {
public static ThemeVariant Pink { get; } = new("Pink", ThemeVariant.Light); public static ThemeVariant Pink { get; } = new("Pink", ThemeVariant.Light);
public ThemePage() public ThemePage()
{ {
AvaloniaXamlLoader.Load(this); InitializeComponent();
var selector = this.FindControl<ComboBox>("Selector")!; Selector.Items = new[]
var themeVariantScope = this.FindControl<ThemeVariantScope>("ThemeVariantScope")!;
selector.Items = new[]
{ {
ThemeVariant.Default, ThemeVariant.Default,
ThemeVariant.Dark, ThemeVariant.Dark,
ThemeVariant.Light, ThemeVariant.Light,
Pink Pink
}; };
selector.SelectedIndex = 0; Selector.SelectedIndex = 0;
selector.SelectionChanged += (_, _) => Selector.SelectionChanged += (_, _) =>
{ {
if (selector.SelectedItem is ThemeVariant theme) if (Selector.SelectedItem is ThemeVariant theme)
{ {
themeVariantScope.RequestedThemeVariant = theme; ThemeVariantScope.RequestedThemeVariant = theme;
} }
}; };
} }

57
src/tools/Avalonia.Generators/Avalonia.Generators.csproj

@ -1,29 +1,30 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>preview</LangVersion> <IncludeBuildOutput>false</IncludeBuildOutput>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <PackageId>Avalonia.Generators</PackageId>
<IncludeBuildOutput>false</IncludeBuildOutput> <DefineConstants>$(DefineConstants);XAMLX_INTERNAL</DefineConstants>
<PackageId>XamlNameReferenceGenerator</PackageId> <IsPackable>true</IsPackable>
<NoPackageAnalysis>true</NoPackageAnalysis> </PropertyGroup>
<RootNamespace>Avalonia.Generators</RootNamespace>
<EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules> <ItemGroup>
</PropertyGroup> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.4.0" PrivateAssets="all" />
<ItemGroup> <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.9.0" PrivateAssets="all" /> </ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" PrivateAssets="all" />
</ItemGroup> <ItemGroup>
<ItemGroup> <Compile Link="XamlX\filename" Include="../../Markup/Avalonia.Markup.Xaml.Loader/xamlil.github/src/XamlX/**/*.cs" />
<Compile Link="XamlX\filename" Include="../../external/XamlX/src/XamlX/**/*.cs" /> <Compile Remove="../../Markup/Avalonia.Markup.Xaml.Loader/xamlil.github/src/XamlX/**/SreTypeSystem.cs" />
<Compile Remove="../../external/XamlX/src/XamlX/**/SreTypeSystem.cs" /> </ItemGroup>
</ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="Avalonia.Generators.props"> <None Include="Avalonia.Generators.props" Pack="true" PackagePath="buildTransitive/$(PackageId).props" />
<Pack>true</Pack> <None Include="$(OutputPath)\$(AssemblyName).dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
<PackagePath>buildTransitive\$(PackageId).props</PackagePath> </ItemGroup>
</None>
</ItemGroup> <ItemGroup Label="InternalsVisibleTo">
<ItemGroup> <InternalsVisibleTo Include="Avalonia.Generators.Tests, PublicKey=$(AvaloniaPublicKey)" />
<None Include="$(OutputPath)\$(AssemblyName).dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" /> </ItemGroup>
</ItemGroup>
<Import Project="..\..\..\build\TrimmingEnable.props" />
</Project> </Project>

16
src/tools/Avalonia.Generators/Compiler/RoslynTypeSystem.cs

@ -7,7 +7,7 @@ using XamlX.TypeSystem;
namespace Avalonia.Generators.Compiler; namespace Avalonia.Generators.Compiler;
public class RoslynTypeSystem : IXamlTypeSystem internal class RoslynTypeSystem : IXamlTypeSystem
{ {
private readonly List<IXamlAssembly> _assemblies = new(); private readonly List<IXamlAssembly> _assemblies = new();
@ -42,7 +42,7 @@ public class RoslynTypeSystem : IXamlTypeSystem
.FirstOrDefault(type => type != null); .FirstOrDefault(type => type != null);
} }
public class RoslynAssembly : IXamlAssembly internal class RoslynAssembly : IXamlAssembly
{ {
private readonly IAssemblySymbol _symbol; private readonly IAssemblySymbol _symbol;
@ -66,7 +66,7 @@ public class RoslynAssembly : IXamlAssembly
} }
} }
public class RoslynAttribute : IXamlCustomAttribute internal class RoslynAttribute : IXamlCustomAttribute
{ {
private readonly AttributeData _data; private readonly AttributeData _data;
private readonly RoslynAssembly _assembly; private readonly RoslynAssembly _assembly;
@ -94,7 +94,7 @@ public class RoslynAttribute : IXamlCustomAttribute
pair => pair.Value.Value); pair => pair.Value.Value);
} }
public class RoslynType : IXamlType internal class RoslynType : IXamlType
{ {
private static readonly SymbolDisplayFormat SymbolDisplayFormat = new SymbolDisplayFormat( private static readonly SymbolDisplayFormat SymbolDisplayFormat = new SymbolDisplayFormat(
typeQualificationStyle: SymbolDisplayTypeQualificationStyle.NameAndContainingTypesAndNamespaces, typeQualificationStyle: SymbolDisplayTypeQualificationStyle.NameAndContainingTypesAndNamespaces,
@ -181,7 +181,7 @@ public class RoslynType : IXamlType
public IReadOnlyList<IXamlType> GenericParameters { get; } = new List<IXamlType>(); public IReadOnlyList<IXamlType> GenericParameters { get; } = new List<IXamlType>();
} }
public class RoslynConstructor : IXamlConstructor internal class RoslynConstructor : IXamlConstructor
{ {
private readonly IMethodSymbol _symbol; private readonly IMethodSymbol _symbol;
private readonly RoslynAssembly _assembly; private readonly RoslynAssembly _assembly;
@ -208,7 +208,7 @@ public class RoslynConstructor : IXamlConstructor
.ToList(); .ToList();
} }
public class RoslynProperty : IXamlProperty internal class RoslynProperty : IXamlProperty
{ {
private readonly IPropertySymbol _symbol; private readonly IPropertySymbol _symbol;
private readonly RoslynAssembly _assembly; private readonly RoslynAssembly _assembly;
@ -239,7 +239,7 @@ public class RoslynProperty : IXamlProperty
public IReadOnlyList<IXamlType> IndexerParameters { get; } = new List<IXamlType>(); public IReadOnlyList<IXamlType> IndexerParameters { get; } = new List<IXamlType>();
} }
public class RoslynMethod : IXamlMethod internal class RoslynMethod : IXamlMethod
{ {
private readonly IMethodSymbol _symbol; private readonly IMethodSymbol _symbol;
private readonly RoslynAssembly _assembly; private readonly RoslynAssembly _assembly;
@ -273,4 +273,4 @@ public class RoslynMethod : IXamlMethod
public IXamlMethod MakeGenericMethod(IReadOnlyList<IXamlType> typeArguments) => null; public IXamlMethod MakeGenericMethod(IReadOnlyList<IXamlType> typeArguments) => null;
public IReadOnlyList<IXamlCustomAttribute> CustomAttributes { get; } = new List<IXamlCustomAttribute>(); public IReadOnlyList<IXamlCustomAttribute> CustomAttributes { get; } = new List<IXamlCustomAttribute>();
} }

27
src/tools/Avalonia.Generators/Directory.Build.props

@ -1,27 +0,0 @@
<Project>
<PropertyGroup>
<Product>XamlNameReferenceGenerator</Product>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/avaloniaui/Avalonia.Generators/</PackageProjectUrl>
<Description>Generates typed x:Name references to Avalonia controls declared in XAML.</Description>
<PackageReleaseNotes>https://github.com/avaloniaui/Avalonia.Generators/releases</PackageReleaseNotes>
<RepositoryUrl>https://github.com/avaloniaui/Avalonia.Generators</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<InstallAvalonia>false</InstallAvalonia>
<RestoreSources>
https://nuget.avaloniaui.net/repository/avalonia-all/index.json;
https://api.nuget.org/v3/index.json;
</RestoreSources>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Nerdbank.GitVersioning" Version="3.5.119" PrivateAssets="all" />
</ItemGroup>
<ItemGroup Condition="'$(InstallAvalonia)' == 'true'">
<PackageReference Include="Avalonia" Version="11.0.0-preview5" />
<PackageReference Include="Avalonia.Desktop" Version="11.0.0-preview5" />
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.0-preview5" />
<PackageReference Include="Avalonia.Diagnostics" Version="11.0.0-preview5" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.0-preview5" />
</ItemGroup>
</Project>

4
src/tools/Avalonia.Generators/Generator.cs

@ -6,8 +6,6 @@ using Avalonia.Generators.Generator;
using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp;
[assembly: InternalsVisibleTo("Avalonia.Generators.Tests")]
namespace Avalonia.Generators; namespace Avalonia.Generators;
[Generator] [Generator]
@ -50,4 +48,4 @@ public class AvaloniaNameSourceGenerator : ISourceGenerator
new XamlXNameResolver(options.AvaloniaNameGeneratorDefaultFieldModifier), new XamlXNameResolver(options.AvaloniaNameGeneratorDefaultFieldModifier),
generator); generator);
} }
} }

50
tests/Avalonia.Generators.Tests/Avalonia.Generators.Tests.csproj

@ -1,28 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net6</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<LangVersion>preview</LangVersion> <RootNamespace>Avalonia.Generators.Tests</RootNamespace>
<IsPackable>false</IsPackable> <IsTestProject>true</IsTestProject>
<InstallAvalonia>true</InstallAvalonia> </PropertyGroup>
<RootNamespace>Avalonia.Generators.Tests</RootNamespace> <ItemGroup>
</PropertyGroup> <ProjectReference Include="..\..\src\Avalonia.Base\Avalonia.Base.csproj" />
<ItemGroup> <ProjectReference Include="..\..\src\Avalonia.Controls\Avalonia.Controls.csproj" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.9.0" /> <ProjectReference Include="..\..\src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj" />
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="3.9.0" /> <ProjectReference Include="..\..\src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" /> <ProjectReference Include="..\..\src\tools\Avalonia.Generators\Avalonia.Generators.csproj" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.4.0" />
<PackageReference Include="xunit" Version="2.4.2" /> <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" />
<PackageReference Include="xunit.runner.console" Version="2.4.2" /> </ItemGroup>
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" /> <ItemGroup>
</ItemGroup> <EmbeddedResource Include="Views\*.xml" />
<ItemGroup> <EmbeddedResource Include="OnlyProperties\GeneratedCode\*.txt" />
<EmbeddedResource Include="Views\*.xml" /> <EmbeddedResource Include="InitializeComponent\GeneratedInitializeComponent\*.txt" />
<EmbeddedResource Include="OnlyProperties\GeneratedCode\*.txt" /> <EmbeddedResource Include="InitializeComponent\GeneratedDevTools\*.txt" />
<EmbeddedResource Include="InitializeComponent\GeneratedInitializeComponent\*.txt" /> </ItemGroup>
<EmbeddedResource Include="InitializeComponent\GeneratedDevTools\*.txt" /> <Import Project="..\..\build\UnitTests.NetCore.targets" />
</ItemGroup> <Import Project="..\..\build\XUnit.props" />
<ItemGroup> <Import Project="..\..\build\SharedVersion.props" />
<ProjectReference Include="..\Avalonia.Generators\Avalonia.Generators.csproj" />
</ItemGroup>
</Project> </Project>

Loading…
Cancel
Save