Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Uno v3 support #3898

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
15 changes: 10 additions & 5 deletions Directory.Build.props
Expand Up @@ -28,6 +28,7 @@
<IsTestProject>$(MSBuildProjectName.Contains('UnitTest'))</IsTestProject>
<IsLibraryProject>$(MSBuildProjectName.Contains('MvvmCross'))</IsLibraryProject>
<IsXamarinForms>$(MSBuildProjectName.Contains('.Forms'))</IsXamarinForms>
<IsUno>$(MSBuildProjectName.Contains('.Uno'))</IsUno>
</PropertyGroup>

<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
Expand All @@ -54,6 +55,10 @@
<DebugSymbols>true</DebugSymbols>
</PropertyGroup>

<ItemGroup Condition="'$(IsLibraryProject)' == 'true' and '$(IsUno)' == 'false' ">
<PackageReference Include="Microsoft.CSharp" Version="4.5.0" PrivateAssets="All" />
</ItemGroup>

<ItemGroup Condition="'$(IsLibraryProject)' == 'true'">
<None Include="$(MSBuildThisFileDirectory)\LICENSE" Pack="true" PackagePath="\" />
<None Include="$(MSBuildThisFileDirectory)\icon.png" Pack="true" PackagePath="\" />
Expand All @@ -64,12 +69,12 @@
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
</ItemGroup>

<PropertyGroup>
<TargetsToBuildDeveloperOverride>All</TargetsToBuildDeveloperOverride>
</PropertyGroup>

<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<TargetsToBuild>All</TargetsToBuild>
<!--<TargetsToBuild>Android</TargetsToBuild>-->
<!--<TargetsToBuild>Uap</TargetsToBuild>-->
<!--<TargetsToBuild>iOS</TargetsToBuild>-->
<!--<TargetsToBuild>Tizen</TargetsToBuild>-->
<TargetsToBuild>$(TargetsToBuildDeveloperOverride)</TargetsToBuild>
</PropertyGroup>

<PropertyGroup Condition=" '$(Configuration)' != 'Debug' ">
Expand Down
1 change: 1 addition & 0 deletions LaunchVS.All.bat
@@ -0,0 +1 @@
LaunchVS.bat All
1 change: 1 addition & 0 deletions LaunchVS.Android.bat
@@ -0,0 +1 @@
LaunchVS.bat Android
1 change: 1 addition & 0 deletions LaunchVS.Uap.bat
@@ -0,0 +1 @@
LaunchVS.bat Uap
2 changes: 2 additions & 0 deletions LaunchVS.bat
@@ -0,0 +1,2 @@
powershell -Command "(gc Directory.build.props) -replace '<TargetsToBuildDeveloperOverride>[a-zA-Z]*</TargetsToBuildDeveloperOverride>', '<TargetsToBuildDeveloperOverride>%~1</TargetsToBuildDeveloperOverride> ' | Out-File -encoding ASCII Directory.build.props"
start MvvmCross.%~1.slnf
1 change: 1 addition & 0 deletions LaunchVS.iOS.bat
@@ -0,0 +1 @@
LaunchVS.bat iOS
4 changes: 2 additions & 2 deletions MvvmCross.Plugins/File/Platforms/Uap/MvxWindowsFileStore.cs
@@ -1,4 +1,4 @@
// Licensed to the .NET Foundation under one or more agreements.
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MS-PL license.
// See the LICENSE file in the project root for more information.

Expand All @@ -7,10 +7,10 @@
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Windows.Storage;
using MvvmCross.Exceptions;
using MvvmCross.Logging;
using MvvmCross.Platforms.Uap;
using Windows.Storage;

namespace MvvmCross.Plugin.File.Platforms.Uap
{
Expand Down
94 changes: 94 additions & 0 deletions MvvmCross.Uno.Plugins/MvvmCross.Uno.Plugins.csproj
@@ -0,0 +1,94 @@
<Project Sdk="MSBuild.Sdk.Extras">
<PropertyGroup Condition=" '$(TargetsToBuild)' == 'All' ">
<TargetFrameworks>netstandard2.0;xamarinios10;xamarinmac20;monoandroid10.0</TargetFrameworks>
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT' ">uap10.0.16299;$(TargetFrameworks)</TargetFrameworks>
</PropertyGroup>

<PropertyGroup Condition=" '$(TargetsToBuild)' != 'All' ">
<TargetFrameworks Condition=" '$(TargetsToBuild)' == 'Android' ">netstandard2.0;monoandroid10.0;</TargetFrameworks>
<TargetFrameworks Condition=" '$(TargetsToBuild)' == 'Uap' ">netstandard2.0;uap10.0.16299</TargetFrameworks>
<TargetFrameworks Condition=" '$(TargetsToBuild)' == 'iOS' ">netstandard2.0;xamarin.ios10</TargetFrameworks>
<TargetFrameworks Condition=" '$(TargetsToBuild)' == 'Tizen' ">netstandard2.0;tizen40</TargetFrameworks>
</PropertyGroup>

<PropertyGroup>
<!-- Ensures the .xr.xml files are generated in a proper layout folder -->
<GenerateLibraryLayout>true</GenerateLibraryLayout>
<DefineConstants>UNO</DefineConstants>
</PropertyGroup>

<PropertyGroup>
<AssemblyName>MvvmCross.Uno.Plugins</AssemblyName>
<RootNamespace>MvvmCross.Plugin</RootNamespace>
<Description>
MvvmCross is the .NET MVVM framework for cross-platform solutions, including Xamarin iOS, Xamarin Android, Xamarin Forms, Windows and Mac.

This package contains the various 'Plugins' for MvvmCross built to be used by applications using the Uno platform
</Description>
<PackageId>MvvmCross.Uno.Plugins</PackageId>
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
</PropertyGroup>

<PropertyGroup Condition="'$(TargetFramework)'=='netstandard2.0'">
<DefineConstants>$(DefineConstants);__WASM__</DefineConstants>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)'=='xamarinios10' or '$(TargetFramework)'=='xamarinmac20' or '$(TargetFramework)'=='monoandroid10.0' or '$(TargetFramework)'=='netstandard2.0'">
<PackageReference Include="Uno.UI" Version="3.0.12" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="Uno.SourceGenerationTasks" Version="3.0.0-dev.10" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\MvvmCross.Uno\MvvmCross.Uno.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\MvvmCross.Plugins\Accelerometer\**\*.cs" Exclude="..\MvvmCross.Plugins\Accelerometer\Platforms\**\*.cs;..\MvvmCross.Plugins\Accelerometer\Resources\*.cs;..\MvvmCross.Plugins\Accelerometer\obj\**\*.*;..\MvvmCross.Plugins\Accelerometer\bin\**\*.*" />
<Compile Include="..\MvvmCross.Plugins\Accelerometer\Platforms\Windows-common\**\*.cs" />
<Compile Include="..\MvvmCross.Plugins\Accelerometer\Platforms\Uap\**\*.cs" />

<Compile Include="..\MvvmCross.Plugins\File\**\*.cs" Exclude="..\MvvmCross.Plugins\File\Platforms\**\*.cs;..\MvvmCross.Plugins\File\Resources\*.cs;..\MvvmCross.Plugins\File\obj\**\*.*;..\MvvmCross.Plugins\File\bin\**\*.*" />
<Compile Include="..\MvvmCross.Plugins\File\Platforms\Windows-common\**\*.cs" />
<Compile Include="..\MvvmCross.Plugins\File\Platforms\Uap\**\*.cs" />


<Compile Include="..\MvvmCross.Plugins\Json\**\*.cs" Exclude="..\MvvmCross.Plugins\Json\Platforms\**\*.cs;..\MvvmCross.Plugins\Json\Resources\*.cs;..\MvvmCross.Plugins\Json\obj\**\*.*;..\MvvmCross.Plugins\Json\bin\**\*.*" />
<Compile Include="..\MvvmCross.Plugins\Json\Platforms\Windows-common\**\*.cs" />
<Compile Include="..\MvvmCross.Plugins\Json\Platforms\Uap\**\*.cs" />

<Compile Include="..\MvvmCross.Plugins\JsonLocalization\**\*.cs" Exclude="..\MvvmCross.Plugins\JsonLocalization\Platforms\**\*.cs;..\MvvmCross.Plugins\JsonLocalization\Resources\*.cs;..\MvvmCross.Plugins\JsonLocalization\obj\**\*.*;..\MvvmCross.Plugins\JsonLocalization\bin\**\*.*" />
<Compile Include="..\MvvmCross.Plugins\JsonLocalization\Platforms\Windows-common\**\*.cs" />
<Compile Include="..\MvvmCross.Plugins\JsonLocalization\Platforms\Uap\**\*.cs" />

<Compile Include="..\MvvmCross.Plugins\Location\**\*.cs" Exclude="..\MvvmCross.Plugins\Location\Platforms\**\*.cs;..\MvvmCross.Plugins\Location\Resources\*.cs;..\MvvmCross.Plugins\Location\obj\**\*.*;..\MvvmCross.Plugins\Location\bin\**\*.*" />
<Compile Include="..\MvvmCross.Plugins\Location\Platforms\Windows-common\**\*.cs" />
<Compile Include="..\MvvmCross.Plugins\Location\Platforms\Uap\**\*.cs" />

<Compile Include="..\MvvmCross.Plugins\Messenger\**\*.cs" Exclude="..\MvvmCross.Plugins\Messenger\Platforms\**\*.cs;..\MvvmCross.Plugins\Messenger\Resources\*.cs;..\MvvmCross.Plugins\Messenger\obj\**\*.*;..\MvvmCross.Plugins\Messenger\bin\**\*.*" />
<Compile Include="..\MvvmCross.Plugins\Messenger\Platforms\Windows-common\**\*.cs" />
<Compile Include="..\MvvmCross.Plugins\Messenger\Platforms\Uap\**\*.cs" />


<Compile Include="..\MvvmCross.Plugins\Network\**\*.cs" Exclude="..\MvvmCross.Plugins\Network\Platforms\**\*.cs;..\MvvmCross.Plugins\Network\Resources\*.cs;..\MvvmCross.Plugins\Network\obj\**\*.*;..\MvvmCross.Plugins\Network\bin\**\*.*" />
<Compile Include="..\MvvmCross.Plugins\Network\Platforms\Windows-common\**\*.cs" />
<Compile Include="..\MvvmCross.Plugins\Network\Platforms\Uap\**\*.cs" />


<Compile Include="..\MvvmCross.Plugins\ResourceLoader\**\*.cs" Exclude="..\MvvmCross.Plugins\ResourceLoader\Platforms\**\*.cs;..\MvvmCross.Plugins\ResourceLoader\Resources\*.cs;..\MvvmCross.Plugins\ResourceLoader\obj\**\*.*;..\MvvmCross.Plugins\ResourceLoader\bin\**\*.*" />
<Compile Include="..\MvvmCross.Plugins\ResourceLoader\Platforms\Windows-common\**\*.cs" />
<Compile Include="..\MvvmCross.Plugins\ResourceLoader\Platforms\Uap\**\*.cs" />

</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)'=='xamarinios10' or '$(TargetFramework)'=='xamarinmac20' or '$(TargetFramework)'=='monoandroid10.0' ">
<Reference Include="System.Runtime.Serialization" />
</ItemGroup>
<ItemGroup>
<PackageReference Update="AsyncFixer" Version="1.3.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>

72 changes: 72 additions & 0 deletions MvvmCross.Uno/MvvmCross.Uno.csproj
@@ -0,0 +1,72 @@
<Project Sdk="MSBuild.Sdk.Extras">
<PropertyGroup Condition=" '$(TargetsToBuild)' == 'All' ">
<TargetFrameworks>netstandard2.0;xamarinios10;xamarinmac20;monoandroid10.0</TargetFrameworks>
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT' ">uap10.0.16299;$(TargetFrameworks)</TargetFrameworks>
</PropertyGroup>

<PropertyGroup Condition=" '$(TargetsToBuild)' != 'All' ">
<TargetFrameworks Condition=" '$(TargetsToBuild)' == 'Android' ">netstandard2.0;monoandroid10.0;</TargetFrameworks>
<TargetFrameworks Condition=" '$(TargetsToBuild)' == 'Uap' ">netstandard2.0;uap10.0.16299</TargetFrameworks>
<TargetFrameworks Condition=" '$(TargetsToBuild)' == 'iOS' ">netstandard2.0;xamarinios10</TargetFrameworks>
<TargetFrameworks Condition=" '$(TargetsToBuild)' == 'Tizen' ">netstandard2.0;tizen40</TargetFrameworks>
</PropertyGroup>

<PropertyGroup>
<!-- Ensures the .xr.xml files are generated in a proper layout folder -->
<GenerateLibraryLayout>true</GenerateLibraryLayout>
<DefineConstants>UNO</DefineConstants>
</PropertyGroup>

<PropertyGroup>
<AssemblyName>MvvmCross.Uno</AssemblyName>
<RootNamespace>MvvmCross</RootNamespace>
<Description>
MvvmCross is the .NET MVVM framework for cross-platform solutions, including Xamarin iOS, Xamarin Android, Xamarin Forms, Windows and Mac.

This package contains the 'Core' libraries for MvvmCross built to be used by applications using the Uno platform
</Description>
<PackageId>MvvmCross.Uno</PackageId>
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
</PropertyGroup>

<PropertyGroup Condition="'$(TargetFramework)'=='netstandard2.0'">
<DefineConstants>$(DefineConstants);__WASM__</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|monoandroid10.0|AnyCPU'">
<DefineConstants>$(DefineConstants);TRACE;</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|monoandroid10.0|AnyCPU'">
<DefineConstants>$(DefineConstants);TRACE;</DefineConstants>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)'=='xamarinios10' or '$(TargetFramework)'=='xamarinmac20' or '$(TargetFramework)'=='monoandroid10.0' or '$(TargetFramework)'=='netstandard2.0'">
<PackageReference Include="Uno.UI" Version="3.0.12" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\MvvmCross\**\*.cs" Exclude="..\MvvmCross\Platforms\**\*.cs;..\MvvmCross\Resources\*.cs;..\MvvmCross\obj\**\*.*;..\MvvmCross\bin\**\*.*" />
<Compile Include="..\MvvmCross\Platforms\Windows-common\**\*.cs" />
<Compile Include="..\MvvmCross\Platforms\Uap\**\*.cs" />
<!--<Page Include="..\MvvmCross\**\*.xaml" Exclude="bin\**\*.xaml;obj\**\*.xaml" />
<Compile Update="**\*.xaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>-->
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)'=='xamarinios10' or '$(TargetFramework)'=='xamarinmac20' or '$(TargetFramework)'=='monoandroid10.0' ">
<Reference Include="System.Runtime.Serialization" />
</ItemGroup>
<ItemGroup>
<Compile Remove="..\MvvmCross\Logging\LogProviders\Log4NetLogProvider.cs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Uno.SourceGenerationTasks" Version="3.0.0-dev.10" />
</ItemGroup>
<ItemGroup>
<PackageReference Update="AsyncFixer" Version="1.3.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<!--<ItemGroup>
<UpToDateCheckInput Include="**\*.xaml" Exclude="bin\**\*.xaml;obj\**\*.xaml" />
</ItemGroup>-->
</Project>