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

Add support for both WinUI 2 and 3 under Uno platform #75

Merged
merged 21 commits into from
Apr 20, 2022
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
f16088f
Added WinUI 2 / 3 switch for Uno libs and heads
Arlodotexe Apr 12, 2022
a990aff
Fixed building Android under both WinUI 2 and 3
Arlodotexe Apr 13, 2022
b89e24d
Fixed building iOS under WinUI 2 and 3
Arlodotexe Apr 13, 2022
d90fcf6
Fixed building MacOS under WinUI 2 / 3
Arlodotexe Apr 13, 2022
4ed156f
Add missing changes to default Uno props file needed for compilation…
Arlodotexe Apr 13, 2022
1f405af
Fixed WPF building under WinUI 2 and 3
Arlodotexe Apr 13, 2022
7ff516c
Fixed individual sample head not building under WinUI 2 / 3
Arlodotexe Apr 13, 2022
1ceab73
Fixed issue where switching to WinUI 3 multiples times and back to Wi…
Arlodotexe Apr 13, 2022
bed0935
Fixed UWP not building when WinUI 3 is enabled
Arlodotexe Apr 13, 2022
6830d44
Fixed building under WinUI 2 ./ 3 when all TFMs are enabled
Arlodotexe Apr 13, 2022
74f7b29
Fixed building in Visual Studio
Arlodotexe Apr 13, 2022
ba81d04
Sync uno packages to the same version
Arlodotexe Apr 14, 2022
01cc354
Add PackageIdVariant for generating different packages for WinUI 2 and 3
Arlodotexe Apr 14, 2022
2a8131a
Add WinUI 3 build validation
Arlodotexe Apr 14, 2022
3e0f879
Fixed workflow names
Arlodotexe Apr 14, 2022
f7da11d
Split XAML style check into separate job
Arlodotexe Apr 14, 2022
5b43bc2
Merge branch 'main' into feature/winui-2-and-3
Arlodotexe Apr 14, 2022
4c5d2a9
Remove duplicate package reference
Arlodotexe Apr 19, 2022
66c04b4
Cleanup / simplify window activation
Arlodotexe Apr 19, 2022
fe6fa69
Add warning messages about branch switching when --assume-unchanged i…
Arlodotexe Apr 20, 2022
a82bf2a
Add verbose flag for uno check
michael-hawker Apr 20, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 83 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ on:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# This workflow contains a single job called "Build WinUI 2"
Build WinUI 2:
# The type of runner that the job will run on
runs-on: windows-latest

Expand Down Expand Up @@ -95,6 +95,87 @@ jobs:
path: './TestResults/*.trx'
reporter: dotnet-trx

# This workflow contains a single job called "Build WinUI 3"
Build WinUI 3:
# The type of runner that the job will run on
runs-on: windows-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Needed until XAML Styler updates to .NET 6
- name: Install .NET Core 3.1 SDK
uses: actions/setup-dotnet@v1
with:
dotnet-version: '3.1.x'

- name: Install .NET 6 SDK
uses: actions/setup-dotnet@v1
with:
dotnet-version: '6.0.201'

# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout Repository
uses: actions/checkout@v2

# Restore Tools from Manifest list in the Repository
- name: Restore dotnet tools
run: dotnet tool restore

- name: Check XAML Styling
run: ./ApplyXamlStyling.ps1 -Passive
Arlodotexe marked this conversation as resolved.
Show resolved Hide resolved

- name: Run Uno Check to Install Dependencies
run: dotnet tool run uno-check --ci --fix --non-interactive --skip wsl --skip androidemulator #--verbose

- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.3

- name: Enable all TargetFrameworks
working-directory: ./common/Scripts/
run: ./UseTargetFrameworks.ps1 all

- name: Enable WinUI 3
working-directory: ./common/Scripts/
run: ./UseUnoWinUI.ps1 3

- name: MSBuild
# working-directory: ./
run: msbuild.exe Toolkit.Labs.All.sln /restore -p:Configuration=Release

# Build All Packages - TODO: Detect experiments
- name: pack CanvasLayout
working-directory: ./labs/CanvasLayout/src
run: msbuild -t:pack /p:Configuration=Release /p:DebugType=Portable

# Push Packages to our DevOps Artifacts Feed
- name: Add source
run: dotnet nuget add source "https://pkgs.dev.azure.com/dotnet/CommunityToolkit/_packaging/CommunityToolkit-Labs/nuget/v3/index.json" --name LabsFeed --username dummy --password ${{ secrets.DEVOPS_PACKAGE_PUSH_TOKEN }}

- name: Push packages
if: ${{github.ref == 'refs/heads/main'}}
run: dotnet nuget push "**/*.nupkg" --api-key dummy --source LabsFeed --skip-duplicate

# Run tests
- name: Setup VSTest Path
uses: darenm/Setup-VSTest@v1

- name: Run SourceGenerators tests
run: vstest.console.exe ./Common/CommunityToolkit.Labs.Core.SourceGenerators.Tests/CommunityToolkit.Labs.Core.SourceGenerators.Tests/bin/Release/net6.0/CommunityToolkit.Labs.Core.SourceGenerators.Tests.dll /logger:"trx;LogFileName=SourceGenerators.trx"

- name: Run experiment tests against UWP
run: vstest.console.exe ./Tests/**/CommunityToolkit.Labs.UnitTests.UWP.build.appxrecipe /Framework:FrameworkUap10 /logger:"trx;LogFileName=UWP.trx"

- name: Run experiment tests against WinAppSDK
run: vstest.console.exe ./Tests/**/CommunityToolkit.Labs.UnitTests.WinAppSdk.build.appxrecipe /Framework:FrameworkUap10 /logger:"trx;LogFileName=WinAppSdk.trx"

- name: Create test reports
uses: dorny/test-reporter@v1
if: success() || failure() # run this step even if previous step failed
with:
name: Test results
path: './TestResults/*.trx'
reporter: dotnet-trx

# Test/temp job to build a single experiment to ensure our changes work for both our main types of solutions at the moment
experiment:
runs-on: windows-latest
Expand Down
1 change: 0 additions & 1 deletion common/Labs.Head.props
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<!-- Common props for any deployable sample project head. -->
<Project>

<!-- Shared project -->
<Import Project="$(RepositoryDirectory)\common\CommunityToolkit.Labs.Shared\CommunityToolkit.Labs.Shared.projitems" Label="Shared" />

Expand Down
19 changes: 4 additions & 15 deletions common/Labs.MultiTarget.props
Original file line number Diff line number Diff line change
@@ -1,56 +1,45 @@
<Project InitialTargets="ValidateWinUITarget">
<Project>
<Import Project="Labs.TargetFrameworks.props" />
<Import Project="Labs.Uno.props" />

<PropertyGroup>
<WinUITarget Condition="'$(WinUITarget)' == ''">2.x</WinUITarget>

<!--
TargetFramework for WasmLibTargetFramework, WpfLibTargetFramework, and LinuxLibTargetFramework all use the same value.

This can't be removed during the evaluation phase without breaking things, so we omit them entirely
and use the value directly.
-->
<TargetFrameworks>
netstandard2.0;
$(NetStandardCommonTargetFramework);
$(UwpTargetFramework);
$(WinAppSdkTargetFramework);
$(MacOSLibTargetFramework);
$(iOSLibTargetFramework);
$(AndroidLibTargetFramework);
</TargetFrameworks>

<IsUno Condition="'$(TargetFramework)' != '$(UwpTargetFramework)' AND '$(TargetFramework)' != '$(WinAppSdkTargetFramework)'">True</IsUno>

<GenerateLibraryLayout>true</GenerateLibraryLayout>
<EnableDefaultPageItems>false</EnableDefaultPageItems>
<DefineConstants Condition="'$(TargetFramework)' == '$(WinAppSdkTargetFramework)'">WINAPPSDK</DefineConstants>
<DefineConstants Condition="'$(TargetFramework)' == '$(WinAppSdkTargetFramework)'">$(DefineConstants);WINAPPSDK</DefineConstants>
</PropertyGroup>

<PropertyGroup Condition="'$(TargetFramework)' == '$(WinAppSdkTargetFramework)' OR '$(TargetFramework)' == '$(UwpTargetFramework)'">
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
<TargetPlatformVersion>10.0.19041.0</TargetPlatformVersion>
</PropertyGroup>

<Target Name="ValidateWinUITarget" Condition="'$(IsUno)' == 'true'">
<Error Condition="'$(WinUITarget)' != '2.x' AND '$(WinUITarget)' != '3.x'" Text="Property 'WinUITarget' contained an invalid value '$(WinUITarget)'. A value of '2.x' or '3.x' is expected when building an Uno target." />
</Target>

<ItemGroup>
<!-- In release mode, UWP already emits the raw XAML files to the final app package (with some modifications). -->
<Content Condition="!('$(TargetFramework)' == '$(UwpTargetFramework)' AND '$(Configuration)' == 'Release')" Include="**\*.xaml" Exclude="bin\**\*.xaml;obj\**\*.xaml" />
<Content Include="**\*.cs" Exclude="bin\**\*.cs;obj\**\*.cs" />
</ItemGroup>

<ItemGroup>
<PackageReference Condition="'$(IsUno)' == 'True' AND '$(WinUITarget)' == '2.x'" Include="Uno.UI" Version="4.0.11" />
<PackageReference Condition="'$(IsUno)' == 'True' AND '$(WinUITarget)' == '3.x'" Include="Uno.WinUI" Version="4.0.11" />

<PackageReference Condition="'$(TargetFramework)' == '$(UwpTargetFramework)'" Include="Microsoft.UI.Xaml" Version="2.7.0" />
<PackageReference Condition="'$(TargetFramework)' == '$(WinAppSdkTargetFramework)'" Include="Microsoft.WindowsAppSDK" Version="1.0.0" />
</ItemGroup>

<!-- Source generator props -->

<ItemGroup>
<ProjectReference Include="$(RepositoryDirectory)\common\CommunityToolkit.Labs.Core.SourceGenerators.XamlNamedPropertyRelay\CommunityToolkit.Labs.Core.SourceGenerators.XamlNamedPropertyRelay.csproj"
OutputItemType="Analyzer" ReferenceOutputAssembly="True" />
Expand Down
9 changes: 7 additions & 2 deletions common/Labs.TargetFrameworks.All.props
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,16 @@
<LinuxHeadTargetFramework>net5.0</LinuxHeadTargetFramework>
<WpfHeadTargetFramework>netcoreapp3.1</WpfHeadTargetFramework>

<WasmLibTargetFramework>netstandard2.0</WasmLibTargetFramework>
<LinuxLibTargetFramework>netstandard2.0</LinuxLibTargetFramework>
<AndroidLibTargetFramework>monoandroid11.0</AndroidLibTargetFramework>
<MacOSLibTargetFramework>xamarinmac20</MacOSLibTargetFramework>
<iOSLibTargetFramework>xamarinios10</iOSLibTargetFramework>

<!-- Used for comparison to current TargetFramework -->
<LinuxLibTargetFramework>netstandard2.0</LinuxLibTargetFramework>
<WasmLibTargetFramework>netstandard2.0</WasmLibTargetFramework>
<WpfLibTargetFramework>netstandard2.0</WpfLibTargetFramework>

<!-- Used for defining TargetFramework under platforms that need it -->
<NetStandardCommonTargetFramework>netstandard2.0</NetStandardCommonTargetFramework>
</PropertyGroup>
</Project>
9 changes: 7 additions & 2 deletions common/Labs.TargetFrameworks.props
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,16 @@
<LinuxHeadTargetFramework>net5.0</LinuxHeadTargetFramework>
<WpfHeadTargetFramework>netcoreapp3.1</WpfHeadTargetFramework>

<WasmLibTargetFramework>netstandard2.0</WasmLibTargetFramework>





<!-- Used for comparison to current TargetFramework -->
<LinuxLibTargetFramework>netstandard2.0</LinuxLibTargetFramework>
<WasmLibTargetFramework>netstandard2.0</WasmLibTargetFramework>
<WpfLibTargetFramework>netstandard2.0</WpfLibTargetFramework>

<!-- Used for defining TargetFramework under platforms that need it -->
<NetStandardCommonTargetFramework>netstandard2.0</NetStandardCommonTargetFramework>
</PropertyGroup>
</Project>
47 changes: 47 additions & 0 deletions common/Labs.Uno.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<Project>
<Import Project="Labs.TargetFrameworks.props" />

<PropertyGroup>
<IsWasmHead Condition="'$(IsWasmHead)' == '' AND '$(TargetFramework)' == '$(WasmHeadTargetFramework)'">True</IsWasmHead>
<IsWpfHead Condition="'$(IsWpfHead)' == '' AND '$(TargetFramework)' == '$(WpfHeadTargetFramework)'">True</IsWpfHead>
<IsGtkHead Condition="'$(IsGtkHead)' == '' AND '$(TargetFramework)' == '$(LinuxHeadTargetFramework)'">True</IsGtkHead>

<IsWasmLib Condition="'$(IsWasmLib)' == '' AND '$(TargetFramework)' == '$(WasmLibTargetFramework)'">True</IsWasmLib>
<IsWpfLib Condition="'$(IsWpfLib)' == '' AND '$(TargetFramework)' == '$(WpfLibTargetFramework)'">True</IsWpfLib>
<IsGtkLib Condition="'$(IsGtkLib)' == '' AND '$(TargetFramework)' == '$(LinuxLibTargetFramework)'">True</IsGtkLib>

<IsWasm Condition="'$(IsWasm)' == '' AND ('$(IsWasmHead)' == 'true' or '$(IsWasmLib)' == 'true')">True</IsWasm>
<IsWpf Condition="'$(IsWpf)' == '' AND ('$(IsWpfHead)' == 'true' or '$(IsWpfLib)' == 'true')">True</IsWpf>
<IsGtk Condition="'$(IsGtk)' == '' AND ('$(IsGtkHead)' == 'true' or '$(IsGtkLib)' == 'true')">True</IsGtk>

<IsDroid Condition="'$(IsDroid)' == '' AND '$(TargetFramework)' == '$(AndroidLibTargetFramework)'">True</IsDroid>
<IsMacOS Condition="'$(IsMacOS)' == '' AND '$(TargetFramework)' == '$(MacOSLibTargetFramework)'">True</IsMacOS>
<IsiOS Condition="'$(IsiOS)' == '' AND '$(TargetFramework)' == '$(iOSLibTargetFramework)'">True</IsiOS>

<IsUno Condition="'$(IsWasm)' == 'true' OR '$(IsWpf)' == 'true' OR '$(IsGtk)' == 'true' OR '$(IsDroid)' == 'true' OR '$(IsMacOS)' == 'true' OR '$(IsiOS)' == 'true'">True</IsUno>

<DefineConstants Condition="'$(IsUno)' == 'true'">$(DefineConstants);</DefineConstants>

<PackageIdVariant>Uwp</PackageIdVariant>
</PropertyGroup>

<ItemGroup Condition="'$(IsUno)' == 'true'">
<PackageReference Include="Uno.UI" Version="4.1.9" />
</ItemGroup>

<ItemGroup Condition="'$(IsWasm)' == 'true' OR '$(IsWpf)' == 'true' OR '$(IsGtk)' == 'true'">
<PackageReference Include="Uno.UI.RemoteControl" Version="4.1.9" Condition="'$(Configuration)'=='Debug'" />
</ItemGroup>

<ItemGroup Condition="'$(IsGtkHead)' == 'true'">
<PackageReference Include="Uno.UI.Skia.Gtk" Version="4.1.9" />
</ItemGroup>

<ItemGroup Condition="'$(IsWpfHead)' == 'true'">
<PackageReference Include="Uno.UI.Skia.Wpf" Version="4.1.9" />
</ItemGroup>

<ItemGroup Condition="'$(IsWasmHead)' == 'true'">
<PackageReference Include="Uno.UI.WebAssembly" Version="4.1.9" />
</ItemGroup>
</Project>
16 changes: 8 additions & 8 deletions common/Labs.Uwp.props
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<DefineConstants>$(DefineConstants);DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
Expand All @@ -38,7 +38,7 @@

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<DefineConstants>$(DefineConstants);TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
Expand All @@ -52,7 +52,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<DefineConstants>$(DefineConstants);DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM</PlatformTarget>
Expand All @@ -63,7 +63,7 @@

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM'">
<OutputPath>bin\ARM\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<DefineConstants>$(DefineConstants);TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
Expand All @@ -77,7 +77,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<DefineConstants>$(DefineConstants);DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM64</PlatformTarget>
Expand All @@ -89,7 +89,7 @@

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM64'">
<OutputPath>bin\ARM64\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<DefineConstants>$(DefineConstants);TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
Expand All @@ -103,7 +103,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<DefineConstants>$(DefineConstants);DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
Expand All @@ -114,7 +114,7 @@

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<DefineConstants>$(DefineConstants);TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
Expand Down
13 changes: 10 additions & 3 deletions common/Labs.Wasm.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,19 @@
<!-- Common properties needed for a labs project (Wasm) -->
<Import Project="$(RepositoryDirectory)common\Labs.TargetFrameworks.props" />

<PropertyGroup>
<IsGtkHead>False</IsGtkHead>
<IsWpfHead>False</IsWpfHead>
<IsWpfLib>False</IsWpfLib>
<IsWasmHead>True</IsWasmHead>
<IsWasmLib>False</IsWasmLib>
</PropertyGroup>

<Import Project="$(RepositoryDirectory)common\Labs.Uno.props" />

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>$(WasmHeadTargetFramework)</TargetFramework>
<NoWarn>NU1701</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<WasmShellILLinkerEnabled>true</WasmShellILLinkerEnabled>
Expand All @@ -26,8 +35,6 @@
<PackageReference Include="Microsoft.Windows.Compatibility" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="5.0.0" />
<PackageReference Include="Uno.Extensions.Logging.WebAssembly.Console" Version="1.0.1" />
<PackageReference Include="Uno.UI.WebAssembly" Version="4.0.9" />
<PackageReference Include="Uno.UI.RemoteControl" Version="4.0.9" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Uno.UI.Adapter.Microsoft.Extensions.Logging" Version="4.0.9" />
<PackageReference Include="Uno.UI.Adapter.Microsoft.Extensions.Logging" Version="4.0.9" />
<PackageReference Include="Uno.Wasm.Bootstrap" Version="3.1.2" />
Expand Down
6 changes: 3 additions & 3 deletions common/Scripts/UseTargetFrameworks.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ else {
git update-index --assume-unchanged ../Labs.TargetFrameworks.props
}

$WasmTfm = "WasmLibTargetFramework";
$UwpTfm = "UwpTargetFramework";
$WinAppSdkTfm = "WinAppSdkTargetFramework";
$WpfTfm = "WpfLibTargetFramework";
$GtkTfm = "LinuxLibTargetFramework";
$WasmTfm = "NetStandardCommonTargetFramework";
$WpfTfm = "NetStandardCommonTargetFramework";
$GtkTfm = "NetStandardCommonTargetFramework";
$macOSTfm = "MacOSLibTargetFramework";
$iOSTfm = "iOSLibTargetFramework";
$DroidTfm = "AndroidLibTargetFramework";
Expand Down
Loading