Browse Source

Enhance Roslyn-compiler visible metadata (#21546)

* Move "AdditionalFiles Include="@(AvaloniaXaml)"" to common AvaloniaBuildTasks

* Add AdditionalFiles Include="@(AvaloniaResource)"

* Add a comment

* Add extra CompilerVisibleProperty

* Rename _InjectAvaloniaAdditionalFiles, make it more specific...

* Do not duplicate AdditionalFiles with AvaloniaXaml AvaloniaResource
pull/21558/head
Max Katz 4 months ago
committed by GitHub
parent
commit
289f9d76c8
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 11
      packages/Avalonia/AvaloniaBuildTasks.targets
  2. 11
      src/tools/Avalonia.Generators/Avalonia.Generators.props

11
packages/Avalonia/AvaloniaBuildTasks.targets

@ -39,6 +39,17 @@
Condition="'$(ApplicationIcon)' != ''" /> Condition="'$(ApplicationIcon)' != ''" />
</ItemGroup> </ItemGroup>
<!-- Include AvaloniaXaml and AvaloniaResource as a Roslyn-visible additional files -->
<!-- This is necessary to use these files in source generators and other Roslyn-based extension -->
<Target Name="_InjectAvaloniaAdditionalFiles" BeforeTargets="GenerateMSBuildEditorConfigFileShouldRun">
<ItemGroup>
<AdditionalFiles Include="@(AvaloniaXaml)" SourceItemGroup="AvaloniaXaml" />
<_AvaloniaResourceOnly Include="@(AvaloniaResource)"
Exclude="@(AvaloniaXaml)" />
<AdditionalFiles Include="@(_AvaloniaResourceOnly)" SourceItemGroup="AvaloniaResource" />
</ItemGroup>
</Target>
<UsingTask TaskName="GenerateAvaloniaResourcesTask" <UsingTask TaskName="GenerateAvaloniaResourcesTask"
AssemblyFile="$(AvaloniaBuildTasksLocation)" AssemblyFile="$(AvaloniaBuildTasksLocation)"
/> />

11
src/tools/Avalonia.Generators/Avalonia.Generators.props

@ -9,7 +9,9 @@
<AvaloniaNameGeneratorAttachDevTools Condition="'$(AvaloniaNameGeneratorAttachDevTools)' == ''">true</AvaloniaNameGeneratorAttachDevTools> <AvaloniaNameGeneratorAttachDevTools Condition="'$(AvaloniaNameGeneratorAttachDevTools)' == ''">true</AvaloniaNameGeneratorAttachDevTools>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<!-- Mark AvaloniaXaml/AvaloniaResource metadata visible for the Roslyn-compiler -->
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="SourceItemGroup"/> <CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="SourceItemGroup"/>
<!-- Mark Avalonia.Generators config properties visible for the Roslyn-compiler -->
<CompilerVisibleProperty Include="AvaloniaNameGeneratorIsEnabled" /> <CompilerVisibleProperty Include="AvaloniaNameGeneratorIsEnabled" />
<CompilerVisibleProperty Include="AvaloniaNameGeneratorBehavior" /> <CompilerVisibleProperty Include="AvaloniaNameGeneratorBehavior" />
<CompilerVisibleProperty Include="AvaloniaNameGeneratorDefaultFieldModifier" /> <CompilerVisibleProperty Include="AvaloniaNameGeneratorDefaultFieldModifier" />
@ -17,10 +19,9 @@
<CompilerVisibleProperty Include="AvaloniaNameGeneratorFilterByNamespace" /> <CompilerVisibleProperty Include="AvaloniaNameGeneratorFilterByNamespace" />
<CompilerVisibleProperty Include="AvaloniaNameGeneratorViewFileNamingStrategy" /> <CompilerVisibleProperty Include="AvaloniaNameGeneratorViewFileNamingStrategy" />
<CompilerVisibleProperty Include="AvaloniaNameGeneratorAttachDevTools"/> <CompilerVisibleProperty Include="AvaloniaNameGeneratorAttachDevTools"/>
<!-- Mark additional Avalonia properties that might be useful for the Roslyn-compiler -->
<CompilerVisibleProperty Include="AvaloniaUseCompiledBindingsByDefault" />
<CompilerVisibleProperty Include="AvaloniaMainPackageVersion" />
<CompilerVisibleProperty Include="AvaloniaPreviewerNetCoreToolPath" />
</ItemGroup> </ItemGroup>
<Target Name="_InjectAdditionalFiles" BeforeTargets="GenerateMSBuildEditorConfigFileShouldRun">
<ItemGroup>
<AdditionalFiles Include="@(AvaloniaXaml)" SourceItemGroup="AvaloniaXaml" />
</ItemGroup>
</Target>
</Project> </Project>

Loading…
Cancel
Save