Avalonia single project support (#9613)

* MVP SingleProject support for all supported platforms

* Convert MobileSandbox to be a single project

* WASM fixes

* Fix SDK CI version

* Use .NET 8 in build project as well

* Add EnableUnsafeBinaryFormatterSerialization

* Add macos workload, remove wasm-experimental

* And ios

* Specify TFM for single-project projects in dirs.proj

* Return deleted line

* Set PrivateAssets=all on MobileSandbox

* Add ios target only on non-linux in MobileSandbox

* Update after merges

* Update browser sub-project from the templates

* Don't build MobileSandbox on CI

* Couple of improvements

* Add android hack to run without manifest

* Add tvOS support and rearrange some properties

* Delete unusable Packages.targets file + related

* Add global Condition for AvaloniaSingleProject.targets
This commit is contained in:
Max Katz
2024-03-28 02:46:28 -07:00
committed by GitHub
parent 0b72cdb512
commit 4b1ca3811e
64 changed files with 509 additions and 593 deletions
+4 -6
View File
@@ -7,24 +7,22 @@
<ProjectReference Condition="'$(SkipBuildingTests)' != 'True'" Include="tests/**/*.*proj" />
<ProjectReference Include="packages/**/*.*proj" />
<ProjectReference Remove="**/*.shproj" />
<ProjectReference Remove="src/Markup/Avalonia.Markup.Xaml/PortableXaml/**/*.*proj" />
<ProjectReference Remove="src/Markup/Avalonia.Markup.Xaml.Loader/xamlil.github/**/*.*proj" />
<!-- Exclude iOS, Android and Browser samples from build -->
<ProjectReference Remove="samples/*.iOS/*.csproj" />
<ProjectReference Remove="samples/*.Android/*.csproj" />
<ProjectReference Remove="samples/*.Browser/*.csproj" />
<ProjectReference Remove="samples/*.Blazor/*.csproj" />
<ProjectReference Remove="samples/*.Tizen/*.csproj" />
<ProjectReference Remove="samples/MobileSandbox/*.csproj" />
<ProjectReference Remove="samples/ControlCatalog.Desktop/*.*proj" />
</ItemGroup>
<ItemGroup Condition="!$([MSBuild]::IsOsPlatform('Windows'))">
<ProjectReference Remove="src/Windows/Avalonia.Win32.Interoperability/Avalonia.Win32.Interoperability.csproj" />
<ProjectReference Remove="samples/interop/**/*.*proj" />
</ItemGroup>
<!-- Build android and iOS projects only on Windows, where we have installed android workload -->
<ItemGroup Condition="!$([MSBuild]::IsOsPlatform('Windows'))">
<!-- Build mobile backends only on Windows, where we have installed android workload -->
<ProjectReference Remove="src/Android/**/*.*proj" />
<ProjectReference Remove="src/iOS/**/*.*proj" />
<ProjectReference Remove="src/Tizen/**/*.*proj" />
</ItemGroup>
<ItemGroup Condition="'$(SkipObscurePlatforms)' == 'True'">