зеркало из https://github.com/DeGsoft/maui-linux.git
Merge branch 'main-handler' into main-maui
This commit is contained in:
Коммит
6c16f5703c
|
@ -9,10 +9,16 @@
|
|||
]
|
||||
},
|
||||
"microsoft.dotnet.xharness.cli": {
|
||||
"version": "1.0.0-prerelease.21109.1",
|
||||
"version": "1.0.0-prerelease.21124.1",
|
||||
"commands": [
|
||||
"xharness"
|
||||
]
|
||||
},
|
||||
"powershell": {
|
||||
"version": "7.1.2",
|
||||
"commands": [
|
||||
"pwsh"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,87 +1,365 @@
|
|||
bin
|
||||
obj
|
||||
classic_bin
|
||||
classic_obj
|
||||
*.dll
|
||||
*.mdb
|
||||
*.exe
|
||||
*.log
|
||||
*.userprefs
|
||||
*.suo
|
||||
_docs.xml
|
||||
UpgradeLog*
|
||||
docs/*.xml
|
||||
.nuspec/*.nupkg
|
||||
*UpgradeReport*
|
||||
*.user
|
||||
*.DS_Store
|
||||
*.ide
|
||||
.vs
|
||||
*.designer.cs
|
||||
*project.lock.json
|
||||
!*ControlResources*.designer.cs
|
||||
!*Resources.Designer.cs
|
||||
!Xamarin.Forms.VSTemplate/**/*.designer.cs
|
||||
!NuGet.exe
|
||||
*test-results*
|
||||
*/PerfLogs/*
|
||||
*.sap
|
||||
/packages
|
||||
!.xamarin-component/**
|
||||
*.xam
|
||||
Components/
|
||||
!GooglePlayServices/**
|
||||
.irb-history
|
||||
screenshot_*
|
||||
!Xamarin.Forms.Addin/libs/**
|
||||
!Xamarin.Forms.Addin/Packages/Xamarin.Forms.*.nupkg
|
||||
*.remove
|
||||
*/.metadata/*
|
||||
**/AndroidNative/FormsViewGroup/gen/com/xamarin/formsviewgroup/R.java
|
||||
**/AndroidNative/FormsViewGroup/gen/com/xamarin/formsviewgroup/BuildConfig.java
|
||||
*.psess
|
||||
TestResults/
|
||||
**/Xamarin.Forms.UITest.Validator/UITestCoverage/index.html
|
||||
!**/Xamarin.Forms.UITest.TestCloud/test-cloud.exe
|
||||
**/Xamarin.Forms.ControlGallery.Windows/AppPackages/
|
||||
**/Xamarin.Forms.ControlGallery.WindowsPhone/AppPackages/
|
||||
**/Xamarin.Forms.ControlGallery.WindowsUniversal/AppPackages/
|
||||
**/Xamarin.Forms.ControlGallery.WindowsUniversal/BundleArtifacts/
|
||||
**/Xamarin.Forms.Controls/secrets.txt
|
||||
**/Xamarin.Forms.Controls/controlgallery.config
|
||||
**/Xamarin.Forms.ControlGallery.Android/Properties/MapsKey.cs
|
||||
*.tss
|
||||
*.bak
|
||||
**/AndroidNative/local.properties
|
||||
**/AndroidNative/FormsViewGroup/build/
|
||||
**/AndroidNative/build/
|
||||
**/AndroidNative/.gradle/
|
||||
!**/AndroidNative/gradlew
|
||||
!**/AndroidNative/gradlew.bat
|
||||
!**/EmbeddingTestBeds/Embedding.iOS/*.designer.cs
|
||||
!**/DualScreen.Mac/*.designer.cs
|
||||
*.nupkg
|
||||
*.pdb
|
||||
# temporary vim files
|
||||
*.swp
|
||||
/eng/tools/*
|
||||
!/eng/tools/mdoc/
|
||||
!/eng/tools/mdoc/**/*
|
||||
caketools/
|
||||
*.binlog
|
||||
.ionide/**
|
||||
/.nuspec
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
##
|
||||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||
|
||||
.nuspec/**/*.dll
|
||||
.XamarinFormsVersionFile.txt
|
||||
.idea
|
||||
Visual Studio 2019/**
|
||||
|
||||
# User-specific files
|
||||
*.rsuser
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Mono auto generated files
|
||||
mono_crash.*
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
[Ww][Ii][Nn]32/
|
||||
[Aa][Rr][Mm]/
|
||||
[Aa][Rr][Mm]64/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Ll]og/
|
||||
[Ll]ogs/
|
||||
|
||||
# Visual Studio 2015/2017 cache/options directory
|
||||
.vs/
|
||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||
#wwwroot/
|
||||
|
||||
# Visual Studio 2017 auto generated files
|
||||
Generated\ Files/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# NUnit
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
**/build/packages
|
||||
WriteDevopsVariables.csproj
|
||||
!**/Xamarin.Forms.Platform.GTK/Libs/**/*
|
||||
!**/Xamarin.Forms.Build.Tasks/ErrorMessages.Designer.cs
|
||||
!**/Xamarin.Forms.Maps.WPF/Properties/Settings.Designer.cs
|
||||
!**/DevopsNuget.config
|
||||
!**/Xamarin.Forms.Maps.GTK/Libs/**/*
|
||||
/tools
|
||||
nunit-*.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
# Benchmark Results
|
||||
BenchmarkDotNet.Artifacts/
|
||||
|
||||
# .NET Core
|
||||
project.lock.json
|
||||
project.fragment.lock.json
|
||||
artifacts/
|
||||
|
||||
# ASP.NET Scaffolding
|
||||
ScaffoldingReadMe.txt
|
||||
|
||||
# StyleCop
|
||||
StyleCopReport.xml
|
||||
|
||||
# Files built by Visual Studio
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_h.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.iobj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.ipdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*_wpftmp.csproj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
launchSettings.json
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opendb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
*.VC.VC.opendb
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
*.sap
|
||||
|
||||
# Visual Studio Trace Files
|
||||
*.e2e
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# AxoCover is a Code Coverage Tool
|
||||
.axoCover/*
|
||||
!.axoCover/settings.json
|
||||
|
||||
# Coverlet is a free, cross platform Code Coverage Tool
|
||||
coverage*.json
|
||||
coverage*.xml
|
||||
coverage*.info
|
||||
|
||||
# Visual Studio code coverage results
|
||||
*.coverage
|
||||
*.coveragexml
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
nCrunchTemp_*
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||
# but database connection strings (with potential passwords) will be unencrypted
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||
# in these scripts will be unencrypted
|
||||
PublishScripts/
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# NuGet Symbol Packages
|
||||
*.snupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/[Pp]ackages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/[Pp]ackages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/[Pp]ackages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignorable files
|
||||
*.nuget.props
|
||||
*.nuget.targets
|
||||
|
||||
# Microsoft Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Microsoft Azure Emulator
|
||||
ecf/
|
||||
rcf/
|
||||
|
||||
# Windows Store app package directories and files
|
||||
AppPackages/
|
||||
BundleArtifacts/
|
||||
Package.StoreAssociation.xml
|
||||
_pkginfo.txt
|
||||
*.appx
|
||||
*.appxbundle
|
||||
*.appxupload
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
# but keep track of directories ending in .cache
|
||||
!?*.[Cc]ache/
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.jfm
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
orleans.codegen.cs
|
||||
|
||||
# Including strong name files can present a security risk
|
||||
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||
#*.snk
|
||||
|
||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||
#bower_components/
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
ServiceFabricBackup/
|
||||
*.rptproj.bak
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
*.ndf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
*.rptproj.rsuser
|
||||
*- [Bb]ackup.rdl
|
||||
*- [Bb]ackup ([0-9]).rdl
|
||||
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
# GhostDoc plugin setting file
|
||||
*.GhostDoc.xml
|
||||
|
||||
# Node.js Tools for Visual Studio
|
||||
.ntvs_analysis.dat
|
||||
node_modules/
|
||||
|
||||
# Visual Studio 6 build log
|
||||
*.plg
|
||||
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
|
||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||
*.vbw
|
||||
|
||||
# Visual Studio LightSwitch build output
|
||||
**/*.HTMLClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/ModelManifest.xml
|
||||
**/*.Server/GeneratedArtifacts
|
||||
**/*.Server/ModelManifest.xml
|
||||
_Pvt_Extensions
|
||||
|
||||
# Paket dependency manager
|
||||
.paket/paket.exe
|
||||
paket-files/
|
||||
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
|
||||
# CodeRush personal settings
|
||||
.cr/personal
|
||||
|
||||
# Python Tools for Visual Studio (PTVS)
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
# Cake - Uncomment if you are using it
|
||||
tools/**
|
||||
!tools/packages.config
|
||||
|
||||
# Tabs Studio
|
||||
*.tss
|
||||
|
||||
# Telerik's JustMock configuration file
|
||||
*.jmconfig
|
||||
|
||||
# BizTalk build output
|
||||
*.btp.cs
|
||||
*.btm.cs
|
||||
*.odx.cs
|
||||
*.xsd.cs
|
||||
|
||||
# OpenCover UI analysis results
|
||||
OpenCover/
|
||||
|
||||
# Azure Stream Analytics local run output
|
||||
ASALocalRun/
|
||||
|
||||
# MSBuild Binary and Structured Log
|
||||
*.binlog
|
||||
|
||||
# NVidia Nsight GPU debugger configuration file
|
||||
*.nvuser
|
||||
|
||||
# MFractors (Xamarin productivity tool) working folder
|
||||
.mfractor/
|
||||
|
||||
# Local History for Visual Studio
|
||||
.localhistory/
|
||||
|
||||
# BeatPulse healthcheck temp database
|
||||
healthchecksdb
|
||||
|
||||
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||
MigrationBackup/
|
||||
|
||||
# Ionide (cross platform F# VS Code tools) working folder
|
||||
.ionide/
|
||||
|
||||
# Fody - auto-generated XML schema
|
||||
FodyWeavers.xsd
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
<?xml version="1.0"?>
|
||||
<package >
|
||||
<metadata>
|
||||
<id>Xamarin.Forms.Visual.Material</id>
|
||||
<version>$version$</version>
|
||||
<authors>Microsoft</authors>
|
||||
<owners>microsoft xamarin</owners>
|
||||
<tags>xamarin forms visual material xamarinforms xamarinformsvisualmaterial xamarin.forms.visual.material</tags>
|
||||
<license type="expression">MIT</license>
|
||||
<icon>Assets\xamarin_128x128.png</icon>
|
||||
<projectUrl>http://xamarin.com/forms</projectUrl>
|
||||
<repository type="git" url="https://github.com/xamarin/xamarin.forms"/>
|
||||
<requireLicenseAcceptance>true</requireLicenseAcceptance>
|
||||
<description>Material renderers for Xamarin.Forms</description>
|
||||
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
|
||||
<dependencies>
|
||||
<group>
|
||||
<dependency id="Xamarin.Forms" version="$version$"/>
|
||||
</group>
|
||||
<group targetFramework="MonoAndroid10">
|
||||
<dependency id="Xamarin.Forms" version="$version$"/>
|
||||
</group>
|
||||
|
||||
<group targetFramework="MonoAndroid10.0">
|
||||
<dependency id="Xamarin.AndroidX.Lifecycle.LiveData" version="2.2.0.4" />
|
||||
<dependency id="Xamarin.Google.Android.Material" version="1.2.1.1" />
|
||||
</group>
|
||||
<group targetFramework="Xamarin.iOS10">
|
||||
<dependency id="Xamarin.iOS.MaterialComponents" version="92.0.0"/>
|
||||
</group>
|
||||
<group targetFramework="tizen40">
|
||||
<dependency id="Tizen.NET" version="4.0.0"/>
|
||||
<dependency id="Tizen.NET.MaterialComponents" version="0.9.7-preview"/>
|
||||
</group>
|
||||
</dependencies>
|
||||
</metadata>
|
||||
<files>
|
||||
<!--Icon-->
|
||||
<file src="..\Assets\xamarin_128x128.png" target="Assets\" />
|
||||
<!--netstandard-->
|
||||
<file src="_._" target="lib\netstandard1.0\_._" />
|
||||
|
||||
<!--Android 10-->
|
||||
<file src="_._" target="lib\MonoAndroid10\_._" />
|
||||
<file src="Microsoft.Maui.Controls.Compatibility.Visual.Material.targets" target="build\MonoAndroid10\Microsoft.Maui.Controls.Compatibility.Visual.Material.targets" />
|
||||
|
||||
<!--Android 10 buildTransitive-->
|
||||
<file src="Microsoft.Maui.Controls.Compatibility.Visual.Material.targets" target="buildTransitive\MonoAndroid10\Microsoft.Maui.Controls.Compatibility.Visual.Material.targets" />
|
||||
|
||||
<!--Android 10.0-->
|
||||
<file src="..\Xamarin.Forms.Material.Android\bin\$Configuration$\monoandroid10.0\Xamarin.Forms.Material.dll" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\Xamarin.Forms.Material.Android\bin\$Configuration$\monoandroid10.0\Xamarin.Forms.Material.*pdb" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\Xamarin.Forms.Material.Android\bin\$Configuration$\monoandroid10.0\Xamarin.Forms.Material.*mdb" target="lib\MonoAndroid10.0" />
|
||||
|
||||
<!--iOS-->
|
||||
<file src="..\Xamarin.Forms.Material.iOS\bin\$Configuration$\Xamarin.Forms.Material.dll" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\Xamarin.Forms.Material.iOS\bin\$Configuration$\Xamarin.Forms.Material.*pdb" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\Xamarin.Forms.Material.iOS\bin\$Configuration$\Xamarin.Forms.Material.*mdb" target="lib\Xamarin.iOS10" />
|
||||
|
||||
<!--Tizen-->
|
||||
<file src="..\Xamarin.Forms.Material.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Material.dll" target="lib\tizen40" />
|
||||
<file src="..\Xamarin.Forms.Material.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Material.*pdb" target="lib\tizen40" />
|
||||
|
||||
</files>
|
||||
</package>
|
|
@ -0,0 +1,24 @@
|
|||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<MauiKeepXamlResources>True</MauiKeepXamlResources>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$(MSBuildThisFileDirectory)Microsoft.Maui.Controls.targets" />
|
||||
<UsingTask TaskName="Microsoft.Maui.Controls.Build.Tasks.DebugXamlCTask" AssemblyFile="$(_MauiBuildTasksLocation)Microsoft.Maui.Controls.Build.Tasks.dll" />
|
||||
|
||||
<PropertyGroup>
|
||||
<CompileDependsOn>
|
||||
$(CompileDependsOn);
|
||||
GenerateDebugCode;
|
||||
</CompileDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- duplicate legacy InitializeComponent, create a ctor with bool param -->
|
||||
<Target Name="GenerateDebugCode" AfterTargets="AfterCompile">
|
||||
<DebugXamlCTask
|
||||
Assembly = "$(IntermediateOutputPath)$(TargetFileName)"
|
||||
ReferencePath = "@(ReferencePath)"
|
||||
DebugSymbols = "$(DebugSymbols)"
|
||||
DebugType = "$(DebugType)"/>
|
||||
</Target>
|
||||
</Project>
|
|
@ -0,0 +1,12 @@
|
|||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<ItemGroup Condition="'$(EnableDefaultItems)'=='True' And '$(EnableDefaultXamlItems)'=='True' And '$(EnableDefaultEmbeddedResourceItems)'=='True'">
|
||||
<EmbeddedResource Include="**\*.xaml" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" SubType="Designer" Generator="MSBuild:UpdateDesignTimeXaml" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(EnableDefaultItems)'=='True' And '$(EnableDefaultCssItems)'=='True' And '$(EnableDefaultEmbeddedResourceItems)'=='True'">
|
||||
<EmbeddedResource Include="**\*.css" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="Microsoft.Maui.Controls.SingleProject.props" />
|
||||
</Project>
|
|
@ -0,0 +1,19 @@
|
|||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<!--
|
||||
NOTE: we cannot update/remove existing default items in our props file, as it is
|
||||
imported *before* the default items are created by Microsoft.NET.Sdk.DefaultItems.props.
|
||||
Doing it here works, but means that it will override things users do in their csproj.
|
||||
Unfortunately there is no way to work around this without adding a new extension point to
|
||||
the sdk props.
|
||||
-->
|
||||
<ItemGroup Condition="'$(EnableDefaultItems)'=='True' And '$(EnableDefaultXamlItems)'=='True' And '$(EnableDefaultEmbeddedResourceItems)'=='True'">
|
||||
<Compile Update="**\*.xaml$(DefaultLanguageSourceExtension)" DependentUpon="%(Filename)" SubType="Code" />
|
||||
<None Remove="**\*.xaml" Condition="'$(EnableDefaultNoneItems)'=='True'" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(EnableDefaultItems)'=='True' And '$(EnableDefaultCssItems)'=='True' And '$(EnableDefaultEmbeddedResourceItems)'=='True'">
|
||||
<None Remove="**\*.css" Condition="'$(EnableDefaultNoneItems)'=='True'" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="Microsoft.Maui.Controls.SingleProject.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,86 @@
|
|||
<Project>
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('Xamarin.iOS')) != true AND $(TargetFramework.StartsWith('net6.0-ios')) != true ">
|
||||
<Compile Remove="**\*.iOS.cs" />
|
||||
<None Include="**\*.iOS.cs" />
|
||||
<Compile Remove="**\iOS\*.cs" />
|
||||
<None Include="**\iOS\*.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('Xamarin.Mac')) != true ">
|
||||
<Compile Remove="**\*.Mac.cs" />
|
||||
<None Include="**\*.Mac.cs" />
|
||||
<Compile Remove="**\Mac\*.cs" />
|
||||
<None Include="**\Mac\*.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('Xamarin.Mac')) != true AND $(TargetFramework.StartsWith('Xamarin.iOS')) != true AND $(TargetFramework.StartsWith('net6.0-ios')) != true ">
|
||||
<Compile Remove="**\*.MaciOS.cs" />
|
||||
<None Include="**\*.MaciOS.cs" />
|
||||
<Compile Remove="**\MaciOS\*.cs" />
|
||||
<None Include="**\MaciOS\*.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('MonoAndroid')) != true AND $(TargetFramework.StartsWith('net6.0-android')) != true ">
|
||||
<Compile Remove="**\*.Android.cs" />
|
||||
<None Include="**\*.Android.cs" />
|
||||
<Compile Remove="**\Android\*.cs" />
|
||||
<None Include="**\Android\*.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('netstandard')) != true ">
|
||||
<Compile Remove="**\*.Standard.cs" />
|
||||
<None Include="**\*.Standard.cs" />
|
||||
<Compile Remove="**\Standard\*.cs" />
|
||||
<None Include="**\Standard\*.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('netcoreapp')) != true ">
|
||||
<Compile Remove="**\*.Win32.cs" />
|
||||
<None Include="**\*.Win32.cs" />
|
||||
<Compile Remove="**\*.xaml.cs" />
|
||||
<None Include="**\*.xaml.cs" />
|
||||
<Compile Remove="**\*.xaml" />
|
||||
<None Include="**\*.xaml" />
|
||||
<Compile Remove="**\Win32\*.cs" />
|
||||
<None Include="**\Win32\*.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Android -->
|
||||
<AndroidProjectFolder>Platform\Android\</AndroidProjectFolder>
|
||||
<MonoAndroidResourcePrefix>$(AndroidProjectFolder)Resources</MonoAndroidResourcePrefix>
|
||||
<MonoAndroidAssetsPrefix>$(AndroidProjectFolder)Assets</MonoAndroidAssetsPrefix>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Android -->
|
||||
<PropertyGroup Condition="$(TargetFramework.StartsWith('net6.0-android'))">
|
||||
<DefineConstants>$(DefineConstants);MONOANDROID</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('MonoAndroid')) == true OR $(TargetFramework.StartsWith('net6.0-android')) == true ">
|
||||
<AndroidResource Include="$(MonoAndroidResourcePrefix)\*\*.xml" />
|
||||
<AndroidResource Include="$(MonoAndroidResourcePrefix)\*\*.axml" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- iOS -->
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'net6.0-ios' ">
|
||||
<DefineConstants>$(DefineConstants);IOS</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="$(TargetFramework.StartsWith('netcoreapp')) == true ">
|
||||
<UseWpf>true</UseWpf>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|netstandard2.0|AnyCPU'">
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
</PropertyGroup>
|
||||
<!-- If this becomes part of the product we will remove these but for now it's useful having them all in one place -->
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('MonoAndroid')) == true OR '$(TargetPlatformIdentifier)' == 'android' OR '$(TargetFramework)' == 'net6.0-android'">
|
||||
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" />
|
||||
<PackageReference Include="Xamarin.Google.Android.Material" />
|
||||
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Condition="$(TargetFramework.StartsWith('net5.0-windows')) == true">
|
||||
<TargetPlatformMinVersion>10.0.17134.0</TargetPlatformMinVersion>
|
||||
<RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
|
||||
<DefineConstants>$(DefineConstants);DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;UWP_16299;UWP_18362;UWP_17134</DefineConstants>
|
||||
<NoWarn>$(NoWarn);NU5104</NoWarn>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('net5.0-windows')) == true">
|
||||
<PackageReference Include="Microsoft.WinUI" Version="3.0.0-preview3.201113.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,42 @@
|
|||
<!-- "Single Project" support - all <ItemGroup/>'s must check if $(EnableDefaultItems) and $(SingleProject) are true -->
|
||||
<Project>
|
||||
|
||||
<!-- Android -->
|
||||
<ItemGroup Condition=" '$(EnableDefaultItems)' == 'true' and '$(SingleProject)' == 'true' and '$(TargetPlatformIdentifier)' == 'android' and '$(MonoAndroidResourcePrefix)' != '' ">
|
||||
<AndroidResource Include="$(MonoAndroidResourcePrefix)/*/*.xml" />
|
||||
<AndroidResource Include="$(MonoAndroidResourcePrefix)/*/*.axml" />
|
||||
<AndroidResource Include="$(MonoAndroidResourcePrefix)/*/*.png" />
|
||||
<AndroidResource Include="$(MonoAndroidResourcePrefix)/*/*.jpg" />
|
||||
<AndroidResource Include="$(MonoAndroidResourcePrefix)/*/*.gif" />
|
||||
<AndroidResource Include="$(MonoAndroidResourcePrefix)/font/*.ttf" />
|
||||
<AndroidResource Include="$(MonoAndroidResourcePrefix)/font/*.otf" />
|
||||
<AndroidResource Include="$(MonoAndroidResourcePrefix)/font/*.ttc" />
|
||||
<AndroidResource Include="$(MonoAndroidResourcePrefix)/raw/*" Exclude="$(MonoAndroidResourcePrefix)/raw/.*" />
|
||||
<AndroidAsset Include="$(MonoAndroidAssetsPrefix)/**/*" Exclude="$(MonoAndroidAssetsPrefix)/**/.*/**" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- iOS -->
|
||||
<ItemGroup Condition=" '$(EnableDefaultItems)' == 'true' and '$(SingleProject)' == 'true' and '$(TargetPlatformIdentifier)' == 'ios' and '$(iOSProjectFolder)' != '' ">
|
||||
<None Include="$(iOSProjectFolder)Info.plist" LogicalName="Info.plist" />
|
||||
<ImageAsset
|
||||
Include="$(iOSProjectFolder)**/*.xcassets/**/*.png;$(iOSProjectFolder)**/*.xcassets/*/*.jpg;$(iOSProjectFolder)**/*.xcassets/**/*.pdf;$(iOSProjectFolder)**/*.xcassets/**/*.json"
|
||||
Exclude="$(_SingleProjectiOSExcludes)"
|
||||
Link="%(RecursiveDir)%(FileName)%(Extension)"
|
||||
Visible="false"
|
||||
IsDefaultItem="true"
|
||||
/>
|
||||
<SceneKitAsset
|
||||
Include="$(iOSProjectFolder)**/*.scnassets/*"
|
||||
Exclude="$(_SingleProjectiOSExcludes)"
|
||||
Link="%(RecursiveDir)%(FileName)%(Extension)"
|
||||
IsDefaultItem="true"
|
||||
/>
|
||||
<InterfaceDefinition
|
||||
Include="$(iOSProjectFolder)**/*.storyboard;$(iOSProjectFolder)**/*.xib"
|
||||
Exclude="$(_SingleProjectiOSExcludes)"
|
||||
Link="%(RecursiveDir)%(FileName)%(Extension)"
|
||||
IsDefaultItem="true"
|
||||
/>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
|
@ -0,0 +1,34 @@
|
|||
<!-- "Single Project" support -->
|
||||
<Project>
|
||||
<PropertyGroup Condition=" '$(SingleProject)' == 'true' ">
|
||||
<!-- Android -->
|
||||
<EnableDefaultAndroidItems>false</EnableDefaultAndroidItems>
|
||||
<AndroidProjectFolder Condition=" '$(AndroidProjectFolder)' == '' ">Android/</AndroidProjectFolder>
|
||||
<AndroidManifest>$(AndroidProjectFolder)AndroidManifest.xml</AndroidManifest>
|
||||
<MonoAndroidResourcePrefix>$(AndroidProjectFolder)Resources</MonoAndroidResourcePrefix>
|
||||
<MonoAndroidAssetsPrefix>$(AndroidProjectFolder)Assets</MonoAndroidAssetsPrefix>
|
||||
<!-- iOS -->
|
||||
<EnableDefaultiOSItems>false</EnableDefaultiOSItems>
|
||||
<iOSProjectFolder Condition=" '$(iOSProjectFolder)' == '' ">iOS/</iOSProjectFolder>
|
||||
<IPhoneResourcePrefix>$(iOSProjectFolder)Resources</IPhoneResourcePrefix>
|
||||
<_SingleProjectiOSExcludes>$(iOSProjectFolder)/**/.*/**</_SingleProjectiOSExcludes>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Removals -->
|
||||
<ItemGroup Condition=" '$(EnableDefaultItems)' == 'true' and '$(SingleProject)' == 'true' ">
|
||||
<Compile
|
||||
Condition=" '$(TargetPlatformIdentifier)' != 'android' and '$(AndroidProjectFolder)' != '' "
|
||||
Remove="$(AndroidProjectFolder)**/*$(DefaultLanguageSourceExtension)"
|
||||
/>
|
||||
<Compile
|
||||
Condition=" '$(TargetPlatformIdentifier)' != 'ios' and '$(iOSProjectFolder)' != '' "
|
||||
Remove="$(iOSProjectFolder)**/*$(DefaultLanguageSourceExtension)"
|
||||
/>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- IDE capabilities -->
|
||||
<ItemGroup Condition=" '$(SingleProject)' == 'true' ">
|
||||
<ProjectCapability Include="MauiSingleProject" />
|
||||
<ProjectCapability Include="LaunchProfiles" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,279 @@
|
|||
<?xml version="1.0"?>
|
||||
<package >
|
||||
<metadata>
|
||||
<id>Microsoft.Maui.Controls</id>
|
||||
<version>$version$</version>
|
||||
<authors>Microsoft</authors>
|
||||
<owners>microsoft xamarin</owners>
|
||||
<tags>xamarin forms xamarinforms xamarin.forms</tags>
|
||||
<license type="expression">MIT</license>
|
||||
<icon>Assets\xamarin_128x128.png</icon>
|
||||
<projectUrl>http://xamarin.com/forms</projectUrl>
|
||||
<repository type="git" url="https://github.com/xamarin/xamarin.forms"/>
|
||||
<requireLicenseAcceptance>true</requireLicenseAcceptance>
|
||||
<description>Build native UIs for iOS, Android, UWP, macOS, Tizen and many more from a single, shared C# codebase</description>
|
||||
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
|
||||
<dependencies>
|
||||
<group targetFramework="MonoAndroid10.0">
|
||||
<dependency id="Xamarin.AndroidX.Lifecycle.LiveData" version="2.2.0.4" />
|
||||
<dependency id="Xamarin.Google.Android.Material" version="1.2.1.1" />
|
||||
<dependency id="Xamarin.AndroidX.Legacy.Support.V4" version="1.0.0.6" />
|
||||
<dependency id="Xamarin.AndroidX.Browser" version="1.3.0" />
|
||||
</group>
|
||||
<!--<group targetFramework="net6.0-windows10.0.18362.0">
|
||||
<dependency id="Microsoft.WinUI" version="3.0.0-preview3.201113.0" />
|
||||
</group>-->
|
||||
<group targetFramework="netstandard2.0">
|
||||
</group>
|
||||
<group targetFramework="Xamarin.iOS10">
|
||||
</group>
|
||||
<!-- <group targetFramework="tizen40">
|
||||
<dependency id="Tizen.NET" version="4.0.0"/>
|
||||
<dependency id="SkiaSharp.Views" version="2.80.2"/>
|
||||
</group> -->
|
||||
</dependencies>
|
||||
|
||||
<!-- DO NOT DELETE THESE REFERENCES -->
|
||||
<!-- IF YOU DELETE THESE REFERENCES THE PACKAGE WILL NOT WORK ON MAC -->
|
||||
<!-- https://github.com/xamarin/Xamarin.Forms/pull/2575 -->
|
||||
<!-- DO NOT DELETE THESE REFERENCES -->
|
||||
<references>
|
||||
<group>
|
||||
<reference file="Xamarin.Forms.Core.dll" />
|
||||
<reference file="Xamarin.Forms.Xaml.dll" />
|
||||
<reference file="Xamarin.Platform.dll" />
|
||||
</group>
|
||||
<group targetFramework="Xamarin.iOS10">
|
||||
<reference file="Xamarin.Forms.Core.dll" />
|
||||
<reference file="Xamarin.Forms.Xaml.dll" />
|
||||
<reference file="Xamarin.Forms.Platform.iOS.dll" />
|
||||
<reference file="Xamarin.Platform.dll" />
|
||||
</group>
|
||||
<group targetFramework="MonoAndroid10.0">
|
||||
<reference file="Xamarin.Forms.Core.dll" />
|
||||
<reference file="Xamarin.Forms.Xaml.dll" />
|
||||
<reference file="FormsViewGroup.dll" />
|
||||
<reference file="Xamarin.Forms.Platform.Android.dll" />
|
||||
<reference file="Xamarin.Platform.dll" />
|
||||
</group>
|
||||
<!--<group targetFramework="net6.0-windows10.0.18362.0">
|
||||
<reference file="Xamarin.Forms.Core.dll" />
|
||||
<reference file="Xamarin.Forms.Xaml.dll" />
|
||||
<reference file="Xamarin.Forms.Platform.UAP.dll" />
|
||||
<reference file="Xamarin.Platform.dll" />
|
||||
</group>-->
|
||||
<!-- <group targetFramework="tizen40">
|
||||
<reference file="Xamarin.Forms.Core.dll" />
|
||||
<reference file="Xamarin.Forms.Platform.Tizen.dll" />
|
||||
<reference file="Xamarin.Forms.Platform.dll" />
|
||||
<reference file="Xamarin.Forms.Xaml.dll" />
|
||||
</group> -->
|
||||
</references>
|
||||
</metadata>
|
||||
|
||||
<files>
|
||||
<!--Icon-->
|
||||
<file src="..\Assets\xamarin_128x128.png" target="Assets\" />
|
||||
|
||||
<!--netstandard-->
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*mdb" target="lib\netstandard2.0" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\netstandard2.0" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\netstandard2.0" />
|
||||
<file src="..\eng\docs\**\Xamarin.Forms.Core.xml" target="lib\netstandard2.0" />
|
||||
<file src="..\eng\docs\**\Xamarin.Forms.Xaml.xml" target="lib\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*mdb" target="lib\netstandard2.0" />
|
||||
|
||||
|
||||
|
||||
<!--Handlers-->
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.dll" target="lib\netstandard2.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.*pdb" target="lib\netstandard2.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.*mdb" target="lib\netstandard2.0" />
|
||||
|
||||
<!--Xamlc stuff-->
|
||||
<file src="Microsoft.Maui.targets" target="build" />
|
||||
<file src="Microsoft.Maui.props" target="build" />
|
||||
<file src="Microsoft.Maui.Controls.DefaultItems.targets" target="build" />
|
||||
<file src="Microsoft.Maui.Controls.DefaultItems.props" target="build" />
|
||||
<file src="Microsoft.Maui.Controls.SingleProject.targets" target="build" />
|
||||
<file src="Microsoft.Maui.Controls.SingleProject.props" target="build" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Build.Tasks.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Mdb.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Pdb.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Rocks.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\System.CodeDom.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Build.Tasks.dll" target="build\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Core.dll" target="build\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Xaml.dll" target="build\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.dll" target="build\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Mdb.dll" target="build\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Pdb.dll" target="build\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Rocks.dll" target="build\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\System.ValueTuple.dll" target="build\net462" />
|
||||
|
||||
<!--Xamlc stuff buildTransitive-->
|
||||
<file src="Microsoft.Maui.targets" target="buildTransitive" />
|
||||
<file src="Microsoft.Maui.props" target="buildTransitive" />
|
||||
<file src="Microsoft.Maui.Controls.DefaultItems.targets" target="buildTransitive" />
|
||||
<file src="Microsoft.Maui.Controls.DefaultItems.props" target="buildTransitive" />
|
||||
<file src="Microsoft.Maui.Controls.SingleProject.targets" target="buildTransitive" />
|
||||
<file src="Microsoft.Maui.Controls.SingleProject.props" target="buildTransitive" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Build.Tasks.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Mdb.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Pdb.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Rocks.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\System.CodeDom.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Build.Tasks.dll" target="buildTransitive\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Core.dll" target="buildTransitive\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Xaml.dll" target="buildTransitive\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.dll" target="buildTransitive\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Mdb.dll" target="buildTransitive\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Pdb.dll" target="buildTransitive\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Rocks.dll" target="buildTransitive\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\System.ValueTuple.dll" target="buildTransitive\net462" />
|
||||
|
||||
<!-- Xaml Design-time Stuff -->
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\netstandard2.0\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\netstandard2.0\Design" />
|
||||
<!-- <file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\netstandard1.0\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\netstandard1.0\Design" /> -->
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\MonoAndroid10.0\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\MonoAndroid10.0\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\Xamarin.iOS10\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\Xamarin.iOS10\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\net5.0-windows10.0.18362.0\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\net5.0-windows10.0.18362.0\Design" />
|
||||
<!-- <file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\tizen40\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\tizen40\Design" /> -->
|
||||
|
||||
<!--Android 10-->
|
||||
<file src="proguard.cfg" target="build\MonoAndroid10\proguard.cfg" />
|
||||
<file src="proguard.cfg" target="buildTransitive\MonoAndroid10\proguard.cfg" />
|
||||
|
||||
<!--Android 10-->
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android\bin\$Configuration$\MonoAndroid10.0\Xamarin.Forms.Platform.Android.dll" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android\bin\$Configuration$\MonoAndroid10.0\Xamarin.Forms.Platform.Android.*pdb" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.FormsViewGroup\bin\$Configuration$\FormsViewGroup.dll" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.FormsViewGroup\bin\$Configuration$\FormsViewGroup.*pdb" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\eng\docs\**\Xamarin.Forms.Core.xml" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\eng\docs\**\Xamarin.Forms.Xaml.xml" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\monoandroid10.0\Xamarin.Platform.dll" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\monoandroid10.0\Xamarin.Platform.*pdb" target="lib\MonoAndroid10.0" />
|
||||
|
||||
<!--iPhone Unified-->
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.dll" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.*pdb" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.*mdb" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*mdb" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\eng\docs\**\Xamarin.Forms.Core.xml" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\eng\docs\**\Xamarin.Forms.Xaml.xml" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*mdb" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\Xamarin.iOS10\Xamarin.Platform.dll" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\Xamarin.iOS10\Xamarin.Platform.*pdb" target="lib\Xamarin.iOS10" />
|
||||
|
||||
<!--net5.0-windows10.0.18362.0-->
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.dll" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.*pri" target="runtimes\net5.0-windows10.0.18362.0\native" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.dll" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP\**\*.xaml" target="lib\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP" />
|
||||
|
||||
<!-- iOS Localized String Resource Assemblies -->
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ar\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ar" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ca\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ca" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\cs\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\cs" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\da\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\da" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\de\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\de" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\el\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\el" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\es\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\es" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\fi\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\fi" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\fr\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\fr" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\he\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\he" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\hi\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\hi" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\hr\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\hr" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\hu\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\hu" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\id\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\id" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\it\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\it" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ja\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ja" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ko\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ko" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ms\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ms" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\nb\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\nb" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\nl\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\nl" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\pl\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\pl" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\pt-BR\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\pt-BR" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\pt\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\pt" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ro\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ro" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ru\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ru" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\sk\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\sk" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\sv\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\sv" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\th\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\th" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\tr\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\tr" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\uk\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\uk" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\vi\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\vi" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\zh-Hans\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\zh-Hans" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\zh-Hant\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\zh-Hant" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\zh-HK\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\zh-HK" />
|
||||
|
||||
<!--Tizen-->
|
||||
<!-- <file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Platform.Tizen.dll" target="lib\tizen40" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Platform.Tizen.*pdb" target="lib\tizen40" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Platform.Tizen.dll" target="lib\tizen40" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\tizen40" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\tizen40" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\tizen40" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\tizen40" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\tizen40" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\tizen40" /> -->
|
||||
|
||||
|
||||
|
||||
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android\bin\$Configuration$\MonoAndroid10.0\Xamarin.Forms.Platform.Android.dll" target="ref\MonoAndroid10.0" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.FormsViewGroup\bin\$Configuration$\FormsViewGroup.dll" target="ref\MonoAndroid10.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="ref\MonoAndroid10.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="ref\MonoAndroid10.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\monoandroid10.0\Xamarin.Platform.dll" target="ref\MonoAndroid10.0" />
|
||||
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.dll" target="ref\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="ref\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="ref\Xamarin.iOS10" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\xamarin.ios10\Xamarin.Platform.dll" target="ref\Xamarin.iOS10" />
|
||||
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.dll" target="ref\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="ref\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="ref\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.dll" target="ref\net5.0-windows10.0.18362.0" />
|
||||
|
||||
|
||||
</files>
|
||||
|
||||
</package>
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<!--
|
||||
When using Sdk-style projects and default embedded resource items are enabled, automatically
|
||||
add the XAML files and fix up item metadata to pair them with code files.
|
||||
This is in the props file, not the targets file, so that projects can remove/update these items.
|
||||
The default value for EnableDefaultXamlItems is set in the targets, which works because
|
||||
the property evaluation pass comes before the item evaluation pass.
|
||||
The actual item groups are in a separate conditionally-imported file as they use constructs that
|
||||
are not compatible with older MSBuild versions.
|
||||
-->
|
||||
<Import Project="$(MSBuildThisFileDirectory)Microsoft.Maui.Controls.DefaultItems.props" Condition="'$(MSBuildSDKsPath)'!=''" />
|
||||
|
||||
<PropertyGroup>
|
||||
<_IsHotRestartDefined>$([System.Text.RegularExpressions.Regex]::IsMatch('$(DefineConstants.Trim())', '(^|;)HOTRESTART($|;)'))</_IsHotRestartDefined>
|
||||
<DefineConstants Condition="!$(_IsHotRestartDefined) And '$(IsHotRestartBuild)' == 'true'">HOTRESTART;$(DefineConstants)</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,207 @@
|
|||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<UsingTask TaskName="Microsoft.Maui.Controls.Build.Tasks.XamlGTask" AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Maui.Controls.Build.Tasks.dll" />
|
||||
<UsingTask TaskName="Microsoft.Maui.Controls.Build.Tasks.CssGTask" AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Maui.Controls.Build.Tasks.dll" />
|
||||
<UsingTask TaskName="Microsoft.Maui.Controls.Build.Tasks.XamlCTask" AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Maui.Controls.Build.Tasks.dll" />
|
||||
|
||||
<PropertyGroup>
|
||||
<SynthesizeLinkMetadata>true</SynthesizeLinkMetadata>
|
||||
<EnableDefaultXamlItems Condition="'$(EnableDefaultXamlItems)'==''">True</EnableDefaultXamlItems>
|
||||
<_DefaultXamlItemsEnabled>False</_DefaultXamlItemsEnabled>
|
||||
<EnableDefaultCssItems Condition="'$(EnableDefaultCssItems)'==''">True</EnableDefaultCssItems>
|
||||
<_DefaultCssItemsEnabled>False</_DefaultCssItemsEnabled>
|
||||
<!-- The WINUI check for this only runs when there is an empty string so I just convert false to an empty string to fall in line with our other properties -->
|
||||
<SkipMicrosoftUIXamlCheckTargetPlatformVersion Condition="'$(SkipMicrosoftUIXamlCheckTargetPlatformVersion)'==''">true</SkipMicrosoftUIXamlCheckTargetPlatformVersion>
|
||||
<SkipMicrosoftUIXamlCheckTargetPlatformVersion Condition="'$(SkipMicrosoftUIXamlCheckTargetPlatformVersion)'=='false'"></SkipMicrosoftUIXamlCheckTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$(MSBuildThisFileDirectory)Microsoft.Maui.Controls.DefaultItems.targets" Condition="'$(MSBuildSDKsPath)'!=''" />
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectCapability Include="XamarinForms" />
|
||||
<ProjectCapability Include="Maui" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Check Tasks ABI and other validations -->
|
||||
<PropertyGroup>
|
||||
<_MauiTargetsImportedAgain Condition="'$(_MauiTargetsImported)'=='True'">True</_MauiTargetsImportedAgain>
|
||||
<_MauiTargetsImported>True</_MauiTargetsImported>
|
||||
<IsXBuild Condition="'$(MSBuildRuntimeType)' == ''">true</IsXBuild>
|
||||
<IsXBuild Condition="'$(MSBuildRuntimeType)' != ''">false</IsXBuild>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="_ValidateMauiTasks" BeforeTargets="_CheckForInvalidConfigurationAndPlatform" Condition="'$(MauiDisableTargetsValidation)' != 'True'">
|
||||
<Error Code="XF001"
|
||||
Text="Microsoft.Maui targets have been imported multiple times. Please check your project file and remove the duplicate import(s)."
|
||||
Condition="'$(_MauiTargetsImportedAgain)' == 'True'" />
|
||||
</Target>
|
||||
|
||||
<Target Name="_ValidateMSBuild" BeforeTargets="_CheckForInvalidConfigurationAndPlatform">
|
||||
<Error Code="XF003"
|
||||
Text="Microsoft.Maui requires msbuild. xbuild is no longer supported."
|
||||
Condition="'$(IsXBuild)' == 'true'" />
|
||||
</Target>
|
||||
|
||||
<Target Name="_ValidateNETFrameworkVersion"
|
||||
BeforeTargets="_CheckForInvalidConfigurationAndPlatform"
|
||||
Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework' AND '$(TargetFrameworkVersion.Substring(1))' < '4.6.1' AND '$(MauiDisableFrameworkVersionValidation)' != 'True'">
|
||||
<Error Code="XF004"
|
||||
Text="Microsoft.Maui requires .NETFramework >= v4.6.1. You have '$(TargetFrameworkVersion)'" />
|
||||
</Target>
|
||||
|
||||
<!-- XamlG -->
|
||||
<Target
|
||||
Name="UpdateDesignTimeXaml"
|
||||
DependsOnTargets="XamlG"/>
|
||||
|
||||
<PropertyGroup>
|
||||
<CoreCompileDependsOn>
|
||||
XamlG;
|
||||
$(CoreCompileDependsOn);
|
||||
</CoreCompileDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target
|
||||
Name="_FindXamlGFiles"
|
||||
DependsOnTargets="PrepareResourceNames">
|
||||
<ItemGroup>
|
||||
<_XamlGInputs
|
||||
Include="@(EmbeddedResource)"
|
||||
Condition="'%(Extension)' == '.xaml' AND '$(DefaultLanguageSourceExtension)' == '.cs' AND '%(TargetPath)' != ''" />
|
||||
<_XamlGOutputs
|
||||
Include="@(_XamlGInputs->'$(IntermediateOutputPath)%(TargetPath).g.cs')" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target
|
||||
Name="XamlG"
|
||||
BeforeTargets="BeforeCompile"
|
||||
DependsOnTargets="_FindXamlGFiles; PrepareResourceNames; AfterResolveReferences"
|
||||
Inputs="@(_XamlGInputs)"
|
||||
Outputs="@(_XamlGOutputs)">
|
||||
<PropertyGroup>
|
||||
<ReferencedAssemblies>@(ReferencePath)</ReferencedAssemblies>
|
||||
</PropertyGroup>
|
||||
<XamlGTask
|
||||
XamlFiles="@(_XamlGInputs)"
|
||||
OutputFiles="@(_XamlGOutputs)"
|
||||
Language="$(Language)"
|
||||
References = "$(ReferencedAssemblies)"
|
||||
AssemblyName="$(AssemblyName)" />
|
||||
<ItemGroup>
|
||||
<FileWrites Include="@(_XamlGOutputs)" />
|
||||
<Compile Include="@(_XamlGOutputs)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<!-- XamlC -->
|
||||
<PropertyGroup>
|
||||
<CompileDependsOn>
|
||||
$(CompileDependsOn);
|
||||
XamlC;
|
||||
</CompileDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="XamlC"
|
||||
AfterTargets="AfterCompile"
|
||||
DependsOnTargets="_FindXamlGFiles"
|
||||
Inputs="$(IntermediateOutputPath)$(TargetFileName)"
|
||||
Outputs="$(IntermediateOutputPath)XamlC.stamp"
|
||||
Condition=" '$(DesignTimeBuild)' != 'True' AND '@(_XamlGInputs->Count())' != '0' ">
|
||||
<PropertyGroup>
|
||||
<_MauiXamlCValidateOnly>$(MauiXamlCValidateOnly)</_MauiXamlCValidateOnly>
|
||||
<_MauiXamlCValidateOnly Condition="'$(BuildingForLiveUnitTesting)' == 'True' ">True</_MauiXamlCValidateOnly>
|
||||
</PropertyGroup>
|
||||
<XamlCTask
|
||||
Assembly = "$(IntermediateOutputPath)$(TargetFileName)"
|
||||
ReferencePath = "@(ReferencePath)"
|
||||
OptimizeIL = "true"
|
||||
DebugSymbols = "$(DebugSymbols)"
|
||||
DebugType = "$(DebugType)"
|
||||
ValidateOnly = "$(_MauiXamlCValidateOnly)"
|
||||
KeepXamlResources = "$(MauiKeepXamlResources)" />
|
||||
<Touch Files="$(IntermediateOutputPath)XamlC.stamp" AlwaysCreate="True" />
|
||||
<ItemGroup>
|
||||
<FileWrites Include="$(IntermediateOutputPath)XamlC.stamp" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<!-- CssG -->
|
||||
<PropertyGroup>
|
||||
<CoreCompileDependsOn>
|
||||
CssG;
|
||||
$(CoreCompileDependsOn);
|
||||
</CoreCompileDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="_FindCSSFiles" DependsOnTargets="PrepareResourceNames">
|
||||
<ItemGroup>
|
||||
<_CSSInputs Include="@(EmbeddedResource)" Condition="'%(Extension)' == '.css' AND '$(DefaultLanguageSourceExtension)' == '.cs' AND '%(TargetPath)' != ''" />
|
||||
<_CSSOutputs Include="@(_CSSInputs->'$(IntermediateOutputPath)%(TargetPath).g.cs')" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="CssG" BeforeTargets="BeforeCompile" DependsOnTargets="_FindCSSFiles" Inputs="@(_CSSInputs)" Outputs="@(_CSSOutputs)">
|
||||
<CssGTask
|
||||
CSSFiles="@(_CSSInputs)"
|
||||
OutputFiles="@(_CSSOutputs)"
|
||||
Language = "$(Language)"
|
||||
AssemblyName = "$(AssemblyName)" />
|
||||
<ItemGroup>
|
||||
<FileWrites Include="@(_CSSOutputs)" />
|
||||
<Compile Include="@(_CSSOutputs)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<!--
|
||||
Platform Specific Targets.
|
||||
We can't use a framework specific targets file because it breaks shared projects i.e. /build/MonoAndroid10/Microsoft.Maui.Controls.targets
|
||||
-->
|
||||
|
||||
<!-- MonoAndroid targets. -->
|
||||
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == 'MonoAndroid'">
|
||||
<CoreCompileDependsOn>
|
||||
IncludeProguardForAndroid;
|
||||
$(CoreCompileDependsOn);
|
||||
</CoreCompileDependsOn>
|
||||
<PrepareForBuildDependsOn>
|
||||
ValidateTargetFrameworkVersionForMaui;
|
||||
$(PrepareForBuildDependsOn);
|
||||
</PrepareForBuildDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="IncludeProguardForAndroid" Condition="'$(MauiDisableDefaultProguardConfiguration)' != 'True'">
|
||||
<ItemGroup>
|
||||
<ProguardConfiguration Include="$(MSBuildThisFileDirectory)MonoAndroid10\proguard.cfg" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="ValidateTargetFrameworkVersionForMaui" Condition="'$(MauiDisableTargetFrameworkValidation)' != 'True'">
|
||||
<PropertyGroup>
|
||||
<MinTargetFrameworkVersionForMaui>10.0</MinTargetFrameworkVersionForMaui>
|
||||
<TargetFrameworkVersionWithoutV>$(TargetFrameworkVersion.TrimStart('vV'))</TargetFrameworkVersionWithoutV>
|
||||
</PropertyGroup>
|
||||
<Error Code="XF005" Condition="$(TargetFrameworkVersionWithoutV) < $(MinTargetFrameworkVersionForMaui)"
|
||||
Text="The %24(TargetFrameworkVersion) for $(ProjectName) ($(TargetFrameworkVersion)) is less than the minimum required %24(TargetFrameworkVersion) for Microsoft.Maui ($(MinTargetFrameworkVersionForMaui)). You need to increase the %24(TargetFrameworkVersion) for $(ProjectName)." />
|
||||
</Target>
|
||||
|
||||
<!-- UWP Targets-->
|
||||
<Target Name="WinUICheckTargetPlatformVersion" BeforeTargets="PrepareForBuild"
|
||||
Condition="'$(TargetPlatformIdentifier)' == 'UAP' AND '$(TargetPlatformVersion)' != '' AND '$(TargetPlatformMinVersion)' != ''">
|
||||
<PropertyGroup>
|
||||
<MicrosoftUIXamlTargetPlatformMinCheckValue>$([System.Version]::Parse('$(TargetPlatformMinVersion)').Build)</MicrosoftUIXamlTargetPlatformMinCheckValue>
|
||||
</PropertyGroup>
|
||||
<Warning
|
||||
Text="Microsoft.Maui recommends TargetPlatformMinVersion >= 10.0.15063.0 (current project is $(MicrosoftUIXamlTargetPlatformMinCheckValue))"
|
||||
Condition="$(MicrosoftUIXamlTargetPlatformMinCheckValue) < 15063" />
|
||||
<PropertyGroup>
|
||||
<MicrosoftUIXamlTargetPlatformCheckValue>$([System.Version]::Parse('$(TargetPlatformVersion)').Build)</MicrosoftUIXamlTargetPlatformCheckValue>
|
||||
</PropertyGroup>
|
||||
<Warning
|
||||
Text="Microsoft.Maui recommends TargetPlatformVersion >= 10.0.18362.0 (current project is $(MicrosoftUIXamlTargetPlatformCheckValue))"
|
||||
Condition="$(MicrosoftUIXamlTargetPlatformCheckValue) < 18362 AND '$(OutputType)'!='Library'" />
|
||||
<Warning
|
||||
Text="Microsoft.Maui recommends TargetPlatformVersion >= 10.0.14393.0 (current project is $(MicrosoftUIXamlTargetPlatformCheckValue))"
|
||||
Condition="$(MicrosoftUIXamlTargetPlatformCheckValue) < 14393 AND '$(OutputType)'=='Library'" />
|
||||
</Target>
|
||||
</Project>
|
|
@ -0,0 +1,419 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<ItemGroup>
|
||||
<AvailableItemName Include="SharedImage" />
|
||||
<AvailableItemName Include="SharedFont" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<_ResizetizerTaskAssemblyName>$(MSBuildThisFileDirectory)\Microsoft.Maui.Resizetizer.dll</_ResizetizerTaskAssemblyName>
|
||||
</PropertyGroup>
|
||||
|
||||
<UsingTask
|
||||
AssemblyFile="$(_ResizetizerTaskAssemblyName)"
|
||||
TaskName="Microsoft.Maui.Resizetizer.ResizetizeSharedImages" />
|
||||
|
||||
<UsingTask
|
||||
AssemblyFile="$(_ResizetizerTaskAssemblyName)"
|
||||
TaskName="Microsoft.Maui.Resizetizer.DetectInvalidResourceOutputFilenamesTask" />
|
||||
|
||||
<UsingTask
|
||||
AssemblyFile="$(_ResizetizerTaskAssemblyName)"
|
||||
TaskName="Microsoft.Maui.Resizetizer.CreatePartialInfoPlistTask" />
|
||||
|
||||
<PropertyGroup>
|
||||
<CleanDependsOn>
|
||||
$(CleanDependsOn);
|
||||
_CleanResizetizer;
|
||||
</CleanDependsOn>
|
||||
|
||||
<_ResizetizerInputsFile>$(IntermediateOutputPath)resizetizer.inputs</_ResizetizerInputsFile>
|
||||
<_SharedFontInputsFile>$(IntermediateOutputPath)sharedfont.inputs</_SharedFontInputsFile>
|
||||
<_SharedFontStampFile>$(IntermediateOutputPath)sharedfont.stamp</_SharedFontStampFile>
|
||||
|
||||
<ResizetizerIncludeSelfProject Condition="'$(ResizetizerIncludeSelfProject)' == ''">False</ResizetizerIncludeSelfProject>
|
||||
|
||||
<_ResizetizerDefaultInvalidFilenamesErrorMessage>
|
||||
One or more invalid file names were detected. File names must be lowercase, start and end with a letter character, and contain only alphanumeric characters or underscores:
|
||||
</_ResizetizerDefaultInvalidFilenamesErrorMessage>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' != '.NETCoreApp'">
|
||||
<_ResizetizerIsNetCore>False</_ResizetizerIsNetCore>
|
||||
<_ResizetizerIsAndroidApp Condition="'$(TargetFrameworkIdentifier)' == 'MonoAndroid' And '$(AndroidApplication)' == 'True'">True</_ResizetizerIsAndroidApp>
|
||||
<_ResizetizerIsiOSApp Condition="'$(TargetFrameworkIdentifier)' == 'Xamarin.iOS' And ('$(OutputType)' == 'Exe' Or '$(IsAppExtension)' == 'True')">True</_ResizetizerIsiOSApp>
|
||||
<_ResizetizerIsUWPApp Condition="'$(TargetPlatformIdentifier)' == 'UAP' And '$(OutputType)' == 'AppContainerExe'">True</_ResizetizerIsUWPApp>
|
||||
<_ResizetizerIsWPFApp Condition="'$(IsApplication)' == 'True' And '$(NuGetRuntimeIdentifier)' == 'win' And '$(TargetPlatformIdentifier)' == 'Windows'">True</_ResizetizerIsWPFApp>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'">
|
||||
<_ResizetizerIsNetCore>True</_ResizetizerIsNetCore>
|
||||
<_ResizetizerIsAndroidApp Condition="'$(TargetPlatformIdentifier)' == 'Android' And '$(OutputType)' == 'Exe'">True</_ResizetizerIsAndroidApp>
|
||||
<_ResizetizerIsiOSApp Condition="'$(TargetPlatformIdentifier)' == 'iOS' And ('$(OutputType)' == 'Exe' Or '$(IsAppExtension)' == 'True')">True</_ResizetizerIsiOSApp>
|
||||
<_ResizetizerIsUWPApp Condition="'$(TargetPlatformIdentifier)'=='UAP' And '$(OutputType)' == 'AppContainerExe'">True</_ResizetizerIsUWPApp>
|
||||
<_ResizetizerIsWPFApp Condition="'$(IsApplication)' == 'True' And '$(NuGetRuntimeIdentifier)' == 'win' And '$(TargetPlatformIdentifier)'=='Windows'">True</_ResizetizerIsWPFApp>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(_ResizetizerIsAndroidApp)' == 'True' Or '$(_ResizetizerIsiOSApp)' == 'True' Or '$(_ResizetizerIsUWPApp)' == 'True' Or '$(_ResizetizerIsWPFApp)' == 'True'">
|
||||
<_ResizetizerIsCompatibleApp>True</_ResizetizerIsCompatibleApp>
|
||||
|
||||
<ResizetizeDependsOnTargets>
|
||||
$(ResizetizeDependsOnTargets);
|
||||
ResizetizeCollectItems;
|
||||
</ResizetizeDependsOnTargets>
|
||||
<ProcessSharedFontsDependsOnTargets>
|
||||
$(ProcessSharedFontsDependsOnTargets);
|
||||
ResizetizeCollectItems;
|
||||
</ProcessSharedFontsDependsOnTargets>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- iOS -->
|
||||
<PropertyGroup Condition="'$(_ResizetizerIsiOSApp)' == 'True'">
|
||||
<ResizetizerPlatformType>ios</ResizetizerPlatformType>
|
||||
|
||||
<ResizetizeCollectItemsBeforeTargets>
|
||||
$(ResizetizeCollectItemsBeforeTargets);
|
||||
_CollectBundleResources;_BeforeCoreCompileImageAssets;
|
||||
</ResizetizeCollectItemsBeforeTargets>
|
||||
|
||||
<ResizetizeAfterTargets>
|
||||
$(ResizetizeAfterTargets);
|
||||
ResizetizeCollectItems;
|
||||
</ResizetizeAfterTargets>
|
||||
|
||||
<ProcessSharedFontsAfterTargets>
|
||||
$(ProcessSharedFontsAfterTargets);
|
||||
_CompileCoreMLModels;
|
||||
</ProcessSharedFontsAfterTargets>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Android -->
|
||||
<PropertyGroup Condition="'$(_ResizetizerIsAndroidApp)' == 'True'">
|
||||
<ResizetizerPlatformType>android</ResizetizerPlatformType>
|
||||
|
||||
<ResizetizeCollectItemsAfterTargets>
|
||||
$(ResizetizeCollectItemsAfterTargets);
|
||||
ResolveProjectReferences;
|
||||
</ResizetizeCollectItemsAfterTargets>
|
||||
|
||||
<ResizetizeAfterTargets>
|
||||
$(ResizetizeAfterTargets);
|
||||
ResizetizeCollectItems;
|
||||
</ResizetizeAfterTargets>
|
||||
|
||||
<ProcessSharedFontsAfterTargets>
|
||||
$(ProcessSharedFontsAfterTargets);
|
||||
ResizetizeCollectItems;
|
||||
</ProcessSharedFontsAfterTargets>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- UWP -->
|
||||
<PropertyGroup Condition="'$(_ResizetizerIsUWPApp)' == 'True'">
|
||||
<ResizetizerPlatformType>uwp</ResizetizerPlatformType>
|
||||
|
||||
<ResizetizeBeforeTargets>
|
||||
$(ResizetizeBeforeTargets);
|
||||
AssignTargetPaths;
|
||||
</ResizetizeBeforeTargets>
|
||||
|
||||
<ProcessSharedFontsBeforeTargets>
|
||||
$(ProcessSharedFontsBeforeTargets);
|
||||
AssignTargetPaths;
|
||||
</ProcessSharedFontsBeforeTargets>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- WPF -->
|
||||
<PropertyGroup Condition="'$(_ResizetizerIsWPFApp)' == 'True'">
|
||||
<ResizetizerPlatformType>wpf</ResizetizerPlatformType>
|
||||
|
||||
<ResizetizeBeforeTargets>
|
||||
$(ResizetizeBeforeTargets);
|
||||
FileClassification;
|
||||
</ResizetizeBeforeTargets>
|
||||
|
||||
<ProcessSharedFontsBeforeTargets>
|
||||
$(ProcessSharedFontsBeforeTargets);
|
||||
FileClassification;
|
||||
</ProcessSharedFontsBeforeTargets>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Finds absolute paths to any SharedImage in this project -->
|
||||
<!-- App head projects will invoke this target on their project references to collect images -->
|
||||
<Target Name="GetSharedItems" Outputs="@(ExportedSharedItem)">
|
||||
|
||||
<ItemGroup>
|
||||
<SharedItem Include="@(SharedImage)" ItemGroupName="SharedImage" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<SharedItem Include="@(SharedFont)" ItemGroupName="SharedFont" />
|
||||
</ItemGroup>
|
||||
|
||||
<ConvertToAbsolutePath Paths="@(SharedItem)">
|
||||
<Output TaskParameter="AbsolutePaths" ItemName="ExportedSharedItem" />
|
||||
</ConvertToAbsolutePath>
|
||||
|
||||
</Target>
|
||||
|
||||
|
||||
<!-- Collect images from referenced projects -->
|
||||
<Target Name="ResizetizeCollectItems"
|
||||
Condition="'$(_ResizetizerIsCompatibleApp)' == 'True'"
|
||||
BeforeTargets="$(ResizetizeCollectItemsBeforeTargets)"
|
||||
AfterTargets="$(ResizetizeCollectItemsAfterTargets)">
|
||||
|
||||
<CallTarget Targets="GetSharedItems" Condition="'$(ResizetizerIncludeSelfProject)' == 'True'">
|
||||
<Output
|
||||
TaskParameter="TargetOutputs"
|
||||
ItemName="ImportedSharedItem" />
|
||||
</CallTarget>
|
||||
|
||||
<!-- Invoke the GetSharedItems target on all project references -->
|
||||
<!-- This will accumulate images into our SharedImage group -->
|
||||
<!--<MSBuild Targets="GetSharedItems" Projects="@(_MSBuildProjectReferenceExistent)">-->
|
||||
<MSBuild
|
||||
Targets="GetSharedItems"
|
||||
Projects="@(ProjectReference)"
|
||||
SkipNonexistentProjects="true"
|
||||
SkipNonexistentTargets="true">
|
||||
<Output
|
||||
TaskParameter="TargetOutputs"
|
||||
ItemName="ImportedSharedItem" />
|
||||
</MSBuild>
|
||||
|
||||
<ItemGroup>
|
||||
<SharedImage
|
||||
Include="@(ImportedSharedItem)"
|
||||
Condition="'%(ImportedSharedItem.ItemGroupName)' == 'SharedImage'" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<SharedFont
|
||||
Include="@(ImportedSharedItem)"
|
||||
Condition="'%(ImportedSharedItem.ItemGroupName)' == 'SharedFont'" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<!-- Write out item spec and metadata to a file we can use as an inputs for the resize target -->
|
||||
<!-- This allows us to invalidate the build based on not just input image files changing but project item metadata as well -->
|
||||
<WriteLinesToFile
|
||||
File="$(_ResizetizerInputsFile)"
|
||||
Lines="@(SharedImage->'File=%(Identity);Link=%(Link);BaseSize=%(BaseSize);Resize=%(Resize);TintColor=%(TintColor);IsAppIcon=%(IsAppIcon);ForegroundScale=%(ForegroundScale);ForegroundFile=%(ForegroundFile)')"
|
||||
Overwrite="true"
|
||||
WriteOnlyWhenDifferent="true" />
|
||||
|
||||
<WriteLinesToFile
|
||||
File="$(_SharedFontInputsFile)"
|
||||
Lines="@(SharedFont->'File=%(Identity);Link=%(Link);Alias=%(Alias)')"
|
||||
Overwrite="true"
|
||||
WriteOnlyWhenDifferent="true" />
|
||||
|
||||
</Target>
|
||||
|
||||
<Target Name="ProcessSharedFonts"
|
||||
Inputs="@(SharedFont);$(_SharedFontInputsFile)"
|
||||
Outputs="$(_SharedFontStampFile)"
|
||||
AfterTargets="$(ProcessSharedFontsAfterTargets)"
|
||||
BeforeTargets="$(ProcessSharedFontsBeforeTargets)"
|
||||
DependsOnTargets="$(ProcessSharedFontsDependsOnTargets)">
|
||||
|
||||
<DetectInvalidResourceOutputFilenamesTask
|
||||
Items="@(SharedFont)"
|
||||
ErrorMessage="$(_ResizetizerDefaultInvalidFilenamesErrorMessage)">
|
||||
</DetectInvalidResourceOutputFilenamesTask>
|
||||
|
||||
<!-- Copy font files over -->
|
||||
<Copy
|
||||
SourceFiles="@(SharedFont)"
|
||||
DestinationFolder="$(IntermediateOutputPath)sp\fonts\"
|
||||
SkipUnchangedFiles="true" />
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<_SharedFontCopied Include="$(IntermediateOutputPath)sp\fonts\*" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(_ResizetizerIsiOSApp)' == 'True' And '@(_SharedFontCopied)' != ''">
|
||||
|
||||
<!-- iOS Expects fonts to be in this group -->
|
||||
<_SharedFontBundleResource Include="@(_SharedFontCopied)">
|
||||
<LogicalName>$([System.IO.Path]::GetFileName(%(_SharedFontCopied.Identity)))</LogicalName>
|
||||
<TargetPath>$([System.IO.Path]::GetFileName(%(_SharedFontCopied.Identity)))</TargetPath>
|
||||
</_SharedFontBundleResource>
|
||||
|
||||
<BundleResource Include="@(_SharedFontBundleResource)" />
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Create a partial info.plist for iOS -->
|
||||
<CreatePartialInfoPlistTask
|
||||
Condition="'$(_ResizetizerIsiOSApp)' == 'True' And '@(_SharedFontCopied)' != ''"
|
||||
IntermediateOutputPath="$(IntermediateOutputPath)sp\"
|
||||
PlistName="FontInfo.plist"
|
||||
CustomFonts="@(_SharedFontCopied)">
|
||||
<Output
|
||||
TaskParameter="PListFiles"
|
||||
ItemName="_SharedFontPListFiles" />
|
||||
|
||||
</CreatePartialInfoPlistTask>
|
||||
|
||||
<!-- iOS - Partial Info.plist for font registration -->
|
||||
<ItemGroup Condition="'$(_ResizetizerIsiOSApp)' == 'True' ">
|
||||
<_PartialAppManifest Include="@(_SharedFontPListFiles)" Condition="'@(_SharedFontPListFiles)' != ''" />
|
||||
<FileWrites Include="@(_SharedFontPListFiles)" Condition="'@(_SharedFontPListFiles)' != ''" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Android -->
|
||||
<ItemGroup Condition="'$(_ResizetizerIsAndroidApp)' == 'True'">
|
||||
|
||||
<AndroidAsset Include="@(_SharedFontCopied)" Condition="'@(_SharedFontCopied)' != ''">
|
||||
<Link>$([System.IO.Path]::GetFileName(%(_SharedFontCopied.Identity)))</Link>
|
||||
</AndroidAsset>
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
<!-- UWP -->
|
||||
<ItemGroup Condition="'$(_ResizetizerIsUWPApp)' == 'True'">
|
||||
|
||||
<ContentWithTargetPath Include="@(_SharedFontCopied)" Condition="'@(_SharedFontCopied)' != ''">
|
||||
<TargetPath>Assets\$([System.IO.Path]::GetFileName(%(_SharedFontCopied.Identity)))</TargetPath>
|
||||
</ContentWithTargetPath>
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
<!-- WPF -->
|
||||
<ItemGroup Condition="'$(_ResizetizerIsWPFApp)' == 'True'">
|
||||
|
||||
<Resource Include="@(_SharedFontCopied)" Condition="'@(_SharedFontCopied)' != ''">
|
||||
<LogicalName>$([System.IO.Path]::GetFileName(%(_SharedFontCopied.Identity)))</LogicalName>
|
||||
<Link>$([System.IO.Path]::GetFileName(%(_SharedFontCopied.Identity)))</Link>
|
||||
</Resource>
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
<!-- iOS Only -->
|
||||
<!-- If on Windows, using build host, copy the files over to build server host too -->
|
||||
<CopyFilesToBuildServer
|
||||
Condition="'$(BuildSessionId)' != '' And '$(_ResizetizerIsiOSApp)' == 'True' And '$(IsMacEnabled)'=='true'"
|
||||
SessionId="$(BuildSessionId)"
|
||||
Files="@(_SharedFontBundleResource);@(_SharedFontPListFiles)" />
|
||||
|
||||
<!-- Touch/create our stamp file for outputs -->
|
||||
<Touch Files="$(_SharedFontStampFile)" AlwaysCreate="True" />
|
||||
|
||||
<!-- Include our fonts and stamp file as filewrites so they don't get rm'd -->
|
||||
<ItemGroup>
|
||||
<FileWrites Include="$(_SharedFontStampFile)" />
|
||||
<FileWrites Include="@(_SharedFontCopied)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="ResizetizeImages"
|
||||
Inputs="@(SharedImage);$(_ResizetizerInputsFile)"
|
||||
Outputs="$(IntermediateOutputPath)resizetizer.stamp"
|
||||
AfterTargets="$(ResizetizeAfterTargets)"
|
||||
BeforeTargets="$(ResizetizeBeforeTargets)"
|
||||
DependsOnTargets="$(ResizetizeDependsOnTargets)">
|
||||
|
||||
<DetectInvalidResourceOutputFilenamesTask
|
||||
Items="@(SharedImage)"
|
||||
ErrorMessage="$(_ResizetizerDefaultInvalidFilenamesErrorMessage)">
|
||||
</DetectInvalidResourceOutputFilenamesTask>
|
||||
|
||||
<!-- Where in obj/ to store these -->
|
||||
<PropertyGroup>
|
||||
<ResizetizerIntermediateOutputPath>$(IntermediateOutputPath)resizetize\r\</ResizetizerIntermediateOutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Resize the images -->
|
||||
<ResizetizeSharedImages
|
||||
PlatformType="$(ResizetizerPlatformType)"
|
||||
IntermediateOutputPath="$(ResizetizerIntermediateOutputPath)"
|
||||
InputsFile="$(_ResizetizerInputsFile)"
|
||||
SharedImages="@(SharedImage)">
|
||||
</ResizetizeSharedImages>
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Get Images that were generated -->
|
||||
<!-- Either from the task, or if the task was skipped (up to date), use the wildcard lookup -->
|
||||
<_ResizetizerCollectedImages Condition="'@(CopiedResources)' != ''" Include="@(CopiedResources)" />
|
||||
<_ResizetizerCollectedImages Condition="'@(CopiedResources)' == ''" Include="$(ResizetizerIntermediateOutputPath)**\*" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- iOS -->
|
||||
<ItemGroup Condition="'$(_ResizetizerIsiOSApp)' == 'True'">
|
||||
<!-- Batch the collectd items into BundleResource which iOS expects -->
|
||||
<_ResizetizerCollectedBundleResourceImages Include="@(_ResizetizerCollectedImages->'%(FullPath)')">
|
||||
<LogicalName>%(_ResizetizerCollectedImages.Filename)%(_ResizetizerCollectedImages.Extension)</LogicalName>
|
||||
<TargetPath>%(_ResizetizerCollectedImages.Filename)%(_ResizetizerCollectedImages.Extension)</TargetPath>
|
||||
</_ResizetizerCollectedBundleResourceImages>
|
||||
|
||||
<!-- iOS Expects images in this group -->
|
||||
<BundleResource Include="@(_ResizetizerCollectedBundleResourceImages)" Condition="'@(_ResizetizerCollectedBundleResourceImages->Contains('Assets.xcassets'))' != 'True' and '%(_ResizetizerCollectedBundleResourceImages.Identity)' != ''" />
|
||||
|
||||
<ImageAsset
|
||||
Include="@(_ResizetizerCollectedBundleResourceImages)"
|
||||
Condition="'@(_ResizetizerCollectedBundleResourceImages->Contains('Assets.xcassets'))' == 'True' and '%(_ResizetizerCollectedBundleResourceImages.Identity)' != ''">
|
||||
<LogicalName>Assets.xcassets\$([System.IO.Path]::GetFileName($([System.IO.Path]::GetDirectoryName(%(_ResizetizerCollectedBundleResourceImages.Identity)))))\%(_ResizetizerCollectedBundleResourceImages.Filename)%(_ResizetizerCollectedBundleResourceImages.Extension)</LogicalName>
|
||||
<TargetPath>Assets.xcassets\$([System.IO.Path]::GetFileName($([System.IO.Path]::GetDirectoryName(%(_ResizetizerCollectedBundleResourceImages.Identity)))))\%(_ResizetizerCollectedBundleResourceImages.Filename)%(_ResizetizerCollectedBundleResourceImages.Extension)</TargetPath>
|
||||
<Link>Assets.xcassets\$([System.IO.Path]::GetFileName($([System.IO.Path]::GetDirectoryName(%(_ResizetizerCollectedBundleResourceImages.Identity)))))\%(_ResizetizerCollectedBundleResourceImages.Filename)%(_ResizetizerCollectedBundleResourceImages.Extension)</Link>
|
||||
</ImageAsset>
|
||||
|
||||
<FileWrites Include="@(_ResizetizerCollectedBundleResourceImages)" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- iOS Only -->
|
||||
<!-- If on Windows, using build host, copy the files over to build server host too -->
|
||||
<CopyFilesToBuildServer
|
||||
Condition="'$(BuildSessionId)' != '' And '$(_ResizetizerIsiOSApp)' == 'True' And '$(IsMacEnabled)'=='true'"
|
||||
SessionId="$(BuildSessionId)"
|
||||
Files="@(_ResizetizerCollectedBundleResourceImages)" />
|
||||
|
||||
<!-- Android -->
|
||||
<ItemGroup Condition="'$(_ResizetizerIsAndroidApp)' == 'True'">
|
||||
<!-- If we had any images, add that obj/ folder as a resource directory -->
|
||||
<LibraryResourceDirectories Condition="Exists ('$(ResizetizerIntermediateOutputPath)')" Include="$(ResizetizerIntermediateOutputPath)">
|
||||
<StampFile>$(IntermediateOutputPath)resizetizer.stamp</StampFile>
|
||||
</LibraryResourceDirectories>
|
||||
|
||||
<FileWrites Include="@(_ResizetizerCollectedImages)" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- UWP -->
|
||||
<ItemGroup Condition="'$(_ResizetizerIsUWPApp)' == 'True'">
|
||||
<ContentWithTargetPath Include="@(_ResizetizerCollectedImages)">
|
||||
<TargetPath>Assets\%(_ResizetizerCollectedImages.Filename)%(_ResizetizerCollectedImages.Extension)</TargetPath>
|
||||
</ContentWithTargetPath>
|
||||
|
||||
<FileWrites Include="@(_ResizetizerCollectedImages)" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- WPF -->
|
||||
<ItemGroup Condition="'$(_ResizetizerIsWPFApp)' == 'True'">
|
||||
<Resource Include="@(_ResizetizerCollectedImages)">
|
||||
<LogicalName>%(_ResizetizerCollectedImages.Filename)%(_ResizetizerCollectedImages.Extension)</LogicalName>
|
||||
<Link>%(_ResizetizerCollectedImages.Filename)%(_ResizetizerCollectedImages.Extension)</Link>
|
||||
</Resource>
|
||||
<FileWrites Include="@(_ResizetizerCollectedImages)" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Touch/create our stamp file for outputs -->
|
||||
<Touch Files="$(IntermediateOutputPath)resizetizer.stamp" AlwaysCreate="True" />
|
||||
|
||||
<!-- Include our images and stamp file as filewrites so they don't get rm'd -->
|
||||
<ItemGroup>
|
||||
<FileWrites Include="$(IntermediateOutputPath)resizetizer.stamp" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="_CleanResizetizer">
|
||||
<PropertyGroup>
|
||||
<ResizetizerIntermediateOutputPath>$(IntermediateOutputPath)resizetize\r\</ResizetizerIntermediateOutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<RemoveDir Directories="$(ResizetizerIntermediateOutputPath)" Condition="Exists ('$(ResizetizerIntermediateOutputPath)' )" />
|
||||
|
||||
<RemoveDir Directories="$(IntermediateOutputPath)sp" Condition="Exists ( '$(IntermediateOutputPath)sp' )" />
|
||||
</Target>
|
||||
</Project>
|
|
@ -1,24 +0,0 @@
|
|||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<XFKeepXamlResources>True</XFKeepXamlResources>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$(MSBuildThisFileDirectory)Xamarin.Forms.targets" />
|
||||
<UsingTask TaskName="Xamarin.Forms.Build.Tasks.DebugXamlCTask" AssemblyFile="$(_XFBuildTasksLocation)Xamarin.Forms.Build.Tasks.dll" />
|
||||
|
||||
<PropertyGroup>
|
||||
<CompileDependsOn>
|
||||
$(CompileDependsOn);
|
||||
GenerateDebugCode;
|
||||
</CompileDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- duplicate legacy InitializeComponent, create a ctor with bool param -->
|
||||
<Target Name="GenerateDebugCode" AfterTargets="AfterCompile">
|
||||
<DebugXamlCTask
|
||||
Assembly = "$(IntermediateOutputPath)$(TargetFileName)"
|
||||
ReferencePath = "@(ReferencePath)"
|
||||
DebugSymbols = "$(DebugSymbols)"
|
||||
DebugType = "$(DebugType)"/>
|
||||
</Target>
|
||||
</Project>
|
|
@ -1,10 +0,0 @@
|
|||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<ItemGroup Condition="'$(EnableDefaultItems)'=='True' And '$(EnableDefaultXamlItems)'=='True' And '$(EnableDefaultEmbeddedResourceItems)'=='True'">
|
||||
<EmbeddedResource Include="**\*.xaml" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" SubType="Designer" Generator="MSBuild:UpdateDesignTimeXaml" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(EnableDefaultItems)'=='True' And '$(EnableDefaultCssItems)'=='True' And '$(EnableDefaultEmbeddedResourceItems)'=='True'">
|
||||
<EmbeddedResource Include="**\*.css" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,18 +0,0 @@
|
|||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<!--
|
||||
NOTE: we cannot update/remove existing default items in our props file, as it is
|
||||
imported *before* the default items are created by Microsoft.NET.Sdk.DefaultItems.props.
|
||||
Doing it here works, but means that it will override things users do in their csproj.
|
||||
Unfortunately there is no way to work around this without adding a new extension point to
|
||||
the sdk props.
|
||||
-->
|
||||
<ItemGroup Condition="'$(EnableDefaultItems)'=='True' And '$(EnableDefaultXamlItems)'=='True' And '$(EnableDefaultEmbeddedResourceItems)'=='True'">
|
||||
<Compile Update="**\*.xaml$(DefaultLanguageSourceExtension)" DependentUpon="%(Filename)" SubType="Code" />
|
||||
<None Remove="**\*.xaml" Condition="'$(EnableDefaultNoneItems)'=='True'" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(EnableDefaultItems)'=='True' And '$(EnableDefaultCssItems)'=='True' And '$(EnableDefaultEmbeddedResourceItems)'=='True'">
|
||||
<None Remove="**\*.css" Condition="'$(EnableDefaultNoneItems)'=='True'" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
|
@ -1,75 +0,0 @@
|
|||
<Project>
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('Xamarin.iOS')) != true AND $(TargetFramework.StartsWith('net6.0-ios')) != true ">
|
||||
<Compile Remove="**\*.iOS.cs" />
|
||||
<None Include="**\*.iOS.cs" />
|
||||
<Compile Remove="**\iOS\*.cs" />
|
||||
<None Include="**\iOS\*.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('Xamarin.Mac')) != true ">
|
||||
<Compile Remove="**\*.Mac.cs" />
|
||||
<None Include="**\*.Mac.cs" />
|
||||
<Compile Remove="**\Mac\*.cs" />
|
||||
<None Include="**\Mac\*.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('Xamarin.Mac')) != true AND $(TargetFramework.StartsWith('Xamarin.iOS')) != true AND $(TargetFramework.StartsWith('net6.0-ios')) != true ">
|
||||
<Compile Remove="**\*.MaciOS.cs" />
|
||||
<None Include="**\*.MaciOS.cs" />
|
||||
<Compile Remove="**\MaciOS\*.cs" />
|
||||
<None Include="**\MaciOS\*.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('MonoAndroid')) != true AND $(TargetFramework.StartsWith('net6.0-android')) != true ">
|
||||
<Compile Remove="**\*.Android.cs" />
|
||||
<None Include="**\*.Android.cs" />
|
||||
<Compile Remove="**\Android\*.cs" />
|
||||
<None Include="**\Android\*.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('netstandard')) != true ">
|
||||
<Compile Remove="**\*.Standard.cs" />
|
||||
<None Include="**\*.Standard.cs" />
|
||||
<Compile Remove="**\Standard\*.cs" />
|
||||
<None Include="**\Standard\*.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('netcoreapp')) != true ">
|
||||
<Compile Remove="**\*.Win32.cs" />
|
||||
<None Include="**\*.Win32.cs" />
|
||||
<Compile Remove="**\*.xaml.cs" />
|
||||
<None Include="**\*.xaml.cs" />
|
||||
<Compile Remove="**\*.xaml" />
|
||||
<None Include="**\*.xaml" />
|
||||
<Compile Remove="**\Win32\*.cs" />
|
||||
<None Include="**\Win32\*.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<!-- Android -->
|
||||
<PropertyGroup Condition="$(TargetFramework.StartsWith('net6.0-android'))">
|
||||
<DefineConstants>$(DefineConstants);MONOANDROID</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- iOS -->
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'net6.0-ios' ">
|
||||
<DefineConstants>$(DefineConstants);IOS</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="$(TargetFramework.StartsWith('netcoreapp')) == true ">
|
||||
<UseWpf>true</UseWpf>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|netstandard2.0|AnyCPU'">
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
</PropertyGroup>
|
||||
<!-- If this becomes part of the product we will remove these but for now it's useful having them all in one place -->
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('MonoAndroid')) == true OR '$(TargetPlatformIdentifier)' == 'android' OR '$(TargetFramework)' == 'net6.0-android'">
|
||||
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.2.0.4" />
|
||||
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.2.1.1" />
|
||||
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.6" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Condition="$(TargetFramework.StartsWith('net5.0-windows')) == true">
|
||||
<TargetPlatformMinVersion>10.0.17134.0</TargetPlatformMinVersion>
|
||||
<RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
|
||||
<DefineConstants>$(DefineConstants);DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;UWP_16299;UWP_18362;UWP_17134</DefineConstants>
|
||||
<NoWarn>$(NoWarn);NU5104</NoWarn>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition="$(TargetFramework.StartsWith('net5.0-windows')) == true">
|
||||
<PackageReference Include="Microsoft.WinUI" Version="3.0.0-preview3.201113.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,65 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<package >
|
||||
<metadata>
|
||||
<id>Xamarin.Forms.Visual.Material</id>
|
||||
<version>$version$</version>
|
||||
<authors>Microsoft</authors>
|
||||
<owners>microsoft xamarin</owners>
|
||||
<tags>xamarin forms visual material xamarinforms xamarinformsvisualmaterial xamarin.forms.visual.material</tags>
|
||||
<license type="expression">MIT</license>
|
||||
<icon>Assets\xamarin_128x128.png</icon>
|
||||
<projectUrl>http://xamarin.com/forms</projectUrl>
|
||||
<repository type="git" url="https://github.com/xamarin/xamarin.forms"/>
|
||||
<requireLicenseAcceptance>true</requireLicenseAcceptance>
|
||||
<description>Material renderers for Xamarin.Forms</description>
|
||||
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
|
||||
<dependencies>
|
||||
<group>
|
||||
<dependency id="Xamarin.Forms" version="$version$"/>
|
||||
</group>
|
||||
<group targetFramework="MonoAndroid10">
|
||||
<dependency id="Xamarin.Forms" version="$version$"/>
|
||||
</group>
|
||||
|
||||
<group targetFramework="MonoAndroid10.0">
|
||||
<dependency id="Xamarin.AndroidX.Lifecycle.LiveData" version="2.2.0.4" />
|
||||
<dependency id="Xamarin.Google.Android.Material" version="1.2.1.1" />
|
||||
</group>
|
||||
<group targetFramework="Xamarin.iOS10">
|
||||
<dependency id="Xamarin.iOS.MaterialComponents" version="92.0.0"/>
|
||||
</group>
|
||||
<group targetFramework="tizen40">
|
||||
<dependency id="Tizen.NET" version="4.0.0"/>
|
||||
<dependency id="Tizen.NET.MaterialComponents" version="0.9.7-preview"/>
|
||||
</group>
|
||||
</dependencies>
|
||||
</metadata>
|
||||
<files>
|
||||
<!--Icon-->
|
||||
<file src="..\Assets\xamarin_128x128.png" target="Assets\" />
|
||||
<!--netstandard-->
|
||||
<file src="_._" target="lib\netstandard1.0\_._" />
|
||||
|
||||
<!--Android 10-->
|
||||
<file src="_._" target="lib\MonoAndroid10\_._" />
|
||||
<file src="Xamarin.Forms.Visual.Material.targets" target="build\MonoAndroid10\Xamarin.Forms.Visual.Material.targets" />
|
||||
|
||||
<!--Android 10 buildTransitive-->
|
||||
<file src="Xamarin.Forms.Visual.Material.targets" target="buildTransitive\MonoAndroid10\Xamarin.Forms.Visual.Material.targets" />
|
||||
|
||||
<!--Android 10.0-->
|
||||
<file src="..\Xamarin.Forms.Material.Android\bin\$Configuration$\monoandroid10.0\Xamarin.Forms.Material.dll" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\Xamarin.Forms.Material.Android\bin\$Configuration$\monoandroid10.0\Xamarin.Forms.Material.*pdb" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\Xamarin.Forms.Material.Android\bin\$Configuration$\monoandroid10.0\Xamarin.Forms.Material.*mdb" target="lib\MonoAndroid10.0" />
|
||||
|
||||
<!--iOS-->
|
||||
<file src="..\Xamarin.Forms.Material.iOS\bin\$Configuration$\Xamarin.Forms.Material.dll" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\Xamarin.Forms.Material.iOS\bin\$Configuration$\Xamarin.Forms.Material.*pdb" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\Xamarin.Forms.Material.iOS\bin\$Configuration$\Xamarin.Forms.Material.*mdb" target="lib\Xamarin.iOS10" />
|
||||
|
||||
<!--Tizen-->
|
||||
<file src="..\Xamarin.Forms.Material.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Material.dll" target="lib\tizen40" />
|
||||
<file src="..\Xamarin.Forms.Material.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Material.*pdb" target="lib\tizen40" />
|
||||
|
||||
</files>
|
||||
</package>
|
|
@ -1,275 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<package >
|
||||
<metadata>
|
||||
<id>Xamarin.Forms</id>
|
||||
<version>$version$</version>
|
||||
<authors>Microsoft</authors>
|
||||
<owners>microsoft xamarin</owners>
|
||||
<tags>xamarin forms xamarinforms xamarin.forms</tags>
|
||||
<license type="expression">MIT</license>
|
||||
<icon>Assets\xamarin_128x128.png</icon>
|
||||
<projectUrl>http://xamarin.com/forms</projectUrl>
|
||||
<repository type="git" url="https://github.com/xamarin/xamarin.forms"/>
|
||||
<requireLicenseAcceptance>true</requireLicenseAcceptance>
|
||||
<description>Build native UIs for iOS, Android, UWP, macOS, Tizen and many more from a single, shared C# codebase</description>
|
||||
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
|
||||
<dependencies>
|
||||
<group targetFramework="MonoAndroid10.0">
|
||||
<dependency id="Xamarin.AndroidX.Lifecycle.LiveData" version="2.2.0.4" />
|
||||
<dependency id="Xamarin.Google.Android.Material" version="1.2.1.1" />
|
||||
<dependency id="Xamarin.AndroidX.Legacy.Support.V4" version="1.0.0.6" />
|
||||
<dependency id="Xamarin.AndroidX.Browser" version="1.3.0" />
|
||||
</group>
|
||||
<!--<group targetFramework="net6.0-windows10.0.18362.0">
|
||||
<dependency id="Microsoft.WinUI" version="3.0.0-preview3.201113.0" />
|
||||
</group>-->
|
||||
<group targetFramework="netstandard2.0">
|
||||
</group>
|
||||
<group targetFramework="Xamarin.iOS10">
|
||||
</group>
|
||||
<!-- <group targetFramework="tizen40">
|
||||
<dependency id="Tizen.NET" version="4.0.0"/>
|
||||
<dependency id="SkiaSharp.Views" version="2.80.2"/>
|
||||
</group> -->
|
||||
</dependencies>
|
||||
|
||||
<!-- DO NOT DELETE THESE REFERENCES -->
|
||||
<!-- IF YOU DELETE THESE REFERENCES THE PACKAGE WILL NOT WORK ON MAC -->
|
||||
<!-- https://github.com/xamarin/Xamarin.Forms/pull/2575 -->
|
||||
<!-- DO NOT DELETE THESE REFERENCES -->
|
||||
<references>
|
||||
<group>
|
||||
<reference file="Xamarin.Forms.Core.dll" />
|
||||
<reference file="Xamarin.Forms.Xaml.dll" />
|
||||
<reference file="Xamarin.Platform.dll" />
|
||||
</group>
|
||||
<group targetFramework="Xamarin.iOS10">
|
||||
<reference file="Xamarin.Forms.Core.dll" />
|
||||
<reference file="Xamarin.Forms.Xaml.dll" />
|
||||
<reference file="Xamarin.Forms.Platform.iOS.dll" />
|
||||
<reference file="Xamarin.Platform.dll" />
|
||||
</group>
|
||||
<group targetFramework="MonoAndroid10.0">
|
||||
<reference file="Xamarin.Forms.Core.dll" />
|
||||
<reference file="Xamarin.Forms.Xaml.dll" />
|
||||
<reference file="FormsViewGroup.dll" />
|
||||
<reference file="Xamarin.Forms.Platform.Android.dll" />
|
||||
<reference file="Xamarin.Platform.dll" />
|
||||
</group>
|
||||
<!--<group targetFramework="net6.0-windows10.0.18362.0">
|
||||
<reference file="Xamarin.Forms.Core.dll" />
|
||||
<reference file="Xamarin.Forms.Xaml.dll" />
|
||||
<reference file="Xamarin.Forms.Platform.UAP.dll" />
|
||||
<reference file="Xamarin.Platform.dll" />
|
||||
</group>-->
|
||||
<!-- <group targetFramework="tizen40">
|
||||
<reference file="Xamarin.Forms.Core.dll" />
|
||||
<reference file="Xamarin.Forms.Platform.Tizen.dll" />
|
||||
<reference file="Xamarin.Forms.Platform.dll" />
|
||||
<reference file="Xamarin.Forms.Xaml.dll" />
|
||||
</group> -->
|
||||
</references>
|
||||
</metadata>
|
||||
|
||||
<files>
|
||||
<!--Icon-->
|
||||
<file src="..\Assets\xamarin_128x128.png" target="Assets\" />
|
||||
|
||||
<!--netstandard-->
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*mdb" target="lib\netstandard2.0" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\netstandard2.0" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\netstandard2.0" />
|
||||
<file src="..\eng\docs\**\Xamarin.Forms.Core.xml" target="lib\netstandard2.0" />
|
||||
<file src="..\eng\docs\**\Xamarin.Forms.Xaml.xml" target="lib\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*mdb" target="lib\netstandard2.0" />
|
||||
|
||||
|
||||
|
||||
<!--Handlers-->
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.dll" target="lib\netstandard2.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.*pdb" target="lib\netstandard2.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.*mdb" target="lib\netstandard2.0" />
|
||||
|
||||
<!--Xamlc stuff-->
|
||||
<file src="Xamarin.Forms.targets" target="build" />
|
||||
<file src="Xamarin.Forms.props" target="build" />
|
||||
<file src="Xamarin.Forms.DefaultItems.targets" target="build" />
|
||||
<file src="Xamarin.Forms.DefaultItems.props" target="build" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Build.Tasks.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Mdb.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Pdb.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Rocks.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\System.CodeDom.dll" target="build\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Build.Tasks.dll" target="build\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Core.dll" target="build\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Xaml.dll" target="build\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.dll" target="build\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Mdb.dll" target="build\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Pdb.dll" target="build\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Rocks.dll" target="build\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\System.ValueTuple.dll" target="build\net462" />
|
||||
|
||||
<!--Xamlc stuff buildTransitive-->
|
||||
<file src="Xamarin.Forms.targets" target="buildTransitive" />
|
||||
<file src="Xamarin.Forms.props" target="buildTransitive" />
|
||||
<file src="Xamarin.Forms.DefaultItems.targets" target="buildTransitive" />
|
||||
<file src="Xamarin.Forms.DefaultItems.props" target="buildTransitive" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Build.Tasks.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Mdb.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Pdb.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Rocks.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\System.CodeDom.dll" target="buildTransitive\netstandard2.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Build.Tasks.dll" target="buildTransitive\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Core.dll" target="buildTransitive\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Xaml.dll" target="buildTransitive\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.dll" target="buildTransitive\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Mdb.dll" target="buildTransitive\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Pdb.dll" target="buildTransitive\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Rocks.dll" target="buildTransitive\net462" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\System.ValueTuple.dll" target="buildTransitive\net462" />
|
||||
|
||||
<!-- Xaml Design-time Stuff -->
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\netstandard2.0\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\netstandard2.0\Design" />
|
||||
<!-- <file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\netstandard1.0\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\netstandard1.0\Design" /> -->
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\MonoAndroid10.0\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\MonoAndroid10.0\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\Xamarin.iOS10\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\Xamarin.iOS10\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\net5.0-windows10.0.18362.0\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\net5.0-windows10.0.18362.0\Design" />
|
||||
<!-- <file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\tizen40\Design" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\tizen40\Design" /> -->
|
||||
|
||||
<!--Android 10-->
|
||||
<file src="proguard.cfg" target="build\MonoAndroid10\proguard.cfg" />
|
||||
<file src="proguard.cfg" target="buildTransitive\MonoAndroid10\proguard.cfg" />
|
||||
|
||||
<!--Android 10-->
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android\bin\$Configuration$\MonoAndroid10.0\Xamarin.Forms.Platform.Android.dll" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android\bin\$Configuration$\MonoAndroid10.0\Xamarin.Forms.Platform.Android.*pdb" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.FormsViewGroup\bin\$Configuration$\FormsViewGroup.dll" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.FormsViewGroup\bin\$Configuration$\FormsViewGroup.*pdb" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\eng\docs\**\Xamarin.Forms.Core.xml" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\eng\docs\**\Xamarin.Forms.Xaml.xml" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\monoandroid10.0\Xamarin.Platform.dll" target="lib\MonoAndroid10.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\monoandroid10.0\Xamarin.Platform.*pdb" target="lib\MonoAndroid10.0" />
|
||||
|
||||
<!--iPhone Unified-->
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.dll" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.*pdb" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.*mdb" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*mdb" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\eng\docs\**\Xamarin.Forms.Core.xml" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\eng\docs\**\Xamarin.Forms.Xaml.xml" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*mdb" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\Xamarin.iOS10\Xamarin.Platform.dll" target="lib\Xamarin.iOS10" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\Xamarin.iOS10\Xamarin.Platform.*pdb" target="lib\Xamarin.iOS10" />
|
||||
|
||||
<!--net5.0-windows10.0.18362.0-->
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.dll" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.*pri" target="runtimes\net5.0-windows10.0.18362.0\native" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.dll" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP\**\*.xaml" target="lib\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP" />
|
||||
|
||||
<!-- iOS Localized String Resource Assemblies -->
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ar\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ar" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ca\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ca" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\cs\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\cs" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\da\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\da" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\de\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\de" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\el\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\el" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\es\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\es" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\fi\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\fi" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\fr\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\fr" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\he\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\he" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\hi\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\hi" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\hr\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\hr" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\hu\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\hu" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\id\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\id" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\it\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\it" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ja\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ja" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ko\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ko" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ms\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ms" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\nb\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\nb" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\nl\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\nl" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\pl\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\pl" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\pt-BR\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\pt-BR" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\pt\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\pt" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ro\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ro" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ru\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ru" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\sk\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\sk" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\sv\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\sv" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\th\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\th" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\tr\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\tr" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\uk\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\uk" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\vi\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\vi" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\zh-Hans\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\zh-Hans" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\zh-Hant\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\zh-Hant" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\zh-HK\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\zh-HK" />
|
||||
|
||||
<!--Tizen-->
|
||||
<!-- <file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Platform.Tizen.dll" target="lib\tizen40" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Platform.Tizen.*pdb" target="lib\tizen40" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Platform.Tizen.dll" target="lib\tizen40" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\tizen40" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\tizen40" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\tizen40" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\tizen40" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\tizen40" />
|
||||
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\tizen40" /> -->
|
||||
|
||||
|
||||
|
||||
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android\bin\$Configuration$\MonoAndroid10.0\Xamarin.Forms.Platform.Android.dll" target="ref\MonoAndroid10.0" />
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.FormsViewGroup\bin\$Configuration$\FormsViewGroup.dll" target="ref\MonoAndroid10.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="ref\MonoAndroid10.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="ref\MonoAndroid10.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\monoandroid10.0\Xamarin.Platform.dll" target="ref\MonoAndroid10.0" />
|
||||
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.dll" target="ref\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="ref\Xamarin.iOS10" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="ref\Xamarin.iOS10" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\xamarin.ios10\Xamarin.Platform.dll" target="ref\Xamarin.iOS10" />
|
||||
|
||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.dll" target="ref\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="ref\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="ref\net5.0-windows10.0.18362.0" />
|
||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.dll" target="ref\net5.0-windows10.0.18362.0" />
|
||||
|
||||
|
||||
</files>
|
||||
|
||||
</package>
|
|
@ -1,19 +0,0 @@
|
|||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<!--
|
||||
When using Sdk-style projects and default embedded resource items are enabled, automatically
|
||||
add the XAML files and fix up item metadata to pair them with code files.
|
||||
This is in the props file, not the targets file, so that projects can remove/update these items.
|
||||
The default value for EnableDefaultXamlItems is set in the targets, which works because
|
||||
the property evaluation pass comes before the item evaluation pass.
|
||||
|
||||
The actual item groups are in a separate conditionally-imported file as they use constructs that
|
||||
are not compatible with older MSBuild versions.
|
||||
-->
|
||||
<Import Project="$(MSBuildThisFileDirectory)Xamarin.Forms.DefaultItems.props" Condition="'$(MSBuildSDKsPath)'!=''" />
|
||||
|
||||
<PropertyGroup>
|
||||
<_IsHotRestartDefined>$([System.Text.RegularExpressions.Regex]::IsMatch('$(DefineConstants.Trim())', '(^|;)HOTRESTART($|;)'))</_IsHotRestartDefined>
|
||||
<DefineConstants Condition="!$(_IsHotRestartDefined) And '$(IsHotRestartBuild)' == 'true'">HOTRESTART;$(DefineConstants)</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -1,211 +0,0 @@
|
|||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<PropertyGroup>
|
||||
<_XFBuildTasksLocation Condition="'$(_XFBuildTasksLocation)' == '' AND '$(MSBuildRuntimeType)' == 'Core'">$(MSBuildThisFileDirectory)netstandard2.0\</_XFBuildTasksLocation>
|
||||
<_XFBuildTasksLocation Condition="'$(_XFBuildTasksLocation)' == ''">$(MSBuildThisFileDirectory)net462\</_XFBuildTasksLocation>
|
||||
</PropertyGroup>
|
||||
|
||||
<UsingTask TaskName="Xamarin.Forms.Build.Tasks.XamlGTask" AssemblyFile="$(_XFBuildTasksLocation)Xamarin.Forms.Build.Tasks.dll" />
|
||||
<UsingTask TaskName="Xamarin.Forms.Build.Tasks.CssGTask" AssemblyFile="$(_XFBuildTasksLocation)Xamarin.Forms.Build.Tasks.dll" />
|
||||
<UsingTask TaskName="Xamarin.Forms.Build.Tasks.XamlCTask" AssemblyFile="$(_XFBuildTasksLocation)Xamarin.Forms.Build.Tasks.dll" />
|
||||
|
||||
<PropertyGroup>
|
||||
<SynthesizeLinkMetadata>true</SynthesizeLinkMetadata>
|
||||
<EnableDefaultXamlItems Condition="'$(EnableDefaultXamlItems)'==''">True</EnableDefaultXamlItems>
|
||||
<_DefaultXamlItemsEnabled>False</_DefaultXamlItemsEnabled>
|
||||
<EnableDefaultCssItems Condition="'$(EnableDefaultCssItems)'==''">True</EnableDefaultCssItems>
|
||||
<_DefaultCssItemsEnabled>False</_DefaultCssItemsEnabled>
|
||||
<!-- The WINUI check for this only runs when there is an empty string so I just convert false to an empty string to fall in line with our other properties -->
|
||||
<SkipMicrosoftUIXamlCheckTargetPlatformVersion Condition="'$(SkipMicrosoftUIXamlCheckTargetPlatformVersion)'==''">true</SkipMicrosoftUIXamlCheckTargetPlatformVersion>
|
||||
<SkipMicrosoftUIXamlCheckTargetPlatformVersion Condition="'$(SkipMicrosoftUIXamlCheckTargetPlatformVersion)'=='false'"></SkipMicrosoftUIXamlCheckTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$(MSBuildThisFileDirectory)Xamarin.Forms.DefaultItems.targets" Condition="'$(MSBuildSDKsPath)'!=''" />
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectCapability Include="XamarinForms" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Check Tasks ABI and other validations -->
|
||||
<PropertyGroup>
|
||||
<_XFTargetsImportedAgain Condition="'$(_XFTargetsImported)'=='True'">True</_XFTargetsImportedAgain>
|
||||
<_XFTargetsImported>True</_XFTargetsImported>
|
||||
<IsXBuild Condition="'$(MSBuildRuntimeType)' == ''">true</IsXBuild>
|
||||
<IsXBuild Condition="'$(MSBuildRuntimeType)' != ''">false</IsXBuild>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="_ValidateXFTasks" BeforeTargets="_CheckForInvalidConfigurationAndPlatform" Condition="'$(XFDisableTargetsValidation)' != 'True'">
|
||||
<Error Code="XF001"
|
||||
Text="Xamarin.Forms targets have been imported multiple times. Please check your project file and remove the duplicate import(s)."
|
||||
Condition="'$(_XFTargetsImportedAgain)' == 'True'" />
|
||||
</Target>
|
||||
|
||||
<Target Name="_ValidateMSBuild" BeforeTargets="_CheckForInvalidConfigurationAndPlatform">
|
||||
<Error Code="XF003"
|
||||
Text="Xamarin.Forms require msbuild. xbuild is no longer supported."
|
||||
Condition="'$(IsXBuild)' == 'true'" />
|
||||
</Target>
|
||||
|
||||
<Target Name="_ValidateNETFrameworkVersion"
|
||||
BeforeTargets="_CheckForInvalidConfigurationAndPlatform"
|
||||
Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework' AND '$(TargetFrameworkVersion.Substring(1))' < '4.6.1' AND '$(XFDisableFrameworkVersionValidation)' != 'True'">
|
||||
<Error Code="XF004"
|
||||
Text="XF requires .NETFramework >= v4.6.1. You have '$(TargetFrameworkVersion)'" />
|
||||
</Target>
|
||||
|
||||
<!-- XamlG -->
|
||||
<Target
|
||||
Name="UpdateDesignTimeXaml"
|
||||
DependsOnTargets="XamlG"/>
|
||||
|
||||
<PropertyGroup>
|
||||
<CoreCompileDependsOn>
|
||||
XamlG;
|
||||
$(CoreCompileDependsOn);
|
||||
</CoreCompileDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target
|
||||
Name="_FindXamlGFiles"
|
||||
DependsOnTargets="PrepareResourceNames">
|
||||
<ItemGroup>
|
||||
<_XamlGInputs
|
||||
Include="@(EmbeddedResource)"
|
||||
Condition="'%(Extension)' == '.xaml' AND '$(DefaultLanguageSourceExtension)' == '.cs' AND '%(TargetPath)' != ''" />
|
||||
<_XamlGOutputs
|
||||
Include="@(_XamlGInputs->'$(IntermediateOutputPath)%(TargetPath).g.cs')" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target
|
||||
Name="XamlG"
|
||||
BeforeTargets="BeforeCompile"
|
||||
DependsOnTargets="_FindXamlGFiles; PrepareResourceNames; AfterResolveReferences"
|
||||
Inputs="@(_XamlGInputs)"
|
||||
Outputs="@(_XamlGOutputs)">
|
||||
<PropertyGroup>
|
||||
<ReferencedAssemblies>@(ReferencePath)</ReferencedAssemblies>
|
||||
</PropertyGroup>
|
||||
<XamlGTask
|
||||
XamlFiles="@(_XamlGInputs)"
|
||||
OutputFiles="@(_XamlGOutputs)"
|
||||
Language="$(Language)"
|
||||
References = "$(ReferencedAssemblies)"
|
||||
AssemblyName="$(AssemblyName)" />
|
||||
<ItemGroup>
|
||||
<FileWrites Include="@(_XamlGOutputs)" />
|
||||
<Compile Include="@(_XamlGOutputs)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<!-- XamlC -->
|
||||
<PropertyGroup>
|
||||
<CompileDependsOn>
|
||||
$(CompileDependsOn);
|
||||
XamlC;
|
||||
</CompileDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="XamlC"
|
||||
AfterTargets="AfterCompile"
|
||||
DependsOnTargets="_FindXamlGFiles"
|
||||
Inputs="$(IntermediateOutputPath)$(TargetFileName)"
|
||||
Outputs="$(IntermediateOutputPath)XamlC.stamp"
|
||||
Condition=" '$(DesignTimeBuild)' != 'True' AND '@(_XamlGInputs->Count())' != '0' ">
|
||||
<PropertyGroup>
|
||||
<_XFXamlCValidateOnly>$(XFXamlCValidateOnly)</_XFXamlCValidateOnly>
|
||||
<_XFXamlCValidateOnly Condition="'$(BuildingForLiveUnitTesting)' == 'True' ">True</_XFXamlCValidateOnly>
|
||||
</PropertyGroup>
|
||||
<XamlCTask
|
||||
Assembly = "$(IntermediateOutputPath)$(TargetFileName)"
|
||||
ReferencePath = "@(ReferencePath)"
|
||||
OptimizeIL = "true"
|
||||
DebugSymbols = "$(DebugSymbols)"
|
||||
DebugType = "$(DebugType)"
|
||||
ValidateOnly = "$(_XFXamlCValidateOnly)"
|
||||
KeepXamlResources = "$(XFKeepXamlResources)" />
|
||||
<Touch Files="$(IntermediateOutputPath)XamlC.stamp" AlwaysCreate="True" />
|
||||
<ItemGroup>
|
||||
<FileWrites Include="$(IntermediateOutputPath)XamlC.stamp" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<!-- CssG -->
|
||||
<PropertyGroup>
|
||||
<CoreCompileDependsOn>
|
||||
CssG;
|
||||
$(CoreCompileDependsOn);
|
||||
</CoreCompileDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="_FindCSSFiles" DependsOnTargets="PrepareResourceNames">
|
||||
<ItemGroup>
|
||||
<_CSSInputs Include="@(EmbeddedResource)" Condition="'%(Extension)' == '.css' AND '$(DefaultLanguageSourceExtension)' == '.cs' AND '%(TargetPath)' != ''" />
|
||||
<_CSSOutputs Include="@(_CSSInputs->'$(IntermediateOutputPath)%(TargetPath).g.cs')" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="CssG" BeforeTargets="BeforeCompile" DependsOnTargets="_FindCSSFiles" Inputs="@(_CSSInputs)" Outputs="@(_CSSOutputs)">
|
||||
<CssGTask
|
||||
CSSFiles="@(_CSSInputs)"
|
||||
OutputFiles="@(_CSSOutputs)"
|
||||
Language = "$(Language)"
|
||||
AssemblyName = "$(AssemblyName)" />
|
||||
<ItemGroup>
|
||||
<FileWrites Include="@(_CSSOutputs)" />
|
||||
<Compile Include="@(_CSSOutputs)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<!--
|
||||
Platform Specific Targets.
|
||||
We can't use a framework specific targets file because it breaks shared projects i.e. /build/MonoAndroid10/Xamarin.Forms.targets
|
||||
-->
|
||||
|
||||
<!-- MonoAndroid targets. -->
|
||||
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == 'MonoAndroid'">
|
||||
<CoreCompileDependsOn>
|
||||
IncludeProguardForAndroid;
|
||||
$(CoreCompileDependsOn);
|
||||
</CoreCompileDependsOn>
|
||||
<PrepareForBuildDependsOn>
|
||||
ValidateTargetFrameworkVersionForForms;
|
||||
$(PrepareForBuildDependsOn);
|
||||
</PrepareForBuildDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="IncludeProguardForAndroid" Condition="'$(XFDisableDefaultProguardConfiguration)' != 'True'">
|
||||
<ItemGroup>
|
||||
<ProguardConfiguration Include="$(MSBuildThisFileDirectory)MonoAndroid10\proguard.cfg" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="ValidateTargetFrameworkVersionForForms" Condition="'$(XFDisableTargetFrameworkValidation)' != 'True'">
|
||||
<PropertyGroup>
|
||||
<MinTargetFrameworkVersionForForms>10.0</MinTargetFrameworkVersionForForms>
|
||||
<TargetFrameworkVersionWithoutV>$(TargetFrameworkVersion.TrimStart('vV'))</TargetFrameworkVersionWithoutV>
|
||||
</PropertyGroup>
|
||||
<Error Code="XF005" Condition="$(TargetFrameworkVersionWithoutV) < $(MinTargetFrameworkVersionForForms)"
|
||||
Text="The %24(TargetFrameworkVersion) for $(ProjectName) ($(TargetFrameworkVersion)) is less than the minimum required %24(TargetFrameworkVersion) for Xamarin.Forms ($(MinTargetFrameworkVersionForForms)). You need to increase the %24(TargetFrameworkVersion) for $(ProjectName)." />
|
||||
</Target>
|
||||
|
||||
<!-- UWP Targets-->
|
||||
<Target Name="WinUICheckTargetPlatformVersion" BeforeTargets="PrepareForBuild"
|
||||
Condition="'$(TargetPlatformIdentifier)' == 'UAP' AND '$(TargetPlatformVersion)' != '' AND '$(TargetPlatformMinVersion)' != ''">
|
||||
<PropertyGroup>
|
||||
<MicrosoftUIXamlTargetPlatformMinCheckValue>$([System.Version]::Parse('$(TargetPlatformMinVersion)').Build)</MicrosoftUIXamlTargetPlatformMinCheckValue>
|
||||
</PropertyGroup>
|
||||
<Warning
|
||||
Text="Xamarin.Forms recommends TargetPlatformMinVersion >= 10.0.15063.0 (current project is $(MicrosoftUIXamlTargetPlatformMinCheckValue))"
|
||||
Condition="$(MicrosoftUIXamlTargetPlatformMinCheckValue) < 15063" />
|
||||
<PropertyGroup>
|
||||
<MicrosoftUIXamlTargetPlatformCheckValue>$([System.Version]::Parse('$(TargetPlatformVersion)').Build)</MicrosoftUIXamlTargetPlatformCheckValue>
|
||||
</PropertyGroup>
|
||||
<Warning
|
||||
Text="Xamarin.Forms recommends TargetPlatformVersion >= 10.0.18362.0 (current project is $(MicrosoftUIXamlTargetPlatformCheckValue))"
|
||||
Condition="$(MicrosoftUIXamlTargetPlatformCheckValue) < 18362 AND '$(OutputType)'!='Library'" />
|
||||
<Warning
|
||||
Text="Xamarin.Forms recommends TargetPlatformVersion >= 10.0.14393.0 (current project is $(MicrosoftUIXamlTargetPlatformCheckValue))"
|
||||
Condition="$(MicrosoftUIXamlTargetPlatformCheckValue) < 14393 AND '$(OutputType)'=='Library'" />
|
||||
</Target>
|
||||
</Project>
|
|
@ -0,0 +1,6 @@
|
|||
param ($configuration)
|
||||
|
||||
dotnet pack $PSScriptRoot\..\Microsoft.Maui-net6.sln `
|
||||
-c:$configuration `
|
||||
-p:SymbolPackageFormat=snupkg `
|
||||
-bl:$PSScriptRoot\..\artifacts\maui.binlog
|
|
@ -0,0 +1,971 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.30503.244
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{9AD757F5-E57A-459D-A0A7-E0675E045B84}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compatibility", "Compatibility", "{29AC50BF-B4FB-450B-9386-0C5AD4B84226}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.Android", "src\Compatibility\Core\src\Android\Compatibility.Android.csproj", "{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuspec", ".nuspec", "{7E12C50D-A570-4DF1-94E1-8599843FA87C}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
.nuspec\Microsoft.Maui.Controls.Compatibility.AppLinks.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.AppLinks.nuspec
|
||||
.nuspec\Microsoft.Maui.Controls.Compatibility.GTK.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.GTK.nuspec
|
||||
.nuspec\Microsoft.Maui.Controls.Compatibility.Maps.GTK.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.Maps.GTK.nuspec
|
||||
.nuspec\Microsoft.Maui.Controls.Compatibility.Maps.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.Maps.nuspec
|
||||
.nuspec\Microsoft.Maui.Controls.Compatibility.Maps.WPF.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.Maps.WPF.nuspec
|
||||
.nuspec\Microsoft.Maui.Controls.Compatibility.WPF.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.WPF.nuspec
|
||||
.nuspec\Microsoft.Maui.Controls.Debug.targets = .nuspec\Microsoft.Maui.Controls.Debug.targets
|
||||
.nuspec\Microsoft.Maui.Controls.DefaultItems.props = .nuspec\Microsoft.Maui.Controls.DefaultItems.props
|
||||
.nuspec\Microsoft.Maui.Controls.DefaultItems.targets = .nuspec\Microsoft.Maui.Controls.DefaultItems.targets
|
||||
.nuspec\Microsoft.Maui.Controls.DualScreen.nuspec = .nuspec\Microsoft.Maui.Controls.DualScreen.nuspec
|
||||
.nuspec\Microsoft.Maui.Controls.MultiTargeting.targets = .nuspec\Microsoft.Maui.Controls.MultiTargeting.targets
|
||||
.nuspec\Microsoft.Maui.Controls.nuspec = .nuspec\Microsoft.Maui.Controls.nuspec
|
||||
.nuspec\Microsoft.Maui.Controls.props = .nuspec\Microsoft.Maui.Controls.props
|
||||
.nuspec\Microsoft.Maui.Controls.targets = .nuspec\Microsoft.Maui.Controls.targets
|
||||
.nuspec\Microsoft.Maui.Controls.Visual.Material.nuspec = .nuspec\Microsoft.Maui.Controls.Visual.Material.nuspec
|
||||
.nuspec\Microsoft.Maui.Controls.Visual.Material.targets = .nuspec\Microsoft.Maui.Controls.Visual.Material.targets
|
||||
.nuspec\proguard.cfg = .nuspec\proguard.cfg
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Core", "src\Controls\src\Core\Controls.Core.csproj", "{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Handlers", "Handlers", "{31721EFD-3238-462B-B501-41F3D2B50E92}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{97FA536A-675D-41C7-A90E-97E2F79D1AE2}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{423C21C8-84CB-4A3C-BEB9-1C23D752D90F}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core", "src\Core\src\Core.csproj", "{29913989-0F70-48D8-8EDE-B1DD217F21D1}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Compatibility.Android.FormsViewGroup", "src\Compatibility\Core\src\Android.FormsViewGroup\Compatibility.Android.FormsViewGroup.csproj", "{3B72465B-ACAE-43AE-9327-10F372FE5F80}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Compatibility.iOS", "src\Compatibility\Core\src\iOS\Compatibility.iOS.csproj", "{271193C1-6E7C-429C-A36D-3F1BE5267231}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D5B986A3-7FC9-437E-8030-349AA4698DFD}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{75A2CD30-BB85-4CA6-AC95-86A8A538A690}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Core.UnitTests", "src\Controls\tests\Core.UnitTests\Controls.Core.UnitTests.csproj", "{00259593-A283-47A5-ACB7-9C3819B16364}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Xaml", "src\Controls\src\Xaml\Controls.Xaml.csproj", "{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Maps", "src\Controls\Maps\src\Controls.Maps.csproj", "{F137FAC5-3385-4B19-988B-4A14ED84CCC6}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Build.Tasks", "src\Controls\src\Build.Tasks\Controls.Build.Tasks.csproj", "{C328C538-B69F-43D2-80EE-3C1EB8254CBA}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core.UnitTests", "src\Core\tests\UnitTests\Core.UnitTests.csproj", "{7A753001-1C3D-404D-A421-2E052A545EAC}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Control Gallery", "Control Gallery", "{F07FDC58-64A0-42DA-8556-09742721F15E}"
|
||||
EndProject
|
||||
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Xamarin.Forms.Controls.Issues.Shared", "src\ControlGallery\src\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.shproj", "{0F0DB9CC-EA65-429C-9363-38624BF8F49C}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Controls", "src\ControlGallery\src\Xamarin.Forms.Controls\Xamarin.Forms.Controls.csproj", "{7AD93806-111D-4FDC-B48D-9566765185FF}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.ControlGallery.Android", "src\ControlGallery\src\Xamarin.Forms.ControlGallery.Android\Xamarin.Forms.ControlGallery.Android.csproj", "{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compatibility.Maps", "Compatibility.Maps", "{8A70C15D-86D3-4086-A8C5-E17B299EA970}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.Maps.Android", "src\Compatibility\Maps\src\Android\Compatibility.Maps.Android.csproj", "{1D11EC11-4734-47D4-9B62-4D03CFF67090}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls.Xaml", "Controls.Xaml", "{E7F90170-B71B-4730-A082-1DF4E4F04420}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Controls.Xaml.Design", "src\Controls\src\Xaml.Design\Controls.Xaml.Design.csproj", "{65BC4888-CC59-428A-9B75-540CF1C09480}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Xaml.UnitTests", "src\Controls\tests\Xaml.UnitTests\Controls.Xaml.UnitTests.csproj", "{5997F786-4526-4A4B-BFC6-3832091D6544}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Controls.Core.Design", "src\Controls\src\Core.Design\Controls.Core.Design.csproj", "{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.Android.AppLinks", "src\Compatibility\Core\src\Android.AppLinks\Compatibility.Android.AppLinks.csproj", "{10553575-8E27-4E2C-9E88-90B015E80F1C}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.CustomAttributes", "src\Controls\tests\CustomAttributes\Controls.CustomAttributes.csproj", "{2964F669-7CD9-4D78-B4D9-804A965D58C0}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B5E27729-44E8-4BE6-A62E-45FF27449B8F}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{5CE892DB-8CA2-42E4-8130-2836D28AD8DB}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Compatibility.Android.UnitTests", "src\Compatibility\Core\tests\Android\Compatibility.Android.UnitTests.csproj", "{A4C57790-71D1-467C-A69E-2BD84CB6666C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.ControlGallery.iOS", "src\ControlGallery\src\Xamarin.Forms.ControlGallery.iOS\Xamarin.Forms.ControlGallery.iOS.csproj", "{C7131F14-274F-4B55-ACA9-E81731AD012F}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Compatibility.iOS.UnitTests", "src\Compatibility\Core\tests\iOS\Compatibility.iOS.UnitTests.csproj", "{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Compatibility.Maps.iOS", "src\Compatibility\Maps\src\iOS\Compatibility.Maps.iOS.csproj", "{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{52963C98-6AD9-4B57-924F-BE58DC36D746}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{FFCE9E2C-327C-46E7-8AC1-18CB2E982C2E}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Core.iOS.UITests", "src\ControlGallery\test\Xamarin.Forms.Core.iOS.UITests\Xamarin.Forms.Core.iOS.UITests.csproj", "{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}"
|
||||
EndProject
|
||||
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Xamarin.Forms.Core.UITests.Shared", "src\ControlGallery\src\Xamarin.Forms.Core.UITests.Shared\Xamarin.Forms.Core.UITests.Shared.shproj", "{E175485B-3C8C-47D7-8DD5-F7FED627EB25}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Core.Android.UITests", "src\ControlGallery\test\Xamarin.Forms.Core.Android.UITests\Xamarin.Forms.Core.Android.UITests.csproj", "{A34EBE01-25BF-4E69-A2DC-2288DC625541}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.UAP", "src\Compatibility\Core\src\UAP\Compatibility.UAP.csproj", "{DD10263D-D580-4241-9E21-EB5DE0FC83C3}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.ControlGallery.WindowsUniversal", "src\ControlGallery\src\Xamarin.Forms.ControlGallery.WindowsUniversal\Xamarin.Forms.ControlGallery.WindowsUniversal.csproj", "{AC257966-9368-478A-9DF4-F0D28E320FE3}"
|
||||
EndProject
|
||||
Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Xamarin.Forms.ControlGallery.WindowsUniversal (Package)", "src\ControlGallery\src\Xamarin.Forms.ControlGallery.WindowsUniversal (Package)\Xamarin.Forms.ControlGallery.WindowsUniversal (Package).wapproj", "{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.UAP.UnitTests", "src\Compatibility\Core\tests\UAP\Compatibility.UAP.UnitTests.csproj", "{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SharedMSBuildProjectFiles) = preSolution
|
||||
src\ControlGallery\src\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems*{0f0db9cc-ea65-429c-9363-38624bf8f49c}*SharedItemsImports = 13
|
||||
src\ControlGallery\src\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems*{7ad93806-111d-4fdc-b48d-9566765185ff}*SharedItemsImports = 5
|
||||
src\ControlGallery\src\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems*{a34ebe01-25bf-4e69-a2dc-2288dc625541}*SharedItemsImports = 4
|
||||
src\ControlGallery\src\Xamarin.Forms.Core.UITests.Shared\Xamarin.Forms.Core.UITests.projitems*{a34ebe01-25bf-4e69-a2dc-2288dc625541}*SharedItemsImports = 4
|
||||
src\ControlGallery\src\Xamarin.Forms.Core.UITests.Shared\Xamarin.Forms.Core.UITests.projitems*{e175485b-3c8c-47d7-8dd5-f7fed627eb25}*SharedItemsImports = 13
|
||||
src\ControlGallery\src\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems*{eadd8100-b3ae-4a31-92c4-267a64a1c6eb}*SharedItemsImports = 4
|
||||
src\ControlGallery\src\Xamarin.Forms.Core.UITests.Shared\Xamarin.Forms.Core.UITests.projitems*{eadd8100-b3ae-4a31-92c4-267a64a1c6eb}*SharedItemsImports = 4
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|ARM64 = Debug|ARM64
|
||||
Debug|iPhone = Debug|iPhone
|
||||
Debug|iPhoneSimulator = Debug|iPhoneSimulator
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|ARM = Release|ARM
|
||||
Release|ARM64 = Release|ARM64
|
||||
Release|iPhone = Release|iPhone
|
||||
Release|iPhoneSimulator = Release|iPhoneSimulator
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|x64.Build.0 = Release|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|x86.Build.0 = Release|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x64.Build.0 = Release|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x86.Build.0 = Release|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x64.Build.0 = Release|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x86.Build.0 = Release|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|x64.Build.0 = Release|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|x86.Build.0 = Release|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x64.Build.0 = Release|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x86.Build.0 = Release|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|x64.Build.0 = Release|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|x86.Build.0 = Release|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x64.Build.0 = Release|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x86.Build.0 = Release|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|x64.Build.0 = Release|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|x86.Build.0 = Release|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x64.Build.0 = Release|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x86.Build.0 = Release|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x64.Build.0 = Release|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x86.Build.0 = Release|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|x64.Build.0 = Release|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|x86.Build.0 = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM.Deploy.0 = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM64.Deploy.0 = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhone.Deploy.0 = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x64.Deploy.0 = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x86.Deploy.0 = Debug|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM.Deploy.0 = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM64.Deploy.0 = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhone.Deploy.0 = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x64.Build.0 = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x64.Deploy.0 = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x86.Build.0 = Release|Any CPU
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x86.Deploy.0 = Release|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|x64.Build.0 = Release|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|x86.Build.0 = Release|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|x64.Build.0 = Release|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|x86.Build.0 = Release|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|x64.Build.0 = Release|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|x86.Build.0 = Release|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|x64.Build.0 = Release|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|x86.Build.0 = Release|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|x64.Build.0 = Release|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|x86.Build.0 = Release|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|x64.Build.0 = Release|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|x86.Build.0 = Release|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|x64.Build.0 = Release|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|x86.Build.0 = Release|Any CPU
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|ARM64.ActiveCfg = Debug|iPhoneSimulator
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|iPhone.Build.0 = Debug|iPhone
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|iPhone.Deploy.0 = Debug|iPhone
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|ARM.ActiveCfg = Release|iPhoneSimulator
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|ARM64.ActiveCfg = Release|iPhoneSimulator
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|iPhone.ActiveCfg = Release|iPhone
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|iPhone.Build.0 = Release|iPhone
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|x64.ActiveCfg = Release|iPhoneSimulator
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|x86.ActiveCfg = Release|iPhoneSimulator
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|x64.Build.0 = Release|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|x86.Build.0 = Release|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|x64.Build.0 = Release|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|x86.Build.0 = Release|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|x64.Build.0 = Release|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|x86.Build.0 = Release|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|x64.Build.0 = Release|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|x86.Build.0 = Release|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|x64.Build.0 = Release|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|x86.Build.0 = Release|Any CPU
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|ARM64.ActiveCfg = Debug|x86
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|iPhone.ActiveCfg = Debug|x86
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x64.Build.0 = Debug|x64
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x86.Build.0 = Debug|x86
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x86.Deploy.0 = Debug|x86
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|Any CPU.ActiveCfg = Release|x86
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|ARM.Build.0 = Release|ARM
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|ARM.Deploy.0 = Release|ARM
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|ARM64.ActiveCfg = Release|x86
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|iPhone.ActiveCfg = Release|x86
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|iPhoneSimulator.ActiveCfg = Release|x86
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x64.ActiveCfg = Release|x64
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x64.Build.0 = Release|x64
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x64.Deploy.0 = Release|x64
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x86.ActiveCfg = Release|x86
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x86.Build.0 = Release|x86
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x86.Deploy.0 = Release|x86
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|ARM.ActiveCfg = Debug|x86
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|ARM64.ActiveCfg = Debug|arm64
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|ARM64.Build.0 = Debug|arm64
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|ARM64.Deploy.0 = Debug|arm64
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|iPhone.ActiveCfg = Debug|x86
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x64.Build.0 = Debug|x64
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x86.Build.0 = Debug|x86
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x86.Deploy.0 = Debug|x86
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|Any CPU.ActiveCfg = Release|x86
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|ARM.ActiveCfg = Release|x86
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|ARM64.ActiveCfg = Release|arm64
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|ARM64.Build.0 = Release|arm64
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|ARM64.Deploy.0 = Release|arm64
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|iPhone.ActiveCfg = Release|x86
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|iPhoneSimulator.ActiveCfg = Release|x86
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x64.ActiveCfg = Release|x64
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x64.Build.0 = Release|x64
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x64.Deploy.0 = Release|x64
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x86.ActiveCfg = Release|x86
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x86.Build.0 = Release|x86
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x86.Deploy.0 = Release|x86
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|x64.Build.0 = Release|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{9AD757F5-E57A-459D-A0A7-E0675E045B84} = {97FA536A-675D-41C7-A90E-97E2F79D1AE2}
|
||||
{29AC50BF-B4FB-450B-9386-0C5AD4B84226} = {97FA536A-675D-41C7-A90E-97E2F79D1AE2}
|
||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A} = {B5E27729-44E8-4BE6-A62E-45FF27449B8F}
|
||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC} = {D5B986A3-7FC9-437E-8030-349AA4698DFD}
|
||||
{423C21C8-84CB-4A3C-BEB9-1C23D752D90F} = {31721EFD-3238-462B-B501-41F3D2B50E92}
|
||||
{2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA} = {31721EFD-3238-462B-B501-41F3D2B50E92}
|
||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1} = {423C21C8-84CB-4A3C-BEB9-1C23D752D90F}
|
||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80} = {B5E27729-44E8-4BE6-A62E-45FF27449B8F}
|
||||
{271193C1-6E7C-429C-A36D-3F1BE5267231} = {B5E27729-44E8-4BE6-A62E-45FF27449B8F}
|
||||
{D5B986A3-7FC9-437E-8030-349AA4698DFD} = {9AD757F5-E57A-459D-A0A7-E0675E045B84}
|
||||
{75A2CD30-BB85-4CA6-AC95-86A8A538A690} = {9AD757F5-E57A-459D-A0A7-E0675E045B84}
|
||||
{00259593-A283-47A5-ACB7-9C3819B16364} = {75A2CD30-BB85-4CA6-AC95-86A8A538A690}
|
||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27} = {E7F90170-B71B-4730-A082-1DF4E4F04420}
|
||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6} = {8A70C15D-86D3-4086-A8C5-E17B299EA970}
|
||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA} = {E7F90170-B71B-4730-A082-1DF4E4F04420}
|
||||
{7A753001-1C3D-404D-A421-2E052A545EAC} = {2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA}
|
||||
{0F0DB9CC-EA65-429C-9363-38624BF8F49C} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
||||
{7AD93806-111D-4FDC-B48D-9566765185FF} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
||||
{8A70C15D-86D3-4086-A8C5-E17B299EA970} = {97FA536A-675D-41C7-A90E-97E2F79D1AE2}
|
||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090} = {8A70C15D-86D3-4086-A8C5-E17B299EA970}
|
||||
{E7F90170-B71B-4730-A082-1DF4E4F04420} = {97FA536A-675D-41C7-A90E-97E2F79D1AE2}
|
||||
{65BC4888-CC59-428A-9B75-540CF1C09480} = {E7F90170-B71B-4730-A082-1DF4E4F04420}
|
||||
{5997F786-4526-4A4B-BFC6-3832091D6544} = {E7F90170-B71B-4730-A082-1DF4E4F04420}
|
||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF} = {D5B986A3-7FC9-437E-8030-349AA4698DFD}
|
||||
{10553575-8E27-4E2C-9E88-90B015E80F1C} = {B5E27729-44E8-4BE6-A62E-45FF27449B8F}
|
||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0} = {75A2CD30-BB85-4CA6-AC95-86A8A538A690}
|
||||
{B5E27729-44E8-4BE6-A62E-45FF27449B8F} = {29AC50BF-B4FB-450B-9386-0C5AD4B84226}
|
||||
{5CE892DB-8CA2-42E4-8130-2836D28AD8DB} = {29AC50BF-B4FB-450B-9386-0C5AD4B84226}
|
||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C} = {5CE892DB-8CA2-42E4-8130-2836D28AD8DB}
|
||||
{C7131F14-274F-4B55-ACA9-E81731AD012F} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE} = {5CE892DB-8CA2-42E4-8130-2836D28AD8DB}
|
||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491} = {8A70C15D-86D3-4086-A8C5-E17B299EA970}
|
||||
{52963C98-6AD9-4B57-924F-BE58DC36D746} = {F07FDC58-64A0-42DA-8556-09742721F15E}
|
||||
{FFCE9E2C-327C-46E7-8AC1-18CB2E982C2E} = {F07FDC58-64A0-42DA-8556-09742721F15E}
|
||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB} = {FFCE9E2C-327C-46E7-8AC1-18CB2E982C2E}
|
||||
{E175485B-3C8C-47D7-8DD5-F7FED627EB25} = {FFCE9E2C-327C-46E7-8AC1-18CB2E982C2E}
|
||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541} = {FFCE9E2C-327C-46E7-8AC1-18CB2E982C2E}
|
||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3} = {B5E27729-44E8-4BE6-A62E-45FF27449B8F}
|
||||
{AC257966-9368-478A-9DF4-F0D28E320FE3} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D} = {5CE892DB-8CA2-42E4-8130-2836D28AD8DB}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {650AE971-2F29-46A8-822C-FB4FCDC6A9A0}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -1,8 +1,7 @@
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<__XFBuildTasksLocation>$(_XFBuildTasksLocation)</__XFBuildTasksLocation>
|
||||
<__XFBuildTasksLocation Condition="'$(__XFBuildTasksLocation)' == '' AND '$(MSBuildRuntimeType)' == 'Core'">$(MSBuildThisFileDirectory).nuspec\netstandard2.0\</__XFBuildTasksLocation>
|
||||
<__XFBuildTasksLocation Condition="'$(__XFBuildTasksLocation)' == ''">$(MSBuildThisFileDirectory).nuspec\net462\</__XFBuildTasksLocation>
|
||||
<_MauiBuildTasksLocation>$(_MauiBuildTasksLocation)</_MauiBuildTasksLocation>
|
||||
<_MauiBuildTasksLocation Condition="'$(_MauiBuildTasksLocation)' == ''">$(MSBuildThisFileDirectory).nuspec\</_MauiBuildTasksLocation>
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
<DebugType>portable</DebugType>
|
||||
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
||||
|
@ -10,15 +9,27 @@
|
|||
<IncludeSymbols>true</IncludeSymbols>
|
||||
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
|
||||
<Company>Microsoft</Company>
|
||||
<Product>Xamarin.Forms</Product>
|
||||
<Product>Microsoft MAUI</Product>
|
||||
<ProduceReferenceAssembly Condition="'$(UsingMicrosoftNETSdk)' == 'True' AND '$(Configuration)' == 'Debug'">True</ProduceReferenceAssembly>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<GitDefaultBranch>main</GitDefaultBranch>
|
||||
</PropertyGroup>
|
||||
<Import Condition="'$(SampleProject)' != 'True'" Project="$(MSBuildThisFileDirectory)eng\SourceLink.Build.props" />
|
||||
<PropertyGroup>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<Authors>Microsoft</Authors>
|
||||
<Owners>microsoft</Owners>
|
||||
<NeutralLanguage>en</NeutralLanguage>
|
||||
<RepositoryUrl>https://github.com/dotnet/maui.git</RepositoryUrl>
|
||||
<ProjectUrl>https://github.com/dotnet/maui</ProjectUrl>
|
||||
<PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>
|
||||
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
|
||||
<PackageVersion>0.0.1-alpha1</PackageVersion>
|
||||
<PackageOutputPath>$(MSBuildThisFileDirectory)artifacts</PackageOutputPath>
|
||||
</PropertyGroup>
|
||||
<!-- This target is replaced by GitInfo when restored. Allows Version.targets to rely on it before restore. -->
|
||||
<Target Name="GitVersion" />
|
||||
|
||||
<Target Name="GitInfo" />
|
||||
<Import Condition="'$(EnvironmentBuildPropsImported)' != 'True'" Project="$(MSBuildThisFileDirectory)eng\Environment.Build.props" />
|
||||
<Import Condition="'$(SampleProject)' != 'True' and '$(CI)' == 'true'" Project="$(MSBuildThisFileDirectory)eng\SourceLink.Build.props" />
|
||||
</Project>
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
<Project>
|
||||
<Import Condition="'$(SampleProject)' != 'true'" Project="eng\Git.Build.targets" />
|
||||
<Import Condition="'$(SampleProject)' != 'true'" Project="eng\Version.targets" />
|
||||
</Project>
|
||||
<Import Condition="'$(SampleProject)' != 'true' and '$(CI)' == 'true'" Project="eng\Git.Build.targets" />
|
||||
<Import Condition="'$(SampleProject)' != 'true' and '$(CI)' == 'true' " Project="eng\Version.targets" />
|
||||
<Import Project="eng\AndroidX.targets" />
|
||||
<Import Project="eng\Microsoft.Extensions.targets" />
|
||||
</Project>
|
||||
|
|
|
@ -1 +1 @@
|
|||
5.0.1
|
||||
6.0.100-preview.2
|
68
Maui.sln
68
Maui.sln
|
@ -1,68 +0,0 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.30926.220
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Platform.Handlers-net6", "src\Platform.Handlers\src\Xamarin.Platform.Handlers\Xamarin.Platform.Handlers-net6.csproj", "{95BA42B5-B00E-4986-B9B5-517140378452}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample-net6", "src\Platform.Handlers\samples\Sample\Sample-net6.csproj", "{31D405F0-723E-4A6C-A52B-F4CB19A8D845}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Files", "Files", "{449F6071-A74F-4309-8D7B-7038CFD1B17B}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
README.md = README.md
|
||||
.nuspec\Xamarin.Forms.MultiTargeting.targets = .nuspec\Xamarin.Forms.MultiTargeting.targets
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Core-net6", "src\Forms\src\Xamarin.Forms.Core\Xamarin.Forms.Core-net6.csproj", "{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample.Droid-net6", "src\Platform.Handlers\samples\Sample.Droid\Sample.Droid-net6.csproj", "{3AE5B968-1916-4213-97E4-F88F51BCAB23}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample.iOS-net6", "src\Platform.Handlers\samples\Sample.iOS\Sample.iOS-net6.csproj", "{B8D80A2B-F636-4E27-BCAA-EA601007B7F4}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Compatibility-net6", "src\Platform.Renderers\src\Maui.Controls.Compatibility\Maui.Controls.Compatibility-net6.csproj", "{00A11C2F-969F-4964-8557-91ADF4B1523D}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Platform.Android.FormsViewGroup-net6", "src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.FormsViewGroup\Xamarin.Forms.Platform.Android.FormsViewGroup-net6.csproj", "{EB956381-F3E6-437C-9069-36B8BF5C6E2F}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{95BA42B5-B00E-4986-B9B5-517140378452}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{95BA42B5-B00E-4986-B9B5-517140378452}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{95BA42B5-B00E-4986-B9B5-517140378452}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{95BA42B5-B00E-4986-B9B5-517140378452}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{31D405F0-723E-4A6C-A52B-F4CB19A8D845}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{31D405F0-723E-4A6C-A52B-F4CB19A8D845}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{31D405F0-723E-4A6C-A52B-F4CB19A8D845}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{31D405F0-723E-4A6C-A52B-F4CB19A8D845}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{3AE5B968-1916-4213-97E4-F88F51BCAB23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{3AE5B968-1916-4213-97E4-F88F51BCAB23}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{3AE5B968-1916-4213-97E4-F88F51BCAB23}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{3AE5B968-1916-4213-97E4-F88F51BCAB23}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{3AE5B968-1916-4213-97E4-F88F51BCAB23}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{B8D80A2B-F636-4E27-BCAA-EA601007B7F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B8D80A2B-F636-4E27-BCAA-EA601007B7F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B8D80A2B-F636-4E27-BCAA-EA601007B7F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B8D80A2B-F636-4E27-BCAA-EA601007B7F4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {0B8ABEAD-D2B5-4370-A187-62B5ABE4EE50}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,129 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.30926.220
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core-net6", "src\Core\src\Core-net6.csproj", "{95BA42B5-B00E-4986-B9B5-517140378452}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Files", "Files", "{449F6071-A74F-4309-8D7B-7038CFD1B17B}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
.nuspec\Microsoft.Maui.Controls.MultiTargeting.targets = .nuspec\Microsoft.Maui.Controls.MultiTargeting.targets
|
||||
README.md = README.md
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Core-net6", "src\Controls\src\Core\Controls.Core-net6.csproj", "{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility-net6", "src\Compatibility\Core\src\Compatibility-net6.csproj", "{00A11C2F-969F-4964-8557-91ADF4B1523D}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.Android.FormsViewGroup-net6", "src\Compatibility\Core\src\Android.FormsViewGroup\Compatibility.Android.FormsViewGroup-net6.csproj", "{EB956381-F3E6-437C-9069-36B8BF5C6E2F}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{459BF674-83CB-46F6-881F-A2D2117DBF4D}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{E1082E26-D700-4127-9329-66D673FD2D55}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample-net6", "src\Controls\samples\Controls.Sample\Maui.Controls.Sample-net6.csproj", "{B8DC1324-977C-46F1-B697-9064ADE6099A}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample.Droid-net6", "src\Controls\samples\Controls.Sample.Droid\Maui.Controls.Sample.Droid-net6.csproj", "{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample.iOS-net6", "src\Controls\samples\Controls.Sample.iOS\Maui.Controls.Sample.iOS-net6.csproj", "{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample.SingleProject", "src\Controls\samples\Controls.Sample.SingleProject\Maui.Controls.Sample.SingleProject.csproj", "{CB495F62-CFE6-4975-AED8-F26B6C5D0113}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compatibility", "Compatibility", "{123AA89E-1638-4E0E-B828-B8F9F9F906A2}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{09C264E9-E3F3-4586-9151-DCBB1F6DA7AB}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Build.Tasks-net6", "src\Controls\src\Build.Tasks\Controls.Build.Tasks-net6.csproj", "{75C380E0-CE53-4C01-B89F-CF685331DE18}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Essentials", "Essentials", "{94F3C036-A5F4-4ACC-A028-8506802ADB88}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials-net6", "src\Essentials\src\Essentials-net6.csproj", "{39B47A3C-21CA-4B28-9250-14FD957EB0FC}"
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SingleProject", "SingleProject", "{D5478E0A-5D9C-4C1F-980C-7A9FC71F925E}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Resizetizer", "src\SingleProject\Resizetizer\src\Resizetizer.csproj", "{9909F93F-C085-4F76-B92A-5D8C516BF47D}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Package-net6", "src\Package\Package-net6.csproj", "{5BEB3326-79B4-438C-BF65-274202F387EC}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Xaml-net6", "src\Controls\src\Xaml\Controls.Xaml-net6.csproj", "{CC3D4667-D94E-4276-9311-6439BFD075E4}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{95BA42B5-B00E-4986-B9B5-517140378452}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{95BA42B5-B00E-4986-B9B5-517140378452}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{95BA42B5-B00E-4986-B9B5-517140378452}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{95BA42B5-B00E-4986-B9B5-517140378452}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{B8DC1324-977C-46F1-B697-9064ADE6099A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B8DC1324-977C-46F1-B697-9064ADE6099A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B8DC1324-977C-46F1-B697-9064ADE6099A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B8DC1324-977C-46F1-B697-9064ADE6099A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{CB495F62-CFE6-4975-AED8-F26B6C5D0113}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CB495F62-CFE6-4975-AED8-F26B6C5D0113}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CB495F62-CFE6-4975-AED8-F26B6C5D0113}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CB495F62-CFE6-4975-AED8-F26B6C5D0113}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{75C380E0-CE53-4C01-B89F-CF685331DE18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{75C380E0-CE53-4C01-B89F-CF685331DE18}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{75C380E0-CE53-4C01-B89F-CF685331DE18}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{75C380E0-CE53-4C01-B89F-CF685331DE18}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{39B47A3C-21CA-4B28-9250-14FD957EB0FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{39B47A3C-21CA-4B28-9250-14FD957EB0FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{39B47A3C-21CA-4B28-9250-14FD957EB0FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{39B47A3C-21CA-4B28-9250-14FD957EB0FC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{9909F93F-C085-4F76-B92A-5D8C516BF47D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{9909F93F-C085-4F76-B92A-5D8C516BF47D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{9909F93F-C085-4F76-B92A-5D8C516BF47D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9909F93F-C085-4F76-B92A-5D8C516BF47D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{5BEB3326-79B4-438C-BF65-274202F387EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5BEB3326-79B4-438C-BF65-274202F387EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5BEB3326-79B4-438C-BF65-274202F387EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5BEB3326-79B4-438C-BF65-274202F387EC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{CC3D4667-D94E-4276-9311-6439BFD075E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CC3D4667-D94E-4276-9311-6439BFD075E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CC3D4667-D94E-4276-9311-6439BFD075E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CC3D4667-D94E-4276-9311-6439BFD075E4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{95BA42B5-B00E-4986-B9B5-517140378452} = {09C264E9-E3F3-4586-9151-DCBB1F6DA7AB}
|
||||
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F} = {459BF674-83CB-46F6-881F-A2D2117DBF4D}
|
||||
{00A11C2F-969F-4964-8557-91ADF4B1523D} = {123AA89E-1638-4E0E-B828-B8F9F9F906A2}
|
||||
{EB956381-F3E6-437C-9069-36B8BF5C6E2F} = {123AA89E-1638-4E0E-B828-B8F9F9F906A2}
|
||||
{E1082E26-D700-4127-9329-66D673FD2D55} = {459BF674-83CB-46F6-881F-A2D2117DBF4D}
|
||||
{B8DC1324-977C-46F1-B697-9064ADE6099A} = {E1082E26-D700-4127-9329-66D673FD2D55}
|
||||
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18} = {E1082E26-D700-4127-9329-66D673FD2D55}
|
||||
{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE} = {E1082E26-D700-4127-9329-66D673FD2D55}
|
||||
{CB495F62-CFE6-4975-AED8-F26B6C5D0113} = {E1082E26-D700-4127-9329-66D673FD2D55}
|
||||
{75C380E0-CE53-4C01-B89F-CF685331DE18} = {459BF674-83CB-46F6-881F-A2D2117DBF4D}
|
||||
{39B47A3C-21CA-4B28-9250-14FD957EB0FC} = {94F3C036-A5F4-4ACC-A028-8506802ADB88}
|
||||
{9909F93F-C085-4F76-B92A-5D8C516BF47D} = {D5478E0A-5D9C-4C1F-980C-7A9FC71F925E}
|
||||
{CC3D4667-D94E-4276-9311-6439BFD075E4} = {459BF674-83CB-46F6-881F-A2D2117DBF4D}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {0B8ABEAD-D2B5-4370-A187-62B5ABE4EE50}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<clear />
|
||||
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" protocolVersion="3" />
|
||||
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" protocolVersion="3" />
|
||||
<add key="dotnet6" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json" />
|
||||
<add key="xamarin" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json" />
|
||||
</packageSources>
|
||||
<activePackageSource>
|
||||
<add key="All" value="(Aggregate source)" />
|
||||
</activePackageSource>
|
||||
</configuration>
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
```
|
||||
dotnet tool install Cake.Tool -g
|
||||
dotnet cake --target=provision
|
||||
```
|
||||
|
||||
### Running
|
||||
|
|
|
@ -1,435 +0,0 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.30503.244
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{7E12E071-51C0-4668-9FF3-E2DE9DC51962}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Essentials", "src\Essentials\src\Xamarin.Essentials\Xamarin.Essentials.csproj", "{8CB95D25-8442-42BC-82BE-319D21138549}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Essentials.UnitTests", "src\Essentials\test\UnitTests\Xamarin.Essentials.UnitTests.csproj", "{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Essentials.DeviceTests.Android", "src\Essentials\test\DeviceTests.Android\Xamarin.Essentials.DeviceTests.Android.csproj", "{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Essentials.DeviceTests.iOS", "src\Essentials\test\DeviceTests.iOS\Xamarin.Essentials.DeviceTests.iOS.csproj", "{B73EB308-70BE-49FD-91A7-1D1495663D6D}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Essentials.DeviceTests.Shared", "src\Essentials\test\DeviceTests.Shared\Xamarin.Essentials.DeviceTests.Shared.csproj", "{81128D28-CFC8-4EA4-B68D-9939339C461A}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{5817A848-0B04-4035-9F7E-B8621B61CBDD}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.UWP", "src\Essentials\samples\Samples.UWP\Samples.UWP.csproj", "{5A1D97F2-6703-4278-BBF2-12C065F7E94A}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.Tizen", "src\Essentials\samples\Samples.Tizen\Samples.Tizen.csproj", "{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Mac", "src\Essentials\samples\Samples.Mac\Samples.Mac.csproj", "{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.iOS", "src\Essentials\samples\Samples.iOS\Samples.iOS.csproj", "{AB6242B7-634F-4839-A991-7629D0D2C636}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Android", "src\Essentials\samples\Samples.Android\Samples.Android.csproj", "{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples", "src\Essentials\samples\Samples\Samples.csproj", "{2C69EB76-02C4-4921-96A1-4D70CB7CE744}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample.Server.WebAuthenticator", "src\Essentials\samples\Sample.Server.WebAuthenticator\Sample.Server.WebAuthenticator.csproj", "{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|ARM64 = Debug|ARM64
|
||||
Debug|iPhone = Debug|iPhone
|
||||
Debug|iPhoneSimulator = Debug|iPhoneSimulator
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|ARM = Release|ARM
|
||||
Release|ARM64 = Release|ARM64
|
||||
Release|iPhone = Release|iPhone
|
||||
Release|iPhoneSimulator = Release|iPhoneSimulator
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|x64.Build.0 = Release|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|x86.Build.0 = Release|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x64.Build.0 = Release|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x86.Build.0 = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM.Deploy.0 = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM64.Deploy.0 = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhone.Deploy.0 = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x64.Deploy.0 = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x86.Deploy.0 = Debug|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM.Deploy.0 = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM64.Deploy.0 = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhone.Deploy.0 = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x64.Build.0 = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x64.Deploy.0 = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x86.Build.0 = Release|Any CPU
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x86.Deploy.0 = Release|Any CPU
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|ARM64.ActiveCfg = Debug|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhone.Build.0 = Debug|iPhone
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhone.Deploy.0 = Debug|iPhone
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x64.Build.0 = Debug|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x64.Deploy.0 = Debug|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|ARM.ActiveCfg = Release|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|ARM64.ActiveCfg = Release|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhone.ActiveCfg = Release|iPhone
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhone.Build.0 = Release|iPhone
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|x64.ActiveCfg = Release|iPhoneSimulator
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|x86.ActiveCfg = Release|iPhoneSimulator
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x64.Build.0 = Release|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x86.Build.0 = Release|Any CPU
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|Any CPU.Build.0 = Debug|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|Any CPU.Deploy.0 = Debug|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhone.ActiveCfg = Debug|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhone.Build.0 = Debug|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhone.Deploy.0 = Debug|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhoneSimulator.Build.0 = Debug|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhoneSimulator.Deploy.0 = Debug|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x64.Build.0 = Debug|x64
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x86.Build.0 = Debug|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x86.Deploy.0 = Debug|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|Any CPU.ActiveCfg = Release|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM.Build.0 = Release|ARM
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM.Deploy.0 = Release|ARM
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM64.Build.0 = Release|ARM64
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|iPhone.ActiveCfg = Release|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|iPhoneSimulator.ActiveCfg = Release|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x64.ActiveCfg = Release|x64
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x64.Build.0 = Release|x64
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x64.Deploy.0 = Release|x64
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x86.ActiveCfg = Release|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x86.Build.0 = Release|x86
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x86.Deploy.0 = Release|x86
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|x64.Build.0 = Release|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|x86.Build.0 = Release|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|x64.Build.0 = Release|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|x86.Build.0 = Release|Any CPU
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|ARM64.ActiveCfg = Debug|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhone.Build.0 = Debug|iPhone
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhone.Deploy.0 = Debug|iPhone
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x64.Build.0 = Debug|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x64.Deploy.0 = Debug|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|ARM.ActiveCfg = Release|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|ARM64.ActiveCfg = Release|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhone.ActiveCfg = Release|iPhone
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhone.Build.0 = Release|iPhone
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|x64.ActiveCfg = Release|iPhoneSimulator
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|x86.ActiveCfg = Release|iPhoneSimulator
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM.Deploy.0 = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM64.Deploy.0 = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhone.Deploy.0 = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x64.Deploy.0 = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x86.Deploy.0 = Debug|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM.Deploy.0 = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM64.Deploy.0 = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhone.Deploy.0 = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x64.Build.0 = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x64.Deploy.0 = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x86.Build.0 = Release|Any CPU
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x86.Deploy.0 = Release|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x64.Build.0 = Release|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x86.Build.0 = Release|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x64.Build.0 = Release|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{8CB95D25-8442-42BC-82BE-319D21138549} = {7E12E071-51C0-4668-9FF3-E2DE9DC51962}
|
||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886} = {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}
|
||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1} = {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}
|
||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D} = {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}
|
||||
{81128D28-CFC8-4EA4-B68D-9939339C461A} = {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}
|
||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
||||
{AB6242B7-634F-4839-A991-7629D0D2C636} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {650AE971-2F29-46A8-822C-FB4FCDC6A9A0}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
1021
Xamarin.Forms.sln
1021
Xamarin.Forms.sln
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
210
build.cake
210
build.cake
|
@ -18,9 +18,6 @@ PowerShell:
|
|||
//////////////////////////////////////////////////////////////////////
|
||||
// ADDINS
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
#addin "nuget:?package=Cake.Xamarin&version=3.0.2"
|
||||
#addin "nuget:?package=Cake.Android.Adb&version=3.2.0"
|
||||
#addin "nuget:?package=Cake.Git&version=0.21.0"
|
||||
#addin "nuget:?package=Cake.Android.SdkManager&version=3.0.2"
|
||||
#addin "nuget:?package=Cake.Boots&version=1.0.3.556"
|
||||
#addin "nuget:?package=Cake.AppleSimulator&version=0.2.0"
|
||||
|
@ -68,15 +65,19 @@ var ANDROID_CONTROLGALLERY_PROJ = $"{ANDROID_CONTROLGALLERY}Xamarin.Forms.Contro
|
|||
var ANDROID_RENDERERS = Argument("ANDROID_RENDERERS", "FAST");
|
||||
var ANDROID_TEST_PROJ = "./src/ControlGallery/test/Xamarin.Forms.Core.Android.UITests/Xamarin.Forms.Core.Android.UITests.csproj";
|
||||
|
||||
var BUILD_TASKS_PROJ ="src/Forms/src/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj";
|
||||
var BUILD_TASKS_PROJ ="src/Controls/src/Build.Tasks/Controls.Build.Tasks.csproj";
|
||||
|
||||
var XamarinFormsVersion = Argument("XamarinFormsVersion", "");
|
||||
var packageVersion = Argument("packageVersion", "");
|
||||
var packageVersion = GetBuildVariable("packageVersion", "0.1.0-p2");
|
||||
var releaseChannelArg = Argument("CHANNEL", "Stable");
|
||||
releaseChannelArg = EnvironmentVariable("CHANNEL") ?? releaseChannelArg;
|
||||
var teamProject = Argument("TeamProject", "");
|
||||
bool isHostedAgent = agentName.StartsWith("Azure Pipelines") || agentName.StartsWith("Hosted Agent");
|
||||
|
||||
var MAUI_SLN = "./Microsoft.Maui.sln";
|
||||
|
||||
var CONTROLGALLERY_SLN = "./ControlGallery.sln";
|
||||
|
||||
string defaultUnitTestWhere = "";
|
||||
|
||||
if(target.ToLower().Contains("uwp"))
|
||||
|
@ -96,7 +97,21 @@ MSBuildArguments = $"{MSBuildArgumentsENV} {MSBuildArgumentsARGS}";
|
|||
|
||||
Information("MSBuildArguments: {0}", MSBuildArguments);
|
||||
|
||||
string androidSdks = EnvironmentVariable("ANDROID_API_SDKS", "platform-tools,platforms;android-26,platforms;android-27,platforms;android-28,platforms;android-29,build-tools;29.0.3,platforms;android-30,build-tools;30.0.2");
|
||||
string androidEmulators = EnvironmentVariable("ANDROID_EMULATORS", "");
|
||||
|
||||
string androidSdks = EnvironmentVariable("ANDROID_API_SDKS",
|
||||
// build/platform tools
|
||||
"build-tools;29.0.3," +
|
||||
"build-tools;30.0.2," +
|
||||
"platform-tools," +
|
||||
// apis
|
||||
"platforms;android-26," +
|
||||
"platforms;android-27," +
|
||||
"platforms;android-28," +
|
||||
"platforms;android-29," +
|
||||
"platforms;android-30," +
|
||||
// emulators
|
||||
androidEmulators);
|
||||
|
||||
Information("ANDROID_API_SDKS: {0}", androidSdks);
|
||||
string[] androidSdkManagerInstalls = androidSdks.Split(',');
|
||||
|
@ -649,10 +664,17 @@ Task("provision")
|
|||
.IsDependentOn("provision-monosdk"); // always provision monosdk last otherwise CI might fail
|
||||
|
||||
Task("NuGetPack")
|
||||
.Description("Build and Create Nugets")
|
||||
.IsDependentOn("Restore")
|
||||
.IsDependentOn("BuildForNuget")
|
||||
.IsDependentOn("_NuGetPack");
|
||||
.Description("Build and Create Nugets").Does(()=> {
|
||||
|
||||
var settings = new DotNetCoreToolSettings
|
||||
{
|
||||
DiagnosticOutput = true,
|
||||
ArgumentCustomization = args => args.Append($"./.nuspec/package.ps1 -configuration \"{configuration}\"")
|
||||
};
|
||||
|
||||
DotNetCoreTool("pwsh", settings);
|
||||
|
||||
});;
|
||||
|
||||
Task("provision-powershell").Does(()=> {
|
||||
var settings = new DotNetCoreToolSettings
|
||||
|
@ -664,53 +686,12 @@ Task("provision-powershell").Does(()=> {
|
|||
DotNetCoreTool("tool", settings);
|
||||
});
|
||||
|
||||
Task("_NuGetPack")
|
||||
.WithCriteria(IsRunningOnWindows())
|
||||
.Description("Create Nugets without building anything")
|
||||
.Does(() =>
|
||||
{
|
||||
var nugetversion = String.Empty;
|
||||
|
||||
if(!String.IsNullOrWhiteSpace(packageVersion))
|
||||
{
|
||||
nugetversion = packageVersion;
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach(var nugetVersionFile in GetFiles("./**/.XamarinFormsVersionFile.txt"))
|
||||
{
|
||||
nugetversion = FileReadText(nugetVersionFile);
|
||||
|
||||
if(!nugetversion.StartsWith(".."))
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Information("Nuget Version: {0}", nugetversion);
|
||||
|
||||
var nugetPackageDir = Directory("./artifacts");
|
||||
var nuGetPackSettings = new NuGetPackSettings
|
||||
{
|
||||
OutputDirectory = nugetPackageDir,
|
||||
Version = nugetversion
|
||||
};
|
||||
|
||||
var nugetFilePaths =
|
||||
GetFiles("./.nuspec/Xamarin.Forms.nuspec");
|
||||
// GetFiles("./.nuspec/*.nuspec");
|
||||
|
||||
nuGetPackSettings.Properties.Add("configuration", configuration);
|
||||
nuGetPackSettings.Properties.Add("platform", "anycpu");
|
||||
// nuGetPackSettings.Verbosity = NuGetVerbosity.Detailed;
|
||||
NuGetPack(nugetFilePaths, nuGetPackSettings);
|
||||
});
|
||||
|
||||
Task("Restore")
|
||||
.Description("Restore target on Xamarin.Forms.sln")
|
||||
.Description($"Restore target on {MAUI_SLN}")
|
||||
.Does(() =>
|
||||
{
|
||||
try{
|
||||
MSBuild("./Xamarin.Forms.sln", GetMSBuildSettings().WithTarget("restore"));
|
||||
MSBuild(MAUI_SLN, GetMSBuildSettings().WithTarget("restore"));
|
||||
}
|
||||
catch{
|
||||
// ignore restore errors that come from uwp
|
||||
|
@ -745,8 +726,8 @@ Task("BuildForNuget")
|
|||
};
|
||||
|
||||
msbuildSettings.BinaryLogger = binaryLogger;
|
||||
binaryLogger.FileName = $"{artifactStagingDirectory}/Xamarin.Forms-{configuration}.binlog";
|
||||
MSBuild("./Xamarin.Forms.sln", msbuildSettings.WithRestore());
|
||||
binaryLogger.FileName = $"{artifactStagingDirectory}/Maui.Controls-{configuration}.binlog";
|
||||
MSBuild(MAUI_SLN, msbuildSettings.WithRestore());
|
||||
|
||||
// // This currently fails on CI will revisit later
|
||||
// if(isCIBuild)
|
||||
|
@ -755,7 +736,7 @@ Task("BuildForNuget")
|
|||
// MSBuild("./Xamarin.Forms.Xaml.UnitTests/Xamarin.Forms.Xaml.UnitTests.csproj", GetMSBuildSettings());
|
||||
// }
|
||||
|
||||
// MSBuild("./Xamarin.Forms.sln", GetMSBuildSettings().WithTarget("Restore"));
|
||||
// MSBuild(MAUI_SLN, GetMSBuildSettings().WithTarget("Restore"));
|
||||
// MSBuild("./Xamarin.Forms.DualScreen.sln", GetMSBuildSettings().WithTarget("Restore"));
|
||||
|
||||
// if(isCIBuild)
|
||||
|
@ -771,7 +752,7 @@ Task("BuildForNuget")
|
|||
// }
|
||||
// }
|
||||
|
||||
// MSBuild("./Xamarin.Forms.sln", GetMSBuildSettings().WithTarget("Restore"));
|
||||
// MSBuild(MAUI_SLN, GetMSBuildSettings().WithTarget("Restore"));
|
||||
// MSBuild("./Xamarin.Forms.DualScreen.sln", GetMSBuildSettings().WithTarget("Restore"));
|
||||
|
||||
// msbuildSettings.BinaryLogger = binaryLogger;
|
||||
|
@ -810,13 +791,13 @@ Task("BuildForNuget")
|
|||
|
||||
|
||||
// XAML Tests are currently having issues compiling in Release Mode
|
||||
if(configuration == "Debug")
|
||||
{
|
||||
msbuildSettings = GetMSBuildSettings();
|
||||
msbuildSettings.BinaryLogger = binaryLogger;
|
||||
binaryLogger.FileName = $"{artifactStagingDirectory}/Xamarin.Forms.ControlGallery-{configuration}.binlog";
|
||||
MSBuild("./Xamarin.Forms.ControlGallery.sln", msbuildSettings.WithRestore());
|
||||
}
|
||||
// if(configuration == "Debug")
|
||||
// {
|
||||
// msbuildSettings = GetMSBuildSettings();
|
||||
// msbuildSettings.BinaryLogger = binaryLogger;
|
||||
// binaryLogger.FileName = $"{artifactStagingDirectory}/ControlGallery-{configuration}.binlog";
|
||||
// MSBuild(CONTROLGALLERY_SLN, msbuildSettings.WithRestore());
|
||||
// }
|
||||
|
||||
if(IsRunningOnWindows())
|
||||
{
|
||||
|
@ -837,15 +818,15 @@ Task("BuildForNuget")
|
|||
// .WithProperty("UwpMinTargetFrameworks", "uap10.0.14393")
|
||||
// .WithRestore());
|
||||
|
||||
msbuildSettings = GetMSBuildSettings();
|
||||
msbuildSettings.BinaryLogger = binaryLogger;
|
||||
binaryLogger.FileName = $"{artifactStagingDirectory}/win-{configuration}-csproj.binlog";
|
||||
MSBuild("./src/Platform.Renderers/src/Xamarin.Forms.Platform.UAP/Xamarin.Forms.Platform.UAP.csproj",
|
||||
msbuildSettings
|
||||
.WithRestore()
|
||||
.WithTarget("rebuild")
|
||||
.WithProperty("DisableEmbeddedXbf", "false")
|
||||
.WithProperty("EnableTypeInfoReflection", "false"));
|
||||
// msbuildSettings = GetMSBuildSettings();
|
||||
// msbuildSettings.BinaryLogger = binaryLogger;
|
||||
// binaryLogger.FileName = $"{artifactStagingDirectory}/win-{configuration}-csproj.binlog";
|
||||
// MSBuild("./src/Compatibility/Core/src/UAP/Compatibility.UAP.csproj",
|
||||
// msbuildSettings
|
||||
// .WithRestore()
|
||||
// .WithTarget("rebuild")
|
||||
// .WithProperty("DisableEmbeddedXbf", "false")
|
||||
// .WithProperty("EnableTypeInfoReflection", "false"));
|
||||
|
||||
// msbuildSettings = GetMSBuildSettings();
|
||||
// msbuildSettings.BinaryLogger = binaryLogger;
|
||||
|
@ -883,7 +864,7 @@ Task("Build")
|
|||
.Does(() =>
|
||||
{
|
||||
try{
|
||||
MSBuild("./Xamarin.Forms.sln", GetMSBuildSettings().WithRestore());
|
||||
MSBuild(MAUI_SLN, GetMSBuildSettings().WithRestore());
|
||||
}
|
||||
catch(Exception)
|
||||
{
|
||||
|
@ -896,17 +877,65 @@ Task("Android100")
|
|||
.Description("Builds Monodroid10.0 targets")
|
||||
.Does(() =>
|
||||
{
|
||||
MSBuild("Xamarin.Forms.sln",
|
||||
MSBuild(MAUI_SLN,
|
||||
GetMSBuildSettings()
|
||||
.WithRestore()
|
||||
.WithProperty("AndroidTargetFrameworks", "MonoAndroid10.0"));
|
||||
});
|
||||
|
||||
|
||||
Task("VS-NET6")
|
||||
.IsDependentOn("Clean")
|
||||
.Does(() =>
|
||||
{
|
||||
DotNetCoreRestore("Microsoft.Maui-net6.sln");
|
||||
DotNetCoreBuild("Microsoft.Maui-net6.sln");
|
||||
StartVisualStudio("Microsoft.Maui-net6.sln");
|
||||
});
|
||||
|
||||
Task("VS")
|
||||
.Description("Builds projects necessary so solution compiles on VS")
|
||||
.IsDependentOn("Clean")
|
||||
.IsDependentOn("VSMAC")
|
||||
.IsDependentOn("VSWINDOWS");
|
||||
|
||||
|
||||
Task("VSWINDOWS")
|
||||
.Description("Builds projects necessary so solution compiles on VS Windows")
|
||||
.WithCriteria(IsRunningOnWindows())
|
||||
.Does(() =>
|
||||
{
|
||||
MSBuild("Microsoft.Maui.sln",
|
||||
GetMSBuildSettings()
|
||||
.WithRestore());
|
||||
|
||||
StartVisualStudio();
|
||||
});
|
||||
|
||||
Task("VSMAC")
|
||||
.Description("Builds projects necessary so solution compiles on VSMAC")
|
||||
.WithCriteria(!IsRunningOnWindows())
|
||||
.IsDependentOn("BuildTasks")
|
||||
.Does(() =>
|
||||
{
|
||||
|
||||
MSBuild("src/Core/src.Core.csproj",
|
||||
GetMSBuildSettings()
|
||||
.WithRestore());
|
||||
|
||||
MSBuild("src/Controls/samples/Controls.Sample.Droid/Controls.Sample.Droid.csproj",
|
||||
GetMSBuildSettings()
|
||||
.WithRestore());
|
||||
|
||||
MSBuild("src/Controls/samples/Controls.Sample.iOS/Controls.Sample.iOS.csproj",
|
||||
GetMSBuildSettings()
|
||||
.WithProperty("iOSPlatform", "iPhoneSimulator")
|
||||
.WithRestore());
|
||||
|
||||
MSBuild("src/Essentials/src/Essentials/Essentials.csproj",
|
||||
GetMSBuildSettings()
|
||||
.WithRestore());
|
||||
|
||||
StartVisualStudio();
|
||||
});
|
||||
|
||||
|
@ -1103,18 +1132,6 @@ Task ("cg-ios-deploy")
|
|||
LaunchiOSApplication(sim.UDID, IOS_BUNDLE_ID);
|
||||
});
|
||||
|
||||
Task("DeployAndroid")
|
||||
.Description("Builds and deploy Android Control Gallery")
|
||||
.Does(() =>
|
||||
{
|
||||
MSBuild(BUILD_TASKS_PROJ, GetMSBuildSettings().WithRestore());
|
||||
MSBuild(ANDROID_CONTROLGALLERY_PROJ, GetMSBuildSettings().WithRestore());
|
||||
BuildAndroidApk(ANDROID_CONTROLGALLERY_PROJ, sign:true, configuration:configuration);
|
||||
AdbUninstall(ANDROID_BUNDLE_ID);
|
||||
AdbInstall($"src/Controlgallery/src/Xamarin.Forms.ControlGallery.Android/bin/Debug/{ANDROID_BUNDLE_ID}-Signed.apk");
|
||||
AmStartActivity($"{ANDROID_BUNDLE_ID}/md546303760447087909496d02dc7b17ae8.Activity1");
|
||||
});
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// TASK TARGETS
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
@ -1169,15 +1186,23 @@ T GetBuildVariable<T>(string key, T defaultValue)
|
|||
return Argument(key, EnvironmentVariable(key, upperCaseReturnValue));
|
||||
}
|
||||
|
||||
void StartVisualStudio(string sln = "Xamarin.Forms.sln")
|
||||
void StartVisualStudio(string sln = "./Microsoft.Maui.sln")
|
||||
{
|
||||
if(isCIBuild)
|
||||
return;
|
||||
|
||||
if(IsRunningOnWindows())
|
||||
StartProcess("start", new ProcessSettings{ Arguments = "Xamarin.Forms.sln" });
|
||||
{
|
||||
StartProcess("powershell",
|
||||
new ProcessSettings
|
||||
{
|
||||
Arguments = new ProcessArgumentBuilder()
|
||||
.Append("start")
|
||||
.Append(sln)
|
||||
});
|
||||
}
|
||||
else
|
||||
StartProcess("open", new ProcessSettings{ Arguments = "Xamarin.Forms.sln" });
|
||||
StartProcess("open", new ProcessSettings{ Arguments = sln });
|
||||
}
|
||||
|
||||
MSBuildSettings GetMSBuildSettings(PlatformTarget? platformTarget = PlatformTarget.MSIL, string buildConfiguration = null)
|
||||
|
@ -1194,11 +1219,6 @@ MSBuildSettings GetMSBuildSettings(PlatformTarget? platformTarget = PlatformTarg
|
|||
buildSettings = buildSettings.WithProperty("XamarinFormsVersion", XamarinFormsVersion);
|
||||
}
|
||||
|
||||
if(isCIBuild)
|
||||
{
|
||||
buildSettings = buildSettings.WithProperty("RestoreConfigFile", $"eng/DevopsNuget.config");
|
||||
}
|
||||
|
||||
buildSettings.ArgumentCustomization = args => args.Append($"/nowarn:VSX1000 {MSBuildArguments}");
|
||||
return buildSettings;
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ Param(
|
|||
)
|
||||
|
||||
# Restore Cake tool
|
||||
& dotnet tool restore --configfile eng/DevopsNuget.config
|
||||
& dotnet tool restore
|
||||
|
||||
# Build Cake arguments
|
||||
$cakeArguments = @("$Script");
|
||||
|
|
2
build.sh
2
build.sh
|
@ -17,7 +17,7 @@ for i in "$@"; do
|
|||
done
|
||||
|
||||
# Restore Cake tool
|
||||
dotnet tool restore --configfile eng/DevopsNuget.config
|
||||
dotnet tool restore
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "An error occured while installing Cake."
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<_AndroidXVersion>net6preview01</_AndroidXVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference
|
||||
Update="Xamarin.AndroidX.AppCompat.AppCompatResources"
|
||||
Version="1.2.0.7-$(_AndroidXVersion)"
|
||||
/>
|
||||
<PackageReference
|
||||
Update="Xamarin.AndroidX.Browser"
|
||||
Version="1.3.0.5-$(_AndroidXVersion)"
|
||||
/>
|
||||
<PackageReference
|
||||
Update="Xamarin.AndroidX.Legacy.Support.V4"
|
||||
Version="1.0.0.7-$(_AndroidXVersion)"
|
||||
/>
|
||||
<PackageReference
|
||||
Update="Xamarin.AndroidX.Lifecycle.LiveData"
|
||||
Version="2.3.0.1-$(_AndroidXVersion)"
|
||||
/>
|
||||
<PackageReference
|
||||
Update="Xamarin.AndroidX.MediaRouter"
|
||||
Version="1.2.2.1-$(_AndroidXVersion)"
|
||||
/>
|
||||
<PackageReference
|
||||
Update="Xamarin.AndroidX.Palette"
|
||||
Version="1.0.0.7-$(_AndroidXVersion)"
|
||||
/>
|
||||
<PackageReference
|
||||
Update="Xamarin.AndroidX.RecyclerView"
|
||||
Version="1.1.0.8-net6preview01"
|
||||
/>
|
||||
<PackageReference
|
||||
Update="Xamarin.Build.Download"
|
||||
Version="0.10.0"
|
||||
/>
|
||||
<PackageReference
|
||||
Update="Xamarin.Google.Android.Material"
|
||||
Version="1.3.0.1-$(_AndroidXVersion)"
|
||||
/>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,13 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<clear/>
|
||||
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" protocolVersion="3" />
|
||||
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" protocolVersion="3" />
|
||||
<add key="dotnet6" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json" />
|
||||
<add key="xamarin" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json" />
|
||||
</packageSources>
|
||||
<activePackageSource>
|
||||
<add key="All" value="(Aggregate source)" />
|
||||
</activePackageSource>
|
||||
</configuration>
|
|
@ -0,0 +1,32 @@
|
|||
<Project>
|
||||
<PropertyGroup Condition="'$(TargetFramework.Contains(net6.0))' == 'true'">
|
||||
<_MicrosoftHostingVersion>6.0.0-preview.2.21110.7</_MicrosoftHostingVersion>
|
||||
<_MicrosoftDependencyInjectionVersion>$(_MicrosoftHostingVersion)</_MicrosoftDependencyInjectionVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(TargetFramework.Contains(net6.0))' != 'true'">
|
||||
<_MicrosoftHostingVersion>5.0.0</_MicrosoftHostingVersion>
|
||||
<_MicrosoftDependencyInjectionVersion>5.0.1</_MicrosoftDependencyInjectionVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference
|
||||
Update="Microsoft.Extensions.Configuration"
|
||||
Version="$(_MicrosoftHostingVersion)"
|
||||
/>
|
||||
<PackageReference
|
||||
Update="Microsoft.Extensions.DependencyInjection"
|
||||
Version="$(_MicrosoftDependencyInjectionVersion)"
|
||||
/>
|
||||
<PackageReference
|
||||
Update="Microsoft.Extensions.Hosting.Abstractions"
|
||||
Version="$(_MicrosoftHostingVersion)"
|
||||
/>
|
||||
<PackageReference
|
||||
Update="Microsoft.Extensions.Logging.Abstractions"
|
||||
Version="$(_MicrosoftHostingVersion)"
|
||||
/>
|
||||
<PackageReference
|
||||
Update="Microsoft.Extensions.Logging"
|
||||
Version="$(_MicrosoftHostingVersion)"
|
||||
/>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<Import Project="$(XamarinFormsSource).nuspec\Xamarin.Forms.targets" Condition="'$(BuildingInsideVisualStudio)' == 'true' AND Exists('$(__XFBuildTasksLocation)Xamarin.Forms.Build.Tasks.dll')" />
|
||||
<Import Project="$(XamarinFormsSource).nuspec\Xamarin.Forms.targets" Condition="'$(BuildingInsideVisualStudio)' == 'true' AND Exists('$(_MauiBuildTasksLocation)Xamarin.Forms.Build.Tasks.dll')" />
|
||||
<Import Project="$(XamarinFormsSource).nuspec\Xamarin.Forms.targets" Condition="'$(BuildingInsideVisualStudio)' != 'true'" />
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project>
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<NightlyTag>nightly</NightlyTag>
|
||||
<RegexPre>pre\d</RegexPre>
|
||||
|
@ -8,11 +8,34 @@
|
|||
<GitBranch Condition="'$(SYSTEM_PULLREQUEST_TARGETBRANCH)' == '' and '$(BUILD_SOURCEBRANCHNAME)' != ''">$(BUILD_SOURCEBRANCHNAME)</GitBranch>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="SetVersions"
|
||||
BeforeTargets="PrepareForBuild;GetAssemblyVersion;GetPackageVersion;Pack"
|
||||
DependsOnTargets="GitVersion"
|
||||
Returns="$(Version)"
|
||||
>
|
||||
<PropertyGroup>
|
||||
<CoreCompileDependsOn>
|
||||
SetVersions;
|
||||
VersionInfoReport;
|
||||
$(CoreCompileDependsOn);
|
||||
</CoreCompileDependsOn>
|
||||
<GenerateNuspecDependsOn>
|
||||
SetVersions;
|
||||
VersionInfoReport;
|
||||
$(GenerateNuspecDependsOn);
|
||||
</GenerateNuspecDependsOn>
|
||||
<GetPackageVersionDependsOn>
|
||||
SetVersions;
|
||||
VersionInfoReport;
|
||||
$(GetPackageVersionDependsOn);
|
||||
</GetPackageVersionDependsOn>
|
||||
<SetVersionsBefore>
|
||||
GetAssemblyVersion;
|
||||
$(SetVersionsBefore);
|
||||
</SetVersionsBefore>
|
||||
<SetVersionsDependsOn>
|
||||
GitInfo;
|
||||
GitVersion;
|
||||
$(SetVersionsDependsOn);
|
||||
</SetVersionsDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="SetVersions" BeforeTargets="$(SetVersionsBefore)" DependsOnTargets="$(SetVersionsDependsOn)" Returns="$(Version)">
|
||||
<PropertyGroup>
|
||||
<PreOut>$([System.Text.RegularExpressions.Regex]::Match($(GitTag), $(RegexPre)))</PreOut>
|
||||
<GitSemVerLabel Condition=" '$(GitTag)' != '' and '$(GitTag)' == '$(GitBranch)' and $([System.Text.RegularExpressions.Regex]::IsMatch('$(GitTag)', $(RegexPre))) ">$(PreOut)</GitSemVerLabel>
|
||||
|
@ -37,22 +60,19 @@
|
|||
<Version>$(GitBaseVersionMajor).$(GitBaseVersionMinor).$(GitBaseVersionPatch)</Version>
|
||||
<PackageVersion>$(GitSemVerMajor).$(GitSemVerMinor).$(GitSemVerPatch)$(GitSemVerDashLabel)$(VersionMetadataPlusLabel)</PackageVersion>
|
||||
|
||||
<PackageVersion Condition="$(CI)">$(GitSemVerMajor).$(GitSemVerMinor).$(GitBaseVersionPatch).$(BUILDVERSION)$(GitSemVerDashLabel)$(VersionMetadataPlusLabel)</PackageVersion>
|
||||
<PackageVersion Condition="$(CI) and '$(GitBaseVersion)' == '4.2.0'">$(GitSemVerMajor).$(GitSemVerMinor).$(GitBaseVersionPatch).$(BUILDVERSION42)$(GitSemVerDashLabel)$(VersionMetadataPlusLabel)</PackageVersion>
|
||||
<PackageVersion Condition="$(CI) and '$(GitBaseVersion)' == '4.3.0'">$(GitSemVerMajor).$(GitSemVerMinor).$(GitBaseVersionPatch).$(BUILDVERSION43)$(GitSemVerDashLabel)$(VersionMetadataPlusLabel)</PackageVersion>
|
||||
<PackageVersion Condition="$(CI) and '$(GitBaseVersion)' == '4.4.0'">$(GitSemVerMajor).$(GitSemVerMinor).$(GitBaseVersionPatch).$(BUILDVERSION44)$(GitSemVerDashLabel)$(VersionMetadataPlusLabel)</PackageVersion>
|
||||
<PackageVersion Condition="$(CI)">$(GitSemVerMajor).$(GitSemVerMinor).$(GitBaseVersionPatch)$(GitSemVerDashLabel).$(BUILDVERSION)$(VersionMetadataPlusLabel)</PackageVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<InformationalVersion>$(PackageVersion)</InformationalVersion>
|
||||
<FileVersion>$(Version).$(GitCommits)</FileVersion>
|
||||
<AssemblyVersion>2.0.0.0</AssemblyVersion> <!-- THIS SHALL REMAIN 2.0.0.0 -->
|
||||
<AssemblyVersion>1.0.0.0</AssemblyVersion> <!-- THIS SHALL REMAIN 1.0.0.0 -->
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<AssemblyAttribute Include="System.Reflection.AssemblyMetadata">
|
||||
<_Parameter1>Version</_Parameter1>
|
||||
<_Parameter2>2.0.0.0</_Parameter2> <!-- THIS SHALL REMAIN 2.0.0.0 -->
|
||||
<_Parameter2>1.0.0.0</_Parameter2> <!-- THIS SHALL REMAIN 1.0.0.0 -->
|
||||
</AssemblyAttribute>
|
||||
<AssemblyAttribute Include="System.Reflection.AssemblyMetadata">
|
||||
<_Parameter1>PackageVersion</_Parameter1>
|
||||
|
@ -61,20 +81,12 @@
|
|||
</ItemGroup>
|
||||
|
||||
<Message Condition="$(CI) and '$(BUILD_REASON)' == 'Schedule'" Importance="high" Text="##vso[build.addbuildtag]$(NightlyTag)"/>
|
||||
<ItemGroup>
|
||||
<XamarinFormsVersionFile Include="../.XamarinFormsVersionFile.txt"/>
|
||||
<XamarinFormsVersionLine Include="$(PackageVersion)"/>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Occasionally this throws an error from parallel builds writing to this file. It's fine if only one of them wins. -->
|
||||
<WriteLinesToFile ContinueOnError="WarnAndContinue" File="@(XamarinFormsVersionFile)" Lines="@(XamarinFormsVersionLine)" Overwrite="true" />
|
||||
<Message Condition="$(CI)" Importance="high" Text="##vso[build.updatebuildnumber]$(PackageVersion)"/>
|
||||
<Message Condition="$(CI)" Importance="high" Text="##vso[task.setvariable variable=XamarinFormsPackageVersion;isOutput=true;]$(PackageVersion)"/>
|
||||
</Target>
|
||||
|
||||
<Target Name="VersionInfoReport" DependsOnTargets="SetVersions" AfterTargets="GitInfoReport">
|
||||
<Target Name="VersionInfoReport" DependsOnTargets="SetVersions">
|
||||
<ItemGroup>
|
||||
<Message Importance="$(GitInfoReportImportance)" Text="Version Info:
|
||||
<Message Importance="$(GitInfoReportImportance)" Text="Version Info:
|
||||
AssemblyVersion: $(AssemblyVersion)
|
||||
FileVersion: $(FileVersion)
|
||||
InformationalVersion: $(InformationalVersion)
|
||||
|
@ -84,6 +96,6 @@
|
|||
VersionSuffix: $(VersionSuffix)
|
||||
"/>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
</Target>
|
||||
|
||||
</Project>
|
|
@ -20,6 +20,7 @@ string CONFIGURATION = "Debug"; // needs to be debug so unit tests get discovere
|
|||
string ANDROID_AVD = "DEVICE_TESTS_EMULATOR";
|
||||
string DEVICE_ID = "";
|
||||
string DEVICE_ARCH = "";
|
||||
bool DEVICE_BOOT = Argument("boot", true);
|
||||
|
||||
// set up env
|
||||
var ANDROID_SDK_ROOT = Argument("android", EnvironmentVariable("ANDROID_SDK_ROOT") ?? EnvironmentVariable("ANDROID_SDK_ROOT"));
|
||||
|
@ -78,10 +79,10 @@ Setup(context =>
|
|||
else
|
||||
DEVICE_ARCH = "arm64-v8a";
|
||||
}
|
||||
DEVICE_ID = $"system-images;android-{api};google_apis_playstore;{DEVICE_ARCH}";
|
||||
DEVICE_ID = $"system-images;android-{api};google_apis;{DEVICE_ARCH}";
|
||||
|
||||
// we are not using a virtual device, so quit
|
||||
if (!emulator)
|
||||
if (!emulator || !DEVICE_BOOT)
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -115,7 +116,7 @@ Setup(context =>
|
|||
Teardown(context =>
|
||||
{
|
||||
// no virtual device was used
|
||||
if (emulatorProcess == null)
|
||||
if (emulatorProcess == null || !DEVICE_BOOT)
|
||||
return;
|
||||
|
||||
// stop and cleanup the emulator
|
||||
|
@ -141,7 +142,7 @@ Task("Build")
|
|||
c.Restore = true;
|
||||
c.Properties["ContinuousIntegrationBuild"] = new List<string> { "false" };
|
||||
c.Targets.Clear();
|
||||
c.Targets.Add("Rebuild");
|
||||
c.Targets.Add("Build");
|
||||
c.Targets.Add("SignAndroidPackage");
|
||||
c.BinaryLogger = new MSBuildBinaryLogSettings {
|
||||
Enabled = true,
|
||||
|
|
|
@ -31,7 +31,7 @@ Task("Build")
|
|||
c.Properties["BuildIpa"] = new List<string> { "true" };
|
||||
c.Properties["ContinuousIntegrationBuild"] = new List<string> { "false" };
|
||||
c.Targets.Clear();
|
||||
c.Targets.Add("Rebuild");
|
||||
c.Targets.Add("Build");
|
||||
c.BinaryLogger = new MSBuildBinaryLogSettings {
|
||||
Enabled = true,
|
||||
FileName = BINLOG,
|
||||
|
|
|
@ -33,7 +33,6 @@ steps:
|
|||
inputs:
|
||||
restoreSolution: ${{ parameters.slnPath }}
|
||||
feedsToUse: config
|
||||
nugetConfigPath: 'eng/DevopsNuget.config'
|
||||
|
||||
- script: build.cmd -Target BuildForNuget -ScriptArgs '--BUILD_CONFIGURATION="$(BuildConfiguration)"','--Build_ArtifactStagingDirectory="$(Build.ArtifactStagingDirectory)"'
|
||||
name: winbuild
|
||||
|
@ -41,9 +40,10 @@ steps:
|
|||
|
||||
- task: VSTest@2
|
||||
displayName: 'XAML Unit Tests'
|
||||
continueOnError: true
|
||||
inputs:
|
||||
testAssemblyVer2: |
|
||||
**/bin/$(BuildConfiguration)/**/Xamarin.Forms.Xaml.UnitTests.dll
|
||||
**/bin/$(BuildConfiguration)/**/Microsoft.Maui.Controls.Xaml.UnitTests.dll
|
||||
searchFolder: ${{ parameters.nunitTestFolder }}
|
||||
codeCoverageEnabled: true
|
||||
testRunTitle: '$(BuildConfiguration)_UnitTests'
|
||||
|
@ -56,9 +56,11 @@ steps:
|
|||
displayName: 'Unit Tests'
|
||||
inputs:
|
||||
command: test
|
||||
projects: |
|
||||
**/Xamarin.Forms.Core.UnitTests.csproj
|
||||
**/Xamarin.Platform.Handlers.UnitTests.csproj
|
||||
projects: |
|
||||
**/Controls.Core.UnitTests.csproj
|
||||
**/Core.UnitTests.csproj
|
||||
**/Essentials.UnitTests.csproj
|
||||
**/Resizetizer.UnitTests.csproj
|
||||
arguments: '--configuration $(BuildConfiguration)'
|
||||
|
||||
- task: CopyFiles@2
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
parameters:
|
||||
platform: '' # [ android, ios ]
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
|
||||
- ${{ if eq(parameters['platform'], 'ios') }}:
|
||||
- task: xamops.azdevex.provisionator-task.provisionator@1
|
||||
displayName: 'Provision Xcode'
|
||||
condition: ne(variables['REQUIRED_XCODE'], '')
|
||||
inputs:
|
||||
provisioning_script: $(provisionator.xcode)
|
||||
|
||||
- script: |
|
||||
echo "##vso[task.prependpath]/Library/Frameworks/Mono.framework/Versions/Current/Commands/"
|
||||
echo "##vso[task.prependpath]~/Library/Developer/Xamarin/android-sdk-macosx"
|
||||
displayName: 'Setup SDK Paths'
|
||||
condition: ne(variables['osx2019VmPool'], 'Azure Pipelines')
|
||||
|
||||
- task: InstallAppleCertificate@2
|
||||
displayName: 'Install an Apple certificate'
|
||||
inputs:
|
||||
certSecureFile: 'Xamarin Forms iOS Certificate.p12'
|
||||
certPwd: $(P12password)
|
||||
|
||||
- task: InstallAppleProvisioningProfile@1
|
||||
displayName: 'Install an Apple provisioning profile'
|
||||
inputs:
|
||||
provProfileSecureFile: 'Xamarin Forms iOS Provisioning.mobileprovision'
|
||||
|
||||
- task: xamops.azdevex.provisionator-task.provisionator@1
|
||||
displayName: 'Provisionator'
|
||||
condition: eq(variables['provisioning'], 'true')
|
||||
inputs:
|
||||
provisioning_script: $(provisionator.path)
|
||||
provisioning_extra_args: $(provisionator.extraArguments)
|
||||
|
||||
- pwsh: |
|
||||
./build.ps1 --target provision --TeamProject="$(System.TeamProject)"
|
||||
displayName: 'Cake Provision'
|
||||
condition: eq(variables['provisioningCake'], 'true')
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: 'Install .net core $(DOTNET_VERSION)'
|
||||
condition: ne(variables['DOTNET_VERSION'], '')
|
||||
inputs:
|
||||
version: $(DOTNET_VERSION)
|
||||
packageType: 'sdk'
|
||||
|
||||
- ${{ if eq(parameters['platform'], 'android') }}:
|
||||
- pwsh: |
|
||||
./build.ps1 -Script eng/devices/android.cake --project="$(devicetests.project)" --device=$(devicetests.device) --results="$(System.DefaultWorkingDirectory)/output/testlogs"
|
||||
displayName: $(Agent.JobName)
|
||||
|
||||
- ${{ if eq(parameters['platform'], 'ios') }}:
|
||||
- pwsh: |
|
||||
./build.ps1 -Script eng/devices/ios.cake --project="$(devicetests.project)" --device=$(devicetests.device) --results="$(System.DefaultWorkingDirectory)/output/testlogs"
|
||||
displayName: $(Agent.JobName)
|
||||
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish the $(System.StageName)_$(System.PhaseName)_$(System.JobName) test results
|
||||
condition: always()
|
||||
inputs:
|
||||
testResultsFormat: xUnit
|
||||
testResultsFiles: 'output/testlogs/**/TestResults.xml'
|
||||
testRunTitle: '$(System.StageName)_$(System.PhaseName)_$(System.JobName)'
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Publish the test logs
|
||||
condition: always()
|
||||
inputs:
|
||||
artifactName: $(System.StageName)_$(System.PhaseName)_$(System.JobName)
|
||||
pathToPublish: 'output/testlogs'
|
|
@ -0,0 +1,137 @@
|
|||
trigger:
|
||||
- none
|
||||
|
||||
pr:
|
||||
- none
|
||||
|
||||
variables:
|
||||
- template: /eng/pipelines/common/variables.yml
|
||||
- name: provisionator.xcode
|
||||
value: '$(System.DefaultWorkingDirectory)/eng/provisioning/xcode.csx'
|
||||
- name: provisionator.path
|
||||
value: '$(System.DefaultWorkingDirectory)/eng/provisioning/provisioning.csx'
|
||||
- name: provisionator.extraArguments
|
||||
value: '--v'
|
||||
|
||||
resources:
|
||||
repositories:
|
||||
- repository: xamarin-templates
|
||||
type: github
|
||||
name: xamarin/yaml-templates
|
||||
endpoint: xamarin
|
||||
ref: refs/heads/main # still defaults to master even though main is the main branch
|
||||
pipelines:
|
||||
- pipeline: handlersci
|
||||
source: xamarin-handlers-ci
|
||||
trigger:
|
||||
branches:
|
||||
- main
|
||||
- main-handler
|
||||
|
||||
stages:
|
||||
|
||||
- stage: android_essentials
|
||||
displayName: Essentials (Android)
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- job: device_tests
|
||||
workspace:
|
||||
clean: all
|
||||
displayName: Device Tests
|
||||
pool:
|
||||
name: $(macOSXVmPool)
|
||||
vmImage: $(macOSXVmImage)
|
||||
variables:
|
||||
devicetests.project: '$(System.DefaultWorkingDirectory)/src/Essentials/test/DeviceTests.Android/Essentials.DeviceTests.Android.csproj'
|
||||
strategy:
|
||||
matrix:
|
||||
api_30:
|
||||
ANDROID_EMULATORS: "system-images;android-30;google_apis;x86"
|
||||
devicetests.device: android-emulator-32_30
|
||||
api_29:
|
||||
ANDROID_EMULATORS: "system-images;android-29;google_apis;x86"
|
||||
devicetests.device: android-emulator-32_29
|
||||
api_21:
|
||||
ANDROID_EMULATORS: "system-images;android-21;google_apis;x86"
|
||||
devicetests.device: android-emulator-32_21
|
||||
steps:
|
||||
- template: common/device-tests.yml
|
||||
parameters:
|
||||
platform: android
|
||||
|
||||
- stage: android_handlers
|
||||
displayName: Handlers (Android)
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- job: device_tests
|
||||
workspace:
|
||||
clean: all
|
||||
displayName: Device Tests
|
||||
pool:
|
||||
name: $(macOSXVmPool)
|
||||
vmImage: $(macOSXVmImage)
|
||||
variables:
|
||||
devicetests.project: '$(System.DefaultWorkingDirectory)/src/Core/tests/DeviceTests.Android/Core.DeviceTests.Android.csproj'
|
||||
strategy:
|
||||
matrix:
|
||||
api_30:
|
||||
ANDROID_EMULATORS: "system-images;android-30;google_apis;x86"
|
||||
devicetests.device: android-emulator-32_30
|
||||
api_29:
|
||||
ANDROID_EMULATORS: "system-images;android-29;google_apis;x86"
|
||||
devicetests.device: android-emulator-32_29
|
||||
api_21:
|
||||
ANDROID_EMULATORS: "system-images;android-21;google_apis;x86"
|
||||
devicetests.device: android-emulator-32_21
|
||||
steps:
|
||||
- template: common/device-tests.yml
|
||||
parameters:
|
||||
platform: android
|
||||
|
||||
- stage: ios_essentials
|
||||
displayName: Essentials (iOS)
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- job: device_tests
|
||||
workspace:
|
||||
clean: all
|
||||
displayName: Device Tests
|
||||
pool:
|
||||
name: $(macOSXVmPool)
|
||||
vmImage: $(macOSXVmImage)
|
||||
variables:
|
||||
devicetests.project: '$(System.DefaultWorkingDirectory)/src/Essentials/test/DeviceTests.iOS/Essentials.DeviceTests.iOS.csproj'
|
||||
strategy:
|
||||
matrix:
|
||||
v14_3:
|
||||
devicetests.device: ios-simulator-64_14.3
|
||||
# v10_3_1:
|
||||
# devicetests.device: ios-simulator-64_10.3.1
|
||||
steps:
|
||||
- template: common/device-tests.yml
|
||||
parameters:
|
||||
platform: ios
|
||||
|
||||
- stage: ios_handlers
|
||||
displayName: Handlers (iOS)
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- job: device_tests
|
||||
workspace:
|
||||
clean: all
|
||||
displayName: Device Tests
|
||||
pool:
|
||||
name: $(macOSXVmPool)
|
||||
vmImage: $(macOSXVmImage)
|
||||
variables:
|
||||
devicetests.project: '$(System.DefaultWorkingDirectory)/src/Core/tests/DeviceTests.iOS/Core.DeviceTests.iOS.csproj'
|
||||
strategy:
|
||||
matrix:
|
||||
v14_3:
|
||||
devicetests.device: ios-simulator-64_14.3
|
||||
# v10_3_1:
|
||||
# devicetests.device: ios-simulator-64_10.3.1
|
||||
steps:
|
||||
- template: common/device-tests.yml
|
||||
parameters:
|
||||
platform: ios
|
|
@ -2,7 +2,7 @@ trigger:
|
|||
branches:
|
||||
include:
|
||||
- main
|
||||
- main-handlers
|
||||
- main-handler
|
||||
paths:
|
||||
include:
|
||||
- '*'
|
||||
|
@ -21,7 +21,7 @@ pr:
|
|||
branches:
|
||||
include:
|
||||
- main
|
||||
- main-handlers
|
||||
- main-handler
|
||||
paths:
|
||||
include:
|
||||
- '*'
|
||||
|
@ -45,6 +45,20 @@ schedules:
|
|||
|
||||
variables:
|
||||
- template: /eng/pipelines/common/variables.yml
|
||||
- name: DotNetVersion
|
||||
value: 6.0.100-preview.1.21103.13
|
||||
- name: DotNet.Cli.Telemetry.OptOut
|
||||
value: true
|
||||
- name: Android.Msi
|
||||
value: https://dl.internalx.com/vsts-devdiv/Xamarin.Android/public/net6/4498522/master/2f83bddb99f6a0948631cd0f09bf037ba8a4e359/Microsoft.NET.Workload.Android.11.0.200.118.msi
|
||||
- name: iOS.Msi
|
||||
value: https://bosstoragemirror.azureedge.net/wrench/main/f01fde5cd9a7ffffcdc8d241200c35988700fa00/4449408/package/Microsoft.NET.Workload.iOS.14.3.100-ci.main.1079.msi
|
||||
- name: Android.Pkg
|
||||
value: https://dl.internalx.com/vsts-devdiv/Xamarin.Android/public/net6/4498522/master/2f83bddb99f6a0948631cd0f09bf037ba8a4e359/Microsoft.NET.Workload.Android-11.0.200-ci.master.118.pkg
|
||||
- name: iOS.Pkg
|
||||
value: https://bosstoragemirror.azureedge.net/wrench/main/f01fde5cd9a7ffffcdc8d241200c35988700fa00/4449408/package/notarized/Microsoft.iOS.Bundle.14.3.100-ci.main.1079.pkg
|
||||
- name: LogDirectory
|
||||
value: $(Build.ArtifactStagingDirectory)\logs
|
||||
|
||||
resources:
|
||||
repositories:
|
||||
|
@ -79,49 +93,87 @@ stages:
|
|||
parameters:
|
||||
provisionatorPath : '/build/provisioning/provisioning.csx'
|
||||
|
||||
- stage: build_osx
|
||||
displayName: iOS
|
||||
# - stage: build_osx
|
||||
# displayName: iOS
|
||||
# dependsOn: []
|
||||
# jobs:
|
||||
# - job: ios
|
||||
# workspace:
|
||||
# clean: all
|
||||
# displayName: Build ControlGallery iOS
|
||||
# timeoutInMinutes: 120
|
||||
# pool:
|
||||
# name: $(macOSXVmPool)
|
||||
# vmImage: $(macOSXVmImage)
|
||||
# demands:
|
||||
# - sh
|
||||
# - Xamarin.iOS
|
||||
# variables:
|
||||
# provisionator.xcode : '$(System.DefaultWorkingDirectory)/eng/provisioning/xcode.csx'
|
||||
# provisionator.path : '$(System.DefaultWorkingDirectory)/eng/provisioning/provisioning.csx'
|
||||
# provisionator.extraArguments : '--v'
|
||||
# steps:
|
||||
# - template: common/controlgallery-ios.yml
|
||||
|
||||
# - stage: build_android
|
||||
# displayName: Android
|
||||
# dependsOn: []
|
||||
# jobs:
|
||||
# - job: android
|
||||
# workspace:
|
||||
# clean: all
|
||||
# displayName: Build ControlGallery Android
|
||||
# timeoutInMinutes: 120
|
||||
# pool:
|
||||
# name: $(macOSXVmPool)
|
||||
# vmImage: $(macOSXVmImage)
|
||||
# variables:
|
||||
# renderers: 'FAST'
|
||||
# outputfolder: 'newRenderers'
|
||||
# provisionator.xcode : '$(System.DefaultWorkingDirectory)/eng/provisioning/xcode.csx'
|
||||
# provisionator.path : '$(System.DefaultWorkingDirectory)/eng/provisioning/provisioning.csx'
|
||||
# provisionator.extraArguments : '--v'
|
||||
# steps:
|
||||
# - template: common/controlgallery-android.yml
|
||||
|
||||
- stage: pack_net6_windows
|
||||
displayName: Pack .NET 6 Windows
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- job: ios
|
||||
- job: net6_pack
|
||||
workspace:
|
||||
clean: all
|
||||
displayName: Build ControlGallery iOS
|
||||
displayName: Pack .NET 6
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
name: $(macOSXVmPool)
|
||||
vmImage: $(macOSXVmImage)
|
||||
demands:
|
||||
- sh
|
||||
- Xamarin.iOS
|
||||
variables:
|
||||
provisionator.xcode : '$(System.DefaultWorkingDirectory)/eng/provisioning/xcode.csx'
|
||||
provisionator.path : '$(System.DefaultWorkingDirectory)/eng/provisioning/provisioning.csx'
|
||||
provisionator.extraArguments : '--v'
|
||||
vmImage: windows-latest
|
||||
steps:
|
||||
- template: common/controlgallery-ios.yml
|
||||
|
||||
- stage: build_android
|
||||
displayName: Android
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- job: android
|
||||
workspace:
|
||||
clean: all
|
||||
displayName: Build ControlGallery Android
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
name: $(macOSXVmPool)
|
||||
vmImage: $(macOSXVmImage)
|
||||
variables:
|
||||
renderers: 'FAST'
|
||||
outputfolder: 'newRenderers'
|
||||
provisionator.xcode : '$(System.DefaultWorkingDirectory)/eng/provisioning/xcode.csx'
|
||||
provisionator.path : '$(System.DefaultWorkingDirectory)/eng/provisioning/provisioning.csx'
|
||||
provisionator.extraArguments : '--v'
|
||||
steps:
|
||||
- template: common/controlgallery-android.yml
|
||||
|
||||
- pwsh: |
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
Invoke-WebRequest -Uri "https://dot.net/v1/dotnet-install.ps1" -OutFile dotnet-install.ps1
|
||||
& .\dotnet-install.ps1 -Version $(DotNetVersion) -InstallDir "$env:ProgramFiles\dotnet\" -Verbose
|
||||
& dotnet --list-sdks
|
||||
displayName: install .NET $(DotNetVersion)
|
||||
errorActionPreference: stop
|
||||
|
||||
- pwsh: |
|
||||
& dotnet tool install --global boots
|
||||
& boots $(Android.Msi)
|
||||
& boots $(iOS.Msi)
|
||||
displayName: install .NET workloads
|
||||
errorActionPreference: stop
|
||||
|
||||
- pwsh: ./.nuspec/package.ps1 -configuration Release
|
||||
displayName: pack nugets
|
||||
errorActionPreference: stop
|
||||
|
||||
- task: PublishPipelineArtifact@1
|
||||
displayName: publish artifacts
|
||||
inputs:
|
||||
artifactName: nuget
|
||||
targetPath: artifacts
|
||||
condition: always()
|
||||
|
||||
- stage: build_net6_windows
|
||||
displayName: NET6 Windows
|
||||
dependsOn: []
|
||||
|
@ -133,12 +185,12 @@ stages:
|
|||
timeoutInMinutes: 120
|
||||
pool:
|
||||
vmImage: windows-latest
|
||||
variables:
|
||||
DotNetVersion: 6.0.100-preview.1.21081.5
|
||||
DotNet.Cli.Telemetry.OptOut: true
|
||||
Android.Msi: https://dl.internalx.com/vsts-devdiv/Xamarin.Android/public/net6/4435786/master/abea285994fb4366de7c6c5e1ae9cc9ee22145dd/Microsoft.NET.Workload.Android.11.0.200.72.msi
|
||||
iOS.Msi: https://bosstoragemirror.azureedge.net/wrench/main/f01fde5cd9a7ffffcdc8d241200c35988700fa00/4449408/package/Microsoft.NET.Workload.iOS.14.3.100-ci.main.1079.msi
|
||||
LogDirectory: $(Build.ArtifactStagingDirectory)\logs
|
||||
strategy:
|
||||
matrix:
|
||||
debug:
|
||||
BuildConfiguration: 'Debug'
|
||||
release:
|
||||
BuildConfiguration: 'Release'
|
||||
steps:
|
||||
- powershell: |
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
|
@ -156,19 +208,18 @@ stages:
|
|||
errorActionPreference: stop
|
||||
|
||||
- powershell: |
|
||||
& dotnet restore Maui.sln --configfile eng\DevopsNuget.config
|
||||
& dotnet build Maui.sln -c Debug -bl:$(LogDirectory)\Debug.binlog
|
||||
& dotnet build Maui.sln -c Release -bl:$(LogDirectory)\Release.binlog
|
||||
& dotnet restore Microsoft.Maui-net6.sln
|
||||
& dotnet build Microsoft.Maui-net6.sln -c $(BuildConfiguration) -bl:$(LogDirectory)\$(BuildConfiguration).binlog
|
||||
displayName: build samples
|
||||
errorActionPreference: stop
|
||||
|
||||
- task: PublishPipelineArtifact@1
|
||||
displayName: publish artifacts
|
||||
inputs:
|
||||
artifactName: NET6-WINDOWS
|
||||
artifactName: NET6-WINDOWS-$(BuildConfiguration)
|
||||
targetPath: $(Build.ArtifactStagingDirectory)
|
||||
condition: always()
|
||||
|
||||
|
||||
- stage: build_net6_macOS
|
||||
displayName: NET6 macOS
|
||||
dependsOn: []
|
||||
|
@ -181,14 +232,14 @@ stages:
|
|||
pool:
|
||||
vmImage: macOS-latest
|
||||
variables:
|
||||
DotNetVersion: 6.0.100-preview.1.21081.5
|
||||
DotNet.Cli.Telemetry.OptOut: true
|
||||
Android.Pkg: https://dl.internalx.com/vsts-devdiv/Xamarin.Android/public/net6/4435786/master/abea285994fb4366de7c6c5e1ae9cc9ee22145dd/Microsoft.NET.Workload.Android-11.0.200-ci.master.72.pkg
|
||||
iOS.Pkg: https://bosstoragemirror.azureedge.net/wrench/main/f01fde5cd9a7ffffcdc8d241200c35988700fa00/4449408/package/notarized/Microsoft.iOS.Bundle.14.3.100-ci.main.1079.pkg
|
||||
LogDirectory: $(Build.ArtifactStagingDirectory)\logs
|
||||
DotNet.Root: /usr/local/share/dotnet/
|
||||
DotNet.Tools: ~/.dotnet/tools
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
debug:
|
||||
BuildConfiguration: 'Debug'
|
||||
release:
|
||||
BuildConfiguration: 'Release'
|
||||
steps:
|
||||
- task: UseDotNet@2
|
||||
displayName: install .NET Core 3.1
|
||||
|
@ -219,14 +270,13 @@ stages:
|
|||
displayName: configure vsmac xcode
|
||||
|
||||
- bash: |
|
||||
dotnet restore Maui.sln --configfile eng/DevopsNuget.config &&
|
||||
dotnet build Maui.sln -c Debug -bl:$(LogDirectory)/Debug.binlog &&
|
||||
dotnet build Maui.sln -c Release -bl:$(LogDirectory)/Release.binlog
|
||||
dotnet restore Microsoft.Maui-net6.sln &&
|
||||
dotnet build Microsoft.Maui-net6.sln -c $BUILDCONFIGURATION -bl:$BUILD_ARTIFACTSTAGINGDIRECTORY/logs/$BUILDCONFIGURATION.binlog
|
||||
displayName: build samples
|
||||
|
||||
- task: PublishPipelineArtifact@1
|
||||
displayName: publish artifacts
|
||||
inputs:
|
||||
artifactName: NET6-OSX
|
||||
artifactName: NET6-OSX-$(BuildConfiguration)
|
||||
targetPath: $(Build.ArtifactStagingDirectory)
|
||||
condition: always()
|
||||
|
|
|
@ -1,131 +0,0 @@
|
|||
parameters:
|
||||
name: '' # in the form type_platform_host
|
||||
displayName: '' # the human name
|
||||
vmImage: 'macOS-10.15' # the VM image
|
||||
vmPool: 'Azure Pipelines' # the VM pool
|
||||
dependsOn: [] # the dependiencies
|
||||
preBuildSteps: [] # any steps to run before the build
|
||||
postBuildSteps: [] # any additional steps to run after the build
|
||||
slnPath : 'Xamarin.Forms.sln'
|
||||
buildTaskPath : 'Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj'
|
||||
androidProjectPath : 'Xamarin.Forms.ControlGallery.Android/Xamarin.Forms.ControlGallery.Android.csproj'
|
||||
buildConfiguration : 'Debug'
|
||||
nugetVersion: $(NUGET_VERSION)
|
||||
monoVersion: $(MONO_VERSION)
|
||||
provisionatorPath: 'build/provisioning/provisioning.csx'
|
||||
provisionatorExtraArguments: ''
|
||||
MSBuildArguments_cg_android: ''
|
||||
|
||||
jobs:
|
||||
- job: ${{ parameters.name }}
|
||||
workspace:
|
||||
clean: all
|
||||
displayName: ${{ parameters.displayName }}
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
name: ${{ coalesce(parameters.vmPool, 'Azure Pipelines') }}
|
||||
vmImage: ${{ coalesce(parameters.vmImage, 'macOS-10.15') }}
|
||||
dependsOn: ${{ parameters.dependsOn }}
|
||||
strategy:
|
||||
matrix:
|
||||
android_legacy:
|
||||
renderers: 'LEGACY'
|
||||
outputfolder: 'legacyRenderers'
|
||||
android_newRenderers:
|
||||
renderers: 'FAST'
|
||||
outputfolder: 'newRenderers'
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: 'Install .net core $(DOTNET_VERSION)'
|
||||
condition: ne(variables['DOTNET_VERSION'], '')
|
||||
inputs:
|
||||
version: $(DOTNET_VERSION)
|
||||
packageType: 'sdk'
|
||||
|
||||
- task: Bash@3
|
||||
displayName: 'Cake Provision'
|
||||
condition: eq(variables['provisioningCake'], 'true')
|
||||
inputs:
|
||||
targetType: 'filePath'
|
||||
filePath: 'build.sh'
|
||||
arguments: --target provision --TeamProject="$(System.TeamProject)"
|
||||
|
||||
- task: xamops.azdevex.provisionator-task.provisionator@1
|
||||
displayName: 'Provisionator'
|
||||
condition: eq(variables['provisioning'], 'true')
|
||||
inputs:
|
||||
provisioning_script: ${{ parameters.provisionatorPath }}
|
||||
provisioning_extra_args: ${{ parameters.provisionator.extraArguments }}
|
||||
|
||||
- script: '/bin/bash -c "sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh ${{ parameters.monoVersion }}"'
|
||||
displayName: 'Select MONO ${{ parameters.monoVersion }}'
|
||||
|
||||
- task: NuGetToolInstaller@1
|
||||
displayName: 'Use NuGet'
|
||||
condition: ne(variables['NUGET_VERSION'], '')
|
||||
inputs:
|
||||
versionSpec: $(NUGET_VERSION)
|
||||
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: 'Download build artifact nuget'
|
||||
condition: eq(variables['System.TeamProject'], 'DevDiv')
|
||||
inputs:
|
||||
artifactName: 'nuget'
|
||||
downloadPath: 'Nuget'
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy Files to: $(System.DefaultWorkingDirectory)'
|
||||
condition: eq(variables['System.TeamProject'], 'DevDiv')
|
||||
inputs:
|
||||
SourceFolder: 'Nuget/nuget/${{ parameters.buildConfiguration }}'
|
||||
TargetFolder: 'Nuget'
|
||||
|
||||
- bash: |
|
||||
echo "##vso[task.setvariable variable=NUGET_RESTORE_MSBUILD_ARGS]${{ parameters.MSBuildArguments_cg_android }}"
|
||||
displayName: 'Set NUGET_RESTORE_MSBUILD_ARGS for Nuget'
|
||||
|
||||
- bash: |
|
||||
env | grep NUGET_RESTORE_MSBUILD_ARGS
|
||||
displayName: 'Display NUGET_RESTORE_MSBUILD_ARGS for Nuget'
|
||||
|
||||
- task: NuGetCommand@2
|
||||
displayName: 'NuGet restore ${{ parameters.slnPath }}'
|
||||
inputs:
|
||||
command: restore
|
||||
restoreSolution: 'Xamarin.Forms.sln'
|
||||
feedsToUse: config
|
||||
nugetConfigPath: 'DevopsNuget.config'
|
||||
|
||||
- task: Bash@3
|
||||
displayName: 'Build Android $(renderers)'
|
||||
inputs:
|
||||
targetType: 'filePath'
|
||||
filePath: 'build.sh'
|
||||
arguments: --target cg-android --ANDROID_RENDERERS="$(renderers)" --GoogleMapsAPIKey="$(GoogleMapsAPIKey)" --BUILD_CONFIGURATION=${{ parameters.buildConfiguration }} --MSBuildArguments='${{ variables.MSBuildArguments_cg_android }} '
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy $(renderers)'
|
||||
inputs:
|
||||
SourceFolder: Xamarin.Forms.ControlGallery.Android/bin/${{ parameters.buildConfiguration }}/
|
||||
Contents: '**/*.apk'
|
||||
TargetFolder: 'Xamarin.Forms.ControlGallery.Android/$(outputfolder)/'
|
||||
CleanTargetFolder: true
|
||||
OverWrite: true
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy Android apk $(renderers) for UITest'
|
||||
inputs:
|
||||
Contents: |
|
||||
Xamarin.Forms.ControlGallery.Android/$(outputfolder)/$(ApkName)
|
||||
TargetFolder: '$(build.artifactstagingdirectory)/androidApp'
|
||||
CleanTargetFolder: true
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish Artifact: AndroidApps'
|
||||
condition: always()
|
||||
inputs:
|
||||
PathtoPublish: '$(build.artifactstagingdirectory)'
|
||||
ArtifactName: OSXArtifacts
|
|
@ -1,93 +0,0 @@
|
|||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: 'Download build artifact win_build'
|
||||
inputs:
|
||||
artifactName: 'win_build'
|
||||
downloadPath: '$(Build.ArtifactsDirectory)'
|
||||
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy Files to: $(System.DefaultWorkingDirectory)'
|
||||
inputs:
|
||||
SourceFolder: '$(Build.ArtifactsDirectory)/win_build'
|
||||
TargetFolder: '$(System.DefaultWorkingDirectory)'
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy SignList.xml Files'
|
||||
inputs:
|
||||
Contents: build/SignList.xml
|
||||
TargetFolder: '$(build.artifactstagingdirectory)/nuget'
|
||||
flattenFolders: true
|
||||
|
||||
- task: PowerShell@1
|
||||
displayName: 'Generate docs from docs repo'
|
||||
inputs:
|
||||
scriptName: 'build/scripts/generate-docs.ps1'
|
||||
arguments: '"$(Build.SourceBranch)" "$(github--pat--xamarinreleasemanager)"'
|
||||
workingFolder: '$(System.DefaultWorkingDirectory)/build/scripts'
|
||||
|
||||
- task: NuGetToolInstaller@1
|
||||
displayName: 'Use NuGet: $(NUGET_VERSION)'
|
||||
inputs:
|
||||
versionSpec: $(NUGET_VERSION)
|
||||
|
||||
- task: NuGetCommand@2
|
||||
displayName: 'Make NuGet Package'
|
||||
inputs:
|
||||
command: pack
|
||||
feedsToUse: config
|
||||
packagesToPack: '.nuspec/*.nuspec'
|
||||
packDestination: '$(Build.ArtifactStagingDirectory)/nuget/debug'
|
||||
versioningScheme: byEnvVar
|
||||
versionEnvVar: nugetPackageVersion
|
||||
configuration: $(buildConfiguration)
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy SignList.xml Files'
|
||||
inputs:
|
||||
Contents: build/SignList.xml
|
||||
TargetFolder: '$(build.artifactstagingdirectory)/nuget/debug'
|
||||
flattenFolders: true
|
||||
|
||||
|
||||
- powershell: |
|
||||
$buildConfiguration = "Release"
|
||||
$formsNugetVersion = "" + $env:nugetPackageVersion
|
||||
|
||||
Write-Host("Update nuspecs")
|
||||
Get-ChildItem './.nuspec/*.nuspec' -Recurse | Foreach-Object {
|
||||
(Get-Content $_) | Foreach-Object {
|
||||
$_ -replace '\$version\$', $formsNugetVersion `
|
||||
-replace '\$Configuration\$', $buildConfiguration `
|
||||
} | Set-Content $_
|
||||
}
|
||||
failOnStderr: true
|
||||
displayName: 'Update nuspecs'
|
||||
condition: and(succeeded(), or(eq(variables['Sign'], 'true'), or(eq(variables['DefaultBuildConfiguration'], 'Release'), eq(variables['Build.SourceBranch'], 'refs/heads/main'), startsWith(variables['Build.SourceBranch'],'refs/tags/'))))
|
||||
|
||||
- task: NuGetCommand@2
|
||||
displayName: 'Make NuGet Package Release'
|
||||
inputs:
|
||||
command: pack
|
||||
feedsToUse: config
|
||||
packagesToPack: '.nuspec/*.nuspec'
|
||||
packDestination: '$(Build.ArtifactStagingDirectory)/nuget/release'
|
||||
versioningScheme: byEnvVar
|
||||
versionEnvVar: nugetPackageVersion
|
||||
condition: and(succeeded(), or(eq(variables['Sign'], 'true'), or(eq(variables['DefaultBuildConfiguration'], 'Release'), eq(variables['Build.SourceBranch'], 'refs/heads/main'), startsWith(variables['Build.SourceBranch'],'refs/tags/'))))
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy SignList.xml Files'
|
||||
inputs:
|
||||
Contents: build/SignList.xml
|
||||
TargetFolder: '$(build.artifactstagingdirectory)/nuget/release'
|
||||
flattenFolders: true
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish Artifact: nuget'
|
||||
inputs:
|
||||
PathtoPublish: '$(Build.ArtifactStagingDirectory)/nuget'
|
||||
ArtifactName: nuget
|
|
@ -1,166 +0,0 @@
|
|||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
|
||||
- task: xamops.azdevex.provisionator-task.provisionator@1
|
||||
displayName: 'Provision Xcode'
|
||||
condition: ne(variables['REQUIRED_XCODE'], '')
|
||||
inputs:
|
||||
provisioning_script: 'build/provisioning/xcode.csx'
|
||||
|
||||
- task: xamops.azdevex.provisionator-task.provisionator@1
|
||||
displayName: 'Provisionator'
|
||||
condition: eq(variables['provisioning'], 'true')
|
||||
inputs:
|
||||
provisioning_script: $(provisionator.osxPath)
|
||||
provisioning_extra_args: $(provisionator.extraArguments) --v
|
||||
|
||||
- script: |
|
||||
echo "##vso[task.prependpath]/Library/Frameworks/Mono.framework/Versions/Current/Commands/"
|
||||
echo "##vso[task.prependpath]~/Library/Developer/Xamarin/android-sdk-macosx"
|
||||
displayName: 'Setup SDK Paths'
|
||||
condition: ne(variables['osx2019VmPool'], 'Azure Pipelines')
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: 'Install .net core $(DOTNET_VERSION)'
|
||||
condition: ne(variables['DOTNET_VERSION'], '')
|
||||
inputs:
|
||||
version: $(DOTNET_VERSION)
|
||||
packageType: 'sdk'
|
||||
|
||||
- task: Bash@3
|
||||
displayName: 'Cake Provision'
|
||||
condition: eq(variables['provisioningCake'], 'true')
|
||||
inputs:
|
||||
targetType: 'filePath'
|
||||
filePath: 'build.sh'
|
||||
arguments: --target provision --TeamProject="$(System.TeamProject)"
|
||||
|
||||
- task: NuGetToolInstaller@1
|
||||
displayName: 'Use NuGet'
|
||||
condition: ne(variables['NUGET_VERSION'], '')
|
||||
inputs:
|
||||
versionSpec: $(NUGET_VERSION)
|
||||
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: 'Download build artifact nuget'
|
||||
condition: eq(variables['System.TeamProject'], 'DevDiv')
|
||||
inputs:
|
||||
artifactName: 'nuget'
|
||||
downloadPath: '$(Build.ArtifactsDirectory)'
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy Files to: $(System.DefaultWorkingDirectory)'
|
||||
condition: eq(variables['System.TeamProject'], 'DevDiv')
|
||||
inputs:
|
||||
SourceFolder: '$(Build.ArtifactsDirectory)/nuget/$(buildConfiguration)'
|
||||
TargetFolder: '$(System.DefaultWorkingDirectory)/Nuget'
|
||||
|
||||
- task: NuGetCommand@2
|
||||
displayName: 'NuGet restore'
|
||||
inputs:
|
||||
command: restore
|
||||
restoreSolution: 'Xamarin.Forms.sln'
|
||||
feedsToUse: config
|
||||
nugetConfigPath: 'DevopsNuget.config'
|
||||
|
||||
- task: InstallAppleCertificate@2
|
||||
displayName: 'Install an Apple certificate'
|
||||
inputs:
|
||||
certSecureFile: 'Xamarin Forms iOS Certificate.p12'
|
||||
certPwd: $(P12password)
|
||||
|
||||
- task: InstallAppleProvisioningProfile@1
|
||||
displayName: 'Install an Apple provisioning profile'
|
||||
inputs:
|
||||
provProfileSecureFile: 'Xamarin Forms iOS Provisioning.mobileprovision'
|
||||
|
||||
- task: Bash@3
|
||||
displayName: 'Build Control Gallery IPA'
|
||||
inputs:
|
||||
targetType: 'filePath'
|
||||
filePath: 'build.sh'
|
||||
arguments: --target cg-ios --BUILD_CONFIGURATION=$(buildConfiguration) --MSBuildArguments='${{ variables.MSBuildArguments_cg_ios }} '
|
||||
|
||||
- task: Bash@3
|
||||
displayName: 'Build iOS Tests'
|
||||
inputs:
|
||||
targetType: 'filePath'
|
||||
filePath: 'build.sh'
|
||||
arguments: --target cg-ios-build-tests --BUILD_CONFIGURATION=$(buildConfiguration) --MSBuildArguments='${{ variables.MSBuildArguments_cg_ios }} '
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy iOS Files for UITest'
|
||||
inputs:
|
||||
Contents: |
|
||||
**/XamarinFormsControlGalleryiOS.ipa
|
||||
Xamarin.Forms.Core.iOS.UITests/bin/$(BuildConfiguration)/Newtonsoft.Json.*
|
||||
Xamarin.Forms.Core.iOS.UITests/bin/$(BuildConfiguration)/nunit.*
|
||||
Xamarin.Forms.Core.iOS.UITests/bin/$(BuildConfiguration)/NUnit3.*
|
||||
Xamarin.Forms.Core.iOS.UITests/bin/$(BuildConfiguration)/Plugin.*
|
||||
Xamarin.Forms.Core.iOS.UITests/bin/$(BuildConfiguration)/Xamarin.*
|
||||
TargetFolder: '$(build.artifactstagingdirectory)/ios'
|
||||
flattenFolders: true
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy iOS dSYM'
|
||||
inputs:
|
||||
SourceFolder: Xamarin.Forms.ControlGallery.iOS/bin/iPhone/$(BuildConfiguration)/XamarinFormsControlGalleryiOS.app.dSYM/
|
||||
TargetFolder: '$(build.artifactstagingdirectory)/ios/iPhone/XamarinFormsControlGalleryiOS.app.dSYM/'
|
||||
CleanTargetFolder: false
|
||||
flattenFolders: false
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy iOS App'
|
||||
inputs:
|
||||
SourceFolder: Xamarin.Forms.ControlGallery.iOS/bin/iPhoneSimulator/$(BuildConfiguration)/XamarinFormsControlGalleryiOS.app/
|
||||
TargetFolder: '$(build.artifactstagingdirectory)/ios/iPhoneSimulator/XamarinFormsControlGalleryiOS.app/'
|
||||
CleanTargetFolder: false
|
||||
flattenFolders: false
|
||||
|
||||
- task: MSBuild@1
|
||||
displayName: 'Build Android Tests'
|
||||
inputs:
|
||||
solution: 'Xamarin.Forms.Core.Android.UITests/Xamarin.Forms.Core.Android.UITests.csproj'
|
||||
configuration: $(buildConfiguration)
|
||||
msbuildArguments: /bl:$(Build.ArtifactStagingDirectory)/android-uitests.binlog
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy test-cloud.exe'
|
||||
inputs:
|
||||
Contents: '**/Xamarin.UITest.*/tools/test-cloud.exe'
|
||||
TargetFolder: '$(build.artifactstagingdirectory)/testcloud'
|
||||
OverWrite: true
|
||||
flattenFolders: true
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy Android Files for UITest'
|
||||
inputs:
|
||||
Contents: |
|
||||
Xamarin.Forms.Core.Android.UITests/bin/$(BuildConfiguration)/Newtonsoft.Json.*
|
||||
Xamarin.Forms.Core.Android.UITests/bin/$(BuildConfiguration)/nunit.*
|
||||
Xamarin.Forms.Core.Android.UITests/bin/$(BuildConfiguration)/NUnit3.*
|
||||
Xamarin.Forms.Core.Android.UITests/bin/$(BuildConfiguration)/Plugin.*
|
||||
Xamarin.Forms.Core.Android.UITests/bin/$(BuildConfiguration)/Xamarin.*
|
||||
|
||||
TargetFolder: '$(build.artifactstagingdirectory)/android'
|
||||
CleanTargetFolder: true
|
||||
flattenFolders: true
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy Cake File'
|
||||
inputs:
|
||||
Contents: |
|
||||
build.cake
|
||||
build/provisioning/provisioning.csx
|
||||
build/provisioning/xcode.csx
|
||||
TargetFolder: '$(build.artifactstagingdirectory)'
|
||||
CleanTargetFolder: false
|
||||
flattenFolders: true
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish Artifact: iOS'
|
||||
condition: always()
|
||||
inputs:
|
||||
PathtoPublish: '$(build.artifactstagingdirectory)'
|
||||
ArtifactName: OSXArtifacts
|
|
@ -1,213 +0,0 @@
|
|||
parameters:
|
||||
msbuildExtraArguments : ''
|
||||
artifactsTargetFolder: '$(build.artifactstagingdirectory)'
|
||||
artifactsName: 'win_build'
|
||||
nunitTestFolder: '$(build.sourcesdirectory)'
|
||||
includeUwp: 'true'
|
||||
includeAndroid: 'true'
|
||||
includeNonUwpAndNonAndroid: 'true'
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
|
||||
- script: build.cmd -Target provision
|
||||
displayName: 'Cake Provision'
|
||||
condition: eq(variables['provisioningCake'], 'true')
|
||||
|
||||
- task: xamops.azdevex.provisionator-task.provisionator@1
|
||||
displayName: 'Provisionator'
|
||||
condition: eq(variables['provisioning'], 'true')
|
||||
inputs:
|
||||
provisioning_script: ${{ parameters.provisionatorPath }}
|
||||
provisioning_extra_args: ${{ parameters.provisionator.extraArguments }}
|
||||
|
||||
# - task: UseDotNet@2
|
||||
# displayName: "Install .net core $(DOTNET_VERSION)"
|
||||
# condition: ne(variables['DOTNET_VERSION'], '')
|
||||
# inputs:
|
||||
# version: $(DOTNET_VERSION)
|
||||
# packageType: 'sdk'
|
||||
|
||||
- script: build.cmd -Target cg-uwp-build-tests -ScriptArgs '--BUILD_CONFIGURATION="$(BuildConfiguration)"'
|
||||
condition: eq(variables['BuildConfiguration'], 'Release')
|
||||
displayName: 'Build Tests and APPX'
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy Appx Packages'
|
||||
condition: eq(variables['BuildConfiguration'], 'Release')
|
||||
inputs:
|
||||
Contents: |
|
||||
Xamarin.Forms.ControlGallery.WindowsUniversal/AppPackages/*/*
|
||||
Xamarin.Forms.ControlGallery.WindowsUniversal/AppPackages/*/Add-AppDevPackage.resources/**
|
||||
Xamarin.Forms.ControlGallery.WindowsUniversal/AppPackages/*/TelemetryDependencies/**
|
||||
Xamarin.Forms.ControlGallery.WindowsUniversal/AppPackages/*/Dependencies/x86/**
|
||||
TargetFolder: '$(build.artifactstagingdirectory)'
|
||||
|
||||
- script: build.cmd -Target BuildForNuget -ScriptArgs '--BUILD_CONFIGURATION="$(BuildConfiguration)"','--Build_ArtifactStagingDirectory="$(Build.ArtifactStagingDirectory)"'
|
||||
name: winbuild
|
||||
displayName: 'Build Projects For Nuget'
|
||||
|
||||
- task: VSTest@2
|
||||
displayName: 'Unit Tests'
|
||||
inputs:
|
||||
testAssemblyVer2: |
|
||||
**/bin/$(BuildConfiguration)/Xamarin.Forms.Core.UnitTests.dll
|
||||
**/bin/$(BuildConfiguration)/**/Xamarin.Forms.DualScreen.UnitTests.dll
|
||||
**/bin/$(BuildConfiguration)/**/Xamarin.Forms.Xaml.UnitTests.dll
|
||||
searchFolder: ${{ parameters.nunitTestFolder }}
|
||||
codeCoverageEnabled: true
|
||||
testRunTitle: '$(BuildConfiguration)_UnitTests'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
diagnosticsEnabled: true
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy Files dlls'
|
||||
condition: eq(${{ parameters.includeNonUwpAndNonAndroid }}, 'true')
|
||||
inputs:
|
||||
Contents: |
|
||||
Stubs/**/bin/**/*.dll
|
||||
Microsoft.XamlStandard/bin/**/*.dll
|
||||
Microsoft.XamlStandard.Design/bin/**/*.dll
|
||||
Xamarin.Forms.Core/bin/**/*.dll
|
||||
Xamarin.Forms.Core/bin/**/*.pdb
|
||||
Xamarin.Forms.Core/bin/**/*.mdb
|
||||
Xamarin.Forms.Xaml/bin/**/*.dll
|
||||
Xamarin.Forms.Xaml/bin/**/*.pdb
|
||||
Xamarin.Forms.Xaml/bin/**/*.mdb
|
||||
Xamarin.Forms.Platform/bin/**/*.dll
|
||||
Xamarin.Forms.Build.Tasks/bin/**/*.dll
|
||||
Xamarin.Forms.Core.Design/bin/**/*.dll
|
||||
Xamarin.Forms.Xaml.Design/bin/**/*.dll
|
||||
Xamarin.Forms.Maps/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Maps/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.Maps/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Platform.iOS/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Platform.iOS/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Platform.iOS/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.Material.iOS/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Material.iOS/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Material.iOS/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.Material.Tizen/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Material.Tizen/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Material.Tizen/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.Platform.MacOS/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Platform.MacOS/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.Maps/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Maps/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Maps/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.Maps.iOS/bin/iPhoneSimulator/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Maps.MacOS/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Core.UnitTests/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Xaml.UnitTests/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Maps.Tizen/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Maps.Tizen/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.Maps.Tizen/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Platform.Tizen/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Platform.Tizen/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Platform.Tizen/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.Build.Tasks.Core/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Build.Tasks.Core/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Build.Tasks.Core/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.Maps.WPF/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Maps.WPF/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.Maps.WPF/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Maps.GTK/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Maps.GTK/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.Maps.GTK/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Platform.WPF/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Platform.WPF/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.Platform.WPF/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Platform.GTK/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Platform.GTK/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.Platform.GTK/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Microsoft.XamlStandard/bin/$(BuildConfiguration)/**/*.dll
|
||||
Microsoft.XamlStandard/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Microsoft.XamlStandard/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.DualScreen/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.DualScreen/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.DualScreen/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.DualScreen.UnitTests/bin/$(BuildConfiguration)/**/*.dll
|
||||
**/*.binlog
|
||||
|
||||
TargetFolder: ${{ parameters.artifactsTargetFolder }}
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy UWP'
|
||||
condition: eq(${{ parameters.includeUwp }}, 'true')
|
||||
inputs:
|
||||
Contents: |
|
||||
Xamarin.Forms.Platform.UAP/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Platform.UAP/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Platform.UAP/bin/$(BuildConfiguration)/**/*.pri
|
||||
Xamarin.Forms.Platform.UAP/bin/$(BuildConfiguration)/**/*.xr.xml
|
||||
Xamarin.Forms.Platform.UAP/obj/$(BuildConfiguration)/**/*.xaml
|
||||
Xamarin.Forms.Platform.UAP/Properties/Xamarin.Forms.Platform.UAP.rd.xml
|
||||
Xamarin.Forms.Maps.UWP/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Maps.UWP/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Maps.UWP/bin/$(BuildConfiguration)/**/*.pri
|
||||
Xamarin.Forms.Maps.UWP/bin/$(BuildConfiguration)/**/*.xbf
|
||||
Xamarin.Forms.DualScreen/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.DualScreen/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.DualScreen/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.DualScreen.UnitTests/bin/$(BuildConfiguration)/**/*.dll
|
||||
|
||||
TargetFolder: ${{ parameters.artifactsTargetFolder }}
|
||||
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy Android Files dlls'
|
||||
condition: eq('${{ parameters.includeAndroid }}', true)
|
||||
inputs:
|
||||
Contents: |
|
||||
Stubs/**/bin/**/*.dll
|
||||
Xamarin.Forms.Platform.Android/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Platform.Android/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Platform.Android.FormsViewGroup/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Platform.Android.FormsViewGroup/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Material.Android/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Material.Android/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Material.Android/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.Maps.Android/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Platform.Android.AppLinks/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.Platform.Android.AppLinks/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.Platform.Android.AppLinks/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.DualScreen/bin/$(BuildConfiguration)/**/*.dll
|
||||
Xamarin.Forms.DualScreen/bin/$(BuildConfiguration)/**/*.pdb
|
||||
Xamarin.Forms.DualScreen/bin/$(BuildConfiguration)/**/*.mdb
|
||||
Xamarin.Forms.DualScreen.UnitTests/bin/$(BuildConfiguration)/**/*.dll
|
||||
**/*.binlog
|
||||
|
||||
TargetFolder: ${{ parameters.artifactsTargetFolder }}
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy Cake File'
|
||||
inputs:
|
||||
Contents: |
|
||||
build.cake
|
||||
TargetFolder: '${{ parameters.artifactsTargetFolder }}'
|
||||
CleanTargetFolder: false
|
||||
flattenFolders: false
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy UITest Files'
|
||||
condition: eq(variables['BuildConfiguration'], 'Release')
|
||||
inputs:
|
||||
SourceFolder: Xamarin.Forms.Core.Windows.UITests/bin/Debug/
|
||||
TargetFolder: '$(build.artifactstagingdirectory)/UITests'
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy Certificate File'
|
||||
condition: eq(variables['BuildConfiguration'], 'Debug')
|
||||
inputs:
|
||||
Contents: |
|
||||
Xamarin.Forms.ControlGallery.WindowsUniversal\Xamarin.Forms.ControlGallery.WindowsUniversal_TemporaryKey.pfx
|
||||
TargetFolder: '$(build.artifactstagingdirectory)'
|
||||
CleanTargetFolder: false
|
||||
flattenFolders: false
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish Artifact: ${{ parameters.artifactsName }}'
|
||||
condition: always()
|
||||
inputs:
|
||||
ArtifactName: ${{ parameters.artifactsName }}
|
|
@ -1,266 +0,0 @@
|
|||
variables:
|
||||
- name: DefaultBuildPlatform
|
||||
value: 'any cpu'
|
||||
- name: ApkName
|
||||
value: AndroidControlGallery.AndroidControlGallery.apk
|
||||
- name: SolutionFile
|
||||
value: Xamarin.Forms.sln
|
||||
- name: BuildVersion
|
||||
value: $[counter('nuget-counter', 126)]
|
||||
- name: NUGET_VERSION
|
||||
value: 5.6.0
|
||||
- name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE
|
||||
value: true
|
||||
- name: DOTNET_VERSION
|
||||
value: 5.0.102
|
||||
|
||||
resources:
|
||||
repositories:
|
||||
- repository: xamarin-templates
|
||||
type: github
|
||||
name: xamarin/yaml-templates
|
||||
endpoint: xamarin
|
||||
ref: refs/heads/main # still defaults to master even though main is the main branch
|
||||
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
- main-handler
|
||||
tags:
|
||||
include:
|
||||
- '*'
|
||||
paths:
|
||||
exclude:
|
||||
- README.md
|
||||
|
||||
pr:
|
||||
autoCancel: false
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
- 3.*
|
||||
- 4.*
|
||||
- 5.*
|
||||
|
||||
schedules:
|
||||
- cron: "0 0 * * *"
|
||||
displayName: Daily midnight build
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
|
||||
stages:
|
||||
- stage: windows
|
||||
displayName: Build Windows
|
||||
jobs:
|
||||
- job: win_hosted
|
||||
condition: eq(variables['vs2019VmPool'], 'Azure Pipelines')
|
||||
workspace:
|
||||
clean: all
|
||||
displayName: Build Windows Phase
|
||||
timeoutInMinutes: 60
|
||||
pool:
|
||||
name: $(vs2019VmPool)
|
||||
vmImage: $(vs2019VmImage)
|
||||
demands:
|
||||
msbuild
|
||||
strategy:
|
||||
matrix:
|
||||
debug:
|
||||
BuildConfiguration: 'Debug'
|
||||
release:
|
||||
BuildConfiguration: 'Release'
|
||||
steps:
|
||||
- template: build/steps/build-windows.yml
|
||||
parameters:
|
||||
provisionatorPath : 'build/provisioning/provisioning.csx'
|
||||
|
||||
# - job: nuget_pack_hosted
|
||||
# workspace:
|
||||
# clean: all
|
||||
# displayName: Nuget Phase
|
||||
# dependsOn:
|
||||
# - win_hosted
|
||||
# condition: succeeded()
|
||||
# pool:
|
||||
# name: $(vs2019VmPool)
|
||||
# vmImage: $(vs2019VmImage)
|
||||
# demands:
|
||||
# msbuild
|
||||
# variables:
|
||||
# FormsIdAppend: ''
|
||||
# buildConfiguration: $(DefaultBuildConfiguration)
|
||||
# nugetPackageVersion : $[ dependencies.win_hosted.outputs['debug.winbuild.xamarinformspackageversion'] ]
|
||||
# steps:
|
||||
# - template: build/steps/build-nuget.yml
|
||||
- job: win_bots
|
||||
condition: ne(variables['vs2019VmPool'], 'Azure Pipelines')
|
||||
workspace:
|
||||
clean: all
|
||||
displayName: Build Windows Phase Bots
|
||||
timeoutInMinutes: 60
|
||||
pool:
|
||||
name: $(vs2019VmPool)
|
||||
vmImage: $(vs2019VmImage)
|
||||
demands:
|
||||
- Agent.OS -equals Windows_NT
|
||||
- msbuild
|
||||
strategy:
|
||||
matrix:
|
||||
debug:
|
||||
BuildConfiguration: 'Debug'
|
||||
release:
|
||||
BuildConfiguration: 'Release'
|
||||
steps:
|
||||
- template: build/steps/build-windows.yml
|
||||
parameters:
|
||||
provisionatorPath : 'build/provisioning/provisioning.csx'
|
||||
# - job: nuget_pack_bots
|
||||
# workspace:
|
||||
# clean: all
|
||||
# displayName: Nuget Phase
|
||||
# dependsOn:
|
||||
# - win_bots
|
||||
# condition: succeeded()
|
||||
# pool:
|
||||
# name: $(vs2019VmPool)
|
||||
# vmImage: $(vs2019VmImage)
|
||||
# demands:
|
||||
# - Agent.OS -equals Windows_NT
|
||||
# - msbuild
|
||||
# variables:
|
||||
# FormsIdAppend: ''
|
||||
# buildConfiguration: $(DefaultBuildConfiguration)
|
||||
# nugetPackageVersion : $[ dependencies.win_bots.outputs['debug.winbuild.xamarinformspackageversion'] ]
|
||||
# steps:
|
||||
# - template: build/steps/build-nuget.yml
|
||||
|
||||
# - stage: android
|
||||
# displayName: Build Android
|
||||
# ${{ if eq(variables['System.TeamProject'], 'devdiv') }}:
|
||||
# dependsOn: windows
|
||||
# ${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
# dependsOn: []
|
||||
# jobs:
|
||||
# - template: build/steps/build-android.yml
|
||||
# parameters:
|
||||
# vmPool: $[coalesce(variables.macAndroid2019VmPool, 'Azure Pipelines')]
|
||||
# vmImage: $[coalesce(variables.macAndroid2019VmImage, 'macOS-10.15')]
|
||||
# provisionatorPath : 'build/provisioning/provisioning.csx'
|
||||
# buildConfiguration: $(DefaultBuildConfiguration)
|
||||
# ${{ if ne(variables['MSBuildArguments_cg_android'], '') }}:
|
||||
# MSBuildArguments_cg_android: $(MSBuildArguments_cg_android)
|
||||
|
||||
# - stage: build_osx
|
||||
# displayName: Build OSX
|
||||
# ${{ if eq(variables['System.TeamProject'], 'devdiv') }}:
|
||||
# dependsOn: windows
|
||||
# ${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
# dependsOn: []
|
||||
# jobs:
|
||||
# - job: osx
|
||||
# workspace:
|
||||
# clean: all
|
||||
# displayName: OSX Phase
|
||||
# timeoutInMinutes: 120
|
||||
# pool:
|
||||
# name: $(osx2019VmPool)
|
||||
# vmImage: $(macOSXVmImage)
|
||||
# demands:
|
||||
# - sh
|
||||
# - Xamarin.iOS
|
||||
# variables:
|
||||
# provisionator.osxPath : 'build/provisioning/provisioning.csx'
|
||||
# buildConfiguration: $(DefaultBuildConfiguration)
|
||||
# iOSCertSecureFileName: 'Xamarin Forms iOS Certificate.p12'
|
||||
# iOSProvisioningSecureFileName: 'Xamarin Forms iOS Provisioning.mobileprovision'
|
||||
# steps:
|
||||
# - template: build/steps/build-osx.yml
|
||||
|
||||
- stage: PoliCheck
|
||||
displayName: 'Code Analysis'
|
||||
dependsOn: windows
|
||||
jobs:
|
||||
- job: run_poli_check
|
||||
displayName: 'Policheck And Credentials Compliance'
|
||||
pool:
|
||||
name: $(vs2019VmPool)
|
||||
vmImage: $(vs2019VmImage)
|
||||
timeoutInMinutes: 60
|
||||
cancelTimeoutInMinutes: 5
|
||||
steps:
|
||||
- checkout: self
|
||||
|
||||
- template: security/policheck/v1.yml@xamarin-templates
|
||||
|
||||
- template: security/credscan/v2.yml@xamarin-templates
|
||||
parameters:
|
||||
suppressionsFile: $(System.DefaultWorkingDirectory)\build\automation\CredScanSuppressions.json
|
||||
|
||||
- task: securedevelopmentteam.vss-secure-development-tools.build-task-antimalware.AntiMalware@3
|
||||
displayName: Run AntiMalware (Defender) Scan
|
||||
inputs:
|
||||
FileDirPath: $(System.DefaultWorkingDirectory)
|
||||
EnableServices: true
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- task: securedevelopmentteam.vss-secure-development-tools.build-task-report.SdtReport@1
|
||||
displayName: Create Security Analysis Report
|
||||
inputs:
|
||||
CredScan: true
|
||||
PoliCheck: true
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- task: securedevelopmentteam.vss-secure-development-tools.build-task-publishsecurityanalysislogs.PublishSecurityAnalysisLogs@2
|
||||
displayName: Publish Security Analysis Logs
|
||||
inputs:
|
||||
ArtifactName: CodeAnalysisLogs
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- task: securedevelopmentteam.vss-secure-development-tools.build-task-postanalysis.PostAnalysis@1
|
||||
displayName: Fail Job if Security Issues are Detected
|
||||
inputs:
|
||||
CredScan: true
|
||||
PoliCheck: true
|
||||
condition: succeededOrFailed()
|
||||
|
||||
# - job: api_scan
|
||||
# displayName: APIScan Compliance
|
||||
# pool:
|
||||
# name: $(corpVmImage)
|
||||
# steps:
|
||||
# - checkout: none
|
||||
# clean: true
|
||||
|
||||
# - task: DownloadBuildArtifacts@0
|
||||
# displayName: 'Download build artifact win_build'
|
||||
# inputs:
|
||||
# artifactName: win_build
|
||||
# downloadPath: $(Build.StagingDirectory)
|
||||
|
||||
# - task: securedevelopmentteam.vss-secure-development-tools.build-task-apiscan.APIScan@2
|
||||
# displayName: 'Run APIScan'
|
||||
# inputs:
|
||||
# softwareFolder: '$(Build.StagingDirectory)\win_build'
|
||||
# softwareName: Xamarin.Forms
|
||||
# softwareVersionNum: $(Build.BuildNumber)
|
||||
# isLargeApp: false
|
||||
|
||||
# only sign using the private server and not sigining Maui for now
|
||||
# - ${{ if and(eq(variables['System.TeamProject'], 'devdiv'), ne(variables['System.DefinitionId'], '13330')) }}:
|
||||
# - stage: nuget_signing
|
||||
# dependsOn: windows
|
||||
# displayName: Sign Nuget
|
||||
# jobs:
|
||||
# - job: nuget_sign
|
||||
# displayName: Sign Phase
|
||||
# pool:
|
||||
# name: $(signVmImage)
|
||||
# demands:
|
||||
# msbuild
|
||||
# steps:
|
||||
# - template: build/steps/build-sign.yml
|
||||
# condition: and(succeeded(), ne(variables['signVmImage'], ''), or(eq(variables['Sign'], 'true'), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), startsWith(variables['Build.SourceBranch'],'refs/tags/'))))
|
||||
|
||||
|
|
@ -0,0 +1,260 @@
|
|||
<#
|
||||
.SYNOPSIS
|
||||
|
||||
Runs adb commands to launch a Xamarin.Android project and time its
|
||||
overall startup.
|
||||
|
||||
.DESCRIPTION
|
||||
|
||||
This will build & deploy the project, and by default launch the app 10
|
||||
times. adb logcat messages are parsed and an average displayed.
|
||||
|
||||
.PARAMETER adb
|
||||
|
||||
Path to the adb executable. Will locate a default one installed by
|
||||
Visual Studio 2019 and fall back to using the one found in $env:PATH.
|
||||
|
||||
.PARAMETER msbuild
|
||||
|
||||
Path to the msbuild executable. Will locate a default one installed by
|
||||
Visual Studio 2019 and fall back to using the one found in $env:PATH.
|
||||
|
||||
.PARAMETER project
|
||||
|
||||
Path to a Xamarin.Android csproj file. Defaults to
|
||||
HelloForms.Android.csproj in this repository.
|
||||
|
||||
.PARAMETER package
|
||||
|
||||
The package name of the app, found in AndroidManifest.xml. This value
|
||||
is needed to launch or restart the app.
|
||||
|
||||
.PARAMETER configuration
|
||||
|
||||
The $(Configuration) MSBuild property. Defaults to 'Debug'.
|
||||
|
||||
.PARAMETER extra
|
||||
|
||||
Additional command-line arguments to pass to MSBuild. For example,
|
||||
'-extra /p:AotAssemblies=True' would enable AOT.
|
||||
|
||||
.PARAMETER xamarinformsversion
|
||||
The Xamarin.Forms version to run hello world on
|
||||
|
||||
.PARAMETER sleep
|
||||
|
||||
The number of seconds to wait between each app launch. Defaults to 3,
|
||||
but you may need to increase for larger apps.
|
||||
|
||||
.PARAMETER iterations
|
||||
|
||||
The number of times to launch the app for profiling. Defaults to 10.
|
||||
|
||||
.PARAMETER androidapi
|
||||
|
||||
The android api to use when creating the emulator
|
||||
|
||||
.EXAMPLE
|
||||
|
||||
PS> profile-android.ps1
|
||||
|
||||
Will build and deploy HelloForms.Android.csproj, launch the
|
||||
application 10 times and print the average time taken.
|
||||
|
||||
.EXAMPLE
|
||||
|
||||
PS> profile-android.ps1 -project .\Path\To\MyApp.csproj -package com.mycompany.myapp -iterations 3
|
||||
Launching: com.mycompany.myapp
|
||||
Launching: com.mycompany.myapp
|
||||
Launching: com.mycompany.myapp
|
||||
12-12 09:13:15.593 1876 1898 I ActivityManager: Displayed com.mycompany.myapp/crc6450e568c951913723.MainActivity: +1s501ms
|
||||
12-12 09:13:19.696 1876 1898 I ActivityManager: Displayed com.mycompany.myapp/crc6450e568c951913723.MainActivity: +1s475ms
|
||||
12-12 09:13:23.863 1876 1898 I ActivityManager: Displayed com.mycompany.myapp/crc6450e568c951913723.MainActivity: +1s564ms
|
||||
Average(ms): 1513.33333333333
|
||||
|
||||
This would launch a different app with 3 iterations.
|
||||
|
||||
.EXAMPLE
|
||||
|
||||
PS> profile-android.ps1 -configuration Release -extra /p:AotAssemblies=True -androidapi android-28
|
||||
|
||||
This would test the app using a Release build and AOT.
|
||||
#>
|
||||
|
||||
param
|
||||
(
|
||||
[string] $adb,
|
||||
[string] $msbuild,
|
||||
[string] $project,
|
||||
[string] $package,
|
||||
[string] $configuration = 'Debug',
|
||||
[string] $extra,
|
||||
[string] $xamarinformsversion = '4.7.0.1351',
|
||||
[string] $androidapi = 'android-28',
|
||||
[int] $sleep = 3,
|
||||
[int] $iterations = 10
|
||||
)
|
||||
|
||||
Function Get-Devices{
|
||||
Param ($emulators, $androidapi)
|
||||
|
||||
if (-not $emulator)
|
||||
{
|
||||
$emulator = 'C:\Program Files (x86)\Android\android-sdk\emulator\emulator.exe'
|
||||
if (-not (Test-Path $emulator))
|
||||
{
|
||||
Write-Host "We don't have emulator"
|
||||
# emulator should be in $PATH on macOS
|
||||
if($IsMacOS)
|
||||
{
|
||||
Write-Host "We are running macos"
|
||||
$emulator = $null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$devices = & $adb devices
|
||||
$noDevices = [string]::IsNullOrWhiteSpace(($devices -replace "List of Devices attached",""))
|
||||
|
||||
if ($noDevices)
|
||||
{
|
||||
Write-Host "No devices found"
|
||||
if ($emulator)
|
||||
{
|
||||
Write-Host "Listing emulators"
|
||||
& $emulator -list-avds
|
||||
$emulators = & $emulator -list-avds
|
||||
$emulatorsArray =$emulators.Split(" ")
|
||||
Write-Host "number of emulators" $emulatorsArray.length
|
||||
if($emulatorsArray.length -gt 0)
|
||||
{
|
||||
$index = 0
|
||||
$emulatorToRun = $emulatorsArray[ $index]
|
||||
Write-Host "Starting emulator $index from list - $emulatorToRun "
|
||||
Start-Process -FilePath $emulator -ArgumentList "-avd $emulatorToRun"
|
||||
Start-Job -ScriptBlock {
|
||||
& $emulator -avd $emulatorToRun
|
||||
}
|
||||
}
|
||||
else {
|
||||
Write-Host "no emulators found"
|
||||
}
|
||||
}
|
||||
elseif ($IsMacOS)
|
||||
{
|
||||
Write-Host "start emulator.sh"
|
||||
Start-Process -FilePath emulator.sh $androidapi
|
||||
}
|
||||
}
|
||||
else {
|
||||
& $adb devices
|
||||
}
|
||||
}
|
||||
|
||||
Function Build-App{
|
||||
Param ($project, $package)
|
||||
|
||||
if (-not $msbuild)
|
||||
{
|
||||
$msbuild = 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe'
|
||||
if (-not (Test-Path $msbuild))
|
||||
{
|
||||
# msbuild should be in $PATH on macOS
|
||||
$msbuild = 'msbuild'
|
||||
}
|
||||
}
|
||||
if (-not $flutter)
|
||||
{
|
||||
# flutter should be in $PATH
|
||||
$flutter = 'flutter'
|
||||
}
|
||||
|
||||
$isFlutter = -not $project.EndsWith("csproj")
|
||||
if(-not $isFlutter)
|
||||
{
|
||||
& $msbuild $project /v:minimal /nologo /restore /t:Clean,Install /p:Configuration=$configuration /p:XamarinFormsVersion=$xamarinformsversion $extra
|
||||
}
|
||||
else
|
||||
{
|
||||
Set-Location $project
|
||||
Write-Host "Building flutter: $package"
|
||||
& $flutter build apk --release
|
||||
& $flutter install
|
||||
}
|
||||
}
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
# Input validation
|
||||
if (-not $adb)
|
||||
{
|
||||
$adb = 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe'
|
||||
if (-not (Test-Path $adb))
|
||||
{
|
||||
Write-Host "doesnt exist adb"
|
||||
# adb should be in $PATH on macOS
|
||||
$adb = 'adb'
|
||||
}
|
||||
}
|
||||
|
||||
#Check if we have devices, or start a emulator
|
||||
Get-Devices $emulator $androidapi
|
||||
|
||||
#Build App
|
||||
Build-App $project $package
|
||||
|
||||
#We need a large logcat buffer
|
||||
& $adb logcat -G 30M
|
||||
& $adb logcat -c
|
||||
|
||||
for ($i = 1; $i -le $iterations; $i++)
|
||||
{
|
||||
Write-Host "Launching: $package"
|
||||
& $adb shell am force-stop $package
|
||||
& $adb shell monkey -p $package 1
|
||||
# & $adb shell am start -n "$package/$package.MainActivity"
|
||||
Start-Sleep -Seconds $sleep
|
||||
}
|
||||
|
||||
# Log message of the form:
|
||||
# 12-12 09:08:36.974 1876 1898 I ActivityManager: Displayed com.mycompany.myapp/crc6450e568c951913723.MainActivity: +1s540ms
|
||||
|
||||
$log = & $adb logcat -d | Select-String -Pattern 'Activity.*Manager.+Displayed'
|
||||
if ($log.Count -eq 0)
|
||||
{
|
||||
Write-Error "No ActivityManager messages found"
|
||||
}
|
||||
|
||||
$sum = 0;
|
||||
[System.Collections.ArrayList] $times = @()
|
||||
foreach ($line in $log)
|
||||
{
|
||||
if ($line -match "((?<seconds>\d+)s)?(?<milliseconds>\d+)ms(\s+\(total.+\))?$")
|
||||
{
|
||||
$seconds = [int]$Matches.seconds
|
||||
$milliseconds = [int]$Matches.milliseconds
|
||||
$time = $seconds * 1000 + $milliseconds
|
||||
$times.Add($time) > $null
|
||||
$sum += $time
|
||||
Write-Host $line
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Error "No timing found for line: $line"
|
||||
}
|
||||
}
|
||||
$mean = $sum / $log.Count
|
||||
$variance = 0
|
||||
if ($log.Count -ne 1)
|
||||
{
|
||||
foreach ($time in $times)
|
||||
{
|
||||
$variance += ($time - $mean) * ($time - $mean) / ($log.Count - 1)
|
||||
}
|
||||
}
|
||||
$stdev = [math]::Sqrt($variance)
|
||||
$stderr = $stdev / [math]::Sqrt($log.Count)
|
||||
|
||||
Write-Host "Average(ms): $mean"
|
||||
Write-Host "Std Err(ms): $stderr"
|
||||
Write-Host "Std Dev(ms): $stdev"
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using Android.App;
|
||||
using Android.Content;
|
||||
using Android.Gms.Tasks;
|
||||
|
@ -9,7 +9,7 @@ using Actions = Firebase.AppIndexing.Builders.Actions;
|
|||
using GMSTask = Android.Gms.Tasks.Task;
|
||||
using IndexingAction = Firebase.AppIndexing.IAction;
|
||||
|
||||
namespace Xamarin.Forms.Platform.Android.AppLinks
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppLinks
|
||||
{
|
||||
[Preserve(AllMembers = true)]
|
||||
public class AndroidAppLinks : IAppLinks, IDisposable
|
|
@ -0,0 +1,29 @@
|
|||
<Project Sdk="MSBuild.Sdk.Extras">
|
||||
<PropertyGroup>
|
||||
<Description>Android AppLinks support for Xamarin.Forms</Description>
|
||||
<AssemblyName>Microsoft.Maui.Controls.Compatibility.Android.AppLinks</AssemblyName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>$(AndroidTargetFrameworks)</TargetFrameworks>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<RootNamespace>Microsoft.Maui.Controls.Compatibility.Android.AppLinks</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)'=='Debug' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<None Remove="Resources\values\Strings.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AndroidResource Include="Resources\values\Strings.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Xamarin.Firebase.AppIndexing" Version="119.1.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(TargetFramework)' == 'MonoAndroid10.0'">
|
||||
<ProjectReference Include="..\..\..\..\Controls\src\Core\Controls.Core.csproj" />
|
||||
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" />
|
||||
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,22 @@
|
|||
using Android.Content;
|
||||
using AActivity = Android.App.Activity;
|
||||
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppLinks
|
||||
{
|
||||
internal static class ContextExtensions
|
||||
{
|
||||
public static AActivity GetActivity(this Context context)
|
||||
{
|
||||
if (context == null)
|
||||
return null;
|
||||
|
||||
if (context is AActivity activity)
|
||||
return activity;
|
||||
|
||||
if (context is ContextWrapper contextWrapper)
|
||||
return contextWrapper.BaseContext.GetActivity();
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net6.0-android</TargetFrameworks>
|
||||
<RootNamespace>Microsoft.Maui.Controls.Android</RootNamespace>
|
||||
<AssemblyName>Microsoft.Maui.Controls.Android.FormsViewGroup</AssemblyName>
|
||||
<OutputType>Library</OutputType>
|
||||
<Nullable>disable</Nullable>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Remove="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedJar Include="Jars\formsviewgroup.jar" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Properties\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<TransformFile Include="Transforms\Metadata.xml" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<AndroidCodeGenTarget>XAJavaInterop1</AndroidCodeGenTarget>
|
||||
<RootNamespace>Microsoft.Maui.Controls.Android</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{3B72465B-ACAE-43AE-9327-10F372FE5F80}</ProjectGuid>
|
||||
<ProjectTypeGuids>{10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>FormsViewGroup</RootNamespace>
|
||||
<AssemblyName>FormsViewGroup</AssemblyName>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkVersion>v10.0</TargetFrameworkVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>portable</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<NoWarn>CS0109</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>portable</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<NoWarn>CS0109</NoWarn>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Mono.Android" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedJar Include="Jars\formsviewgroup.jar" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<TransformFile Include="Transforms\Metadata.xml" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.Bindings.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
|
@ -0,0 +1,6 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
[assembly: AssemblyTitle ("FormsViewGroup")]
|
||||
[assembly: AssemblyDescription ("")]
|
||||
[assembly: ComVisible (false)]
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<metadata>
|
||||
<!--
|
||||
This sample removes the class: android.support.v4.content.AsyncTaskLoader.LoadTask:
|
||||
<remove-node path="/api/package[@name='android.support.v4.content']/class[@name='AsyncTaskLoader.LoadTask']" />
|
||||
|
||||
This sample removes the method: android.support.v4.content.CursorLoader.loadInBackground:
|
||||
<remove-node path="/api/package[@name='android.support.v4.content']/class[@name='CursorLoader']/method[@name='loadInBackground']" />
|
||||
-->
|
||||
|
||||
<attr path="/api/package[@name='com.xamarin.forms.platform.android']" name="managedName">Microsoft.Maui.Controls.Android</attr>
|
||||
<attr path="/api/package[@name='com.xamarin.formsviewgroup']" name="managedName">Microsoft.Maui.Controls.Android</attr>
|
||||
</metadata>
|
|
@ -1,9 +1,9 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using Android.App;
|
||||
using Android.Content;
|
||||
|
||||
namespace Xamarin.Forms.Platform.Android
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||
{
|
||||
public static class ActivityResultCallbackRegistry
|
||||
{
|
|
@ -0,0 +1,23 @@
|
|||
using System;
|
||||
using Android.Content;
|
||||
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||
{
|
||||
public class AndroidAppIndexProvider : IAppIndexingProvider
|
||||
{
|
||||
public AndroidAppIndexProvider(Context context)
|
||||
{
|
||||
var fullyQualifiedName = $"{AppLinksAssemblyName}.{AppLinksClassName}, {AppLinksAssemblyName}";
|
||||
var type = Type.GetType(fullyQualifiedName, throwOnError: false);
|
||||
if (type != null)
|
||||
{
|
||||
AppLinks = Activator.CreateInstance(type, new object[] { context }, null) as IAppLinks;
|
||||
}
|
||||
}
|
||||
|
||||
public IAppLinks AppLinks { get; }
|
||||
|
||||
const string AppLinksAssemblyName = "Microsoft.Maui.Controls.Compatibility.Platform.Android.AppLinks";
|
||||
const string AppLinksClassName = "AndroidAppLinks";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||
{
|
||||
internal enum AndroidApplicationLifecycleState
|
||||
{
|
||||
Uninitialized,
|
||||
OnCreate,
|
||||
OnStart,
|
||||
OnResume,
|
||||
OnPause,
|
||||
OnStop,
|
||||
OnRestart,
|
||||
OnDestroy
|
||||
}
|
||||
}
|
|
@ -2,11 +2,11 @@ using System;
|
|||
using Android.Animation;
|
||||
using Android.Content;
|
||||
using Android.OS;
|
||||
using Xamarin.Forms.Internals;
|
||||
using Microsoft.Maui.Controls.Internals;
|
||||
using GlobalSettings = Android.Provider.Settings.Global;
|
||||
using SystemSettings = Android.Provider.Settings.System;
|
||||
|
||||
namespace Xamarin.Forms.Platform.Android
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||
{
|
||||
internal class AndroidTicker : Ticker, IDisposable
|
||||
{
|
|
@ -0,0 +1,8 @@
|
|||
namespace Microsoft.Maui.Controls.Compatibility
|
||||
{
|
||||
public enum AndroidTitleBarVisibility
|
||||
{
|
||||
Default = 0,
|
||||
Never = 1
|
||||
}
|
||||
}
|
|
@ -0,0 +1,219 @@
|
|||
using System;
|
||||
using System.ComponentModel;
|
||||
using Android.Content;
|
||||
using Android.Graphics;
|
||||
using Android.Util;
|
||||
using Android.Views;
|
||||
using AndroidX.AppCompat.Widget;
|
||||
using Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;
|
||||
using AColor = Android.Graphics.Color;
|
||||
using AView = Android.Views.View;
|
||||
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||
{
|
||||
public class ButtonRenderer : ViewRenderer<Button, AppCompatButton>,
|
||||
AView.IOnAttachStateChangeListener, AView.IOnClickListener, AView.IOnTouchListener,
|
||||
IBorderVisualElementRenderer, IButtonLayoutRenderer, IDisposedState
|
||||
{
|
||||
BorderBackgroundManager _backgroundTracker;
|
||||
TextColorSwitcher _textColorSwitcher;
|
||||
float _defaultFontSize;
|
||||
Typeface _defaultTypeface;
|
||||
bool _isDisposed;
|
||||
ButtonLayoutManager _buttonLayoutManager;
|
||||
|
||||
public ButtonRenderer(Context context) : base(context)
|
||||
{
|
||||
AutoPackage = false;
|
||||
_backgroundTracker = new BorderBackgroundManager(this);
|
||||
_buttonLayoutManager = new ButtonLayoutManager(this);
|
||||
}
|
||||
|
||||
global::Android.Widget.Button NativeButton => Control;
|
||||
|
||||
protected override void SetContentDescription()
|
||||
=> base.SetContentDescription(false);
|
||||
|
||||
public override SizeRequest GetDesiredSize(int widthConstraint, int heightConstraint)
|
||||
{
|
||||
return _buttonLayoutManager.GetDesiredSize(widthConstraint, heightConstraint);
|
||||
}
|
||||
|
||||
void AView.IOnAttachStateChangeListener.OnViewAttachedToWindow(AView attachedView) =>
|
||||
_buttonLayoutManager?.OnViewAttachedToWindow(attachedView);
|
||||
|
||||
void AView.IOnAttachStateChangeListener.OnViewDetachedFromWindow(AView detachedView) =>
|
||||
_buttonLayoutManager?.OnViewDetachedFromWindow(detachedView);
|
||||
|
||||
protected override void OnLayout(bool changed, int l, int t, int r, int b)
|
||||
{
|
||||
_buttonLayoutManager?.OnLayout(changed, l, t, r, b);
|
||||
base.OnLayout(changed, l, t, r, b);
|
||||
}
|
||||
|
||||
protected override AppCompatButton CreateNativeControl()
|
||||
{
|
||||
return new AppCompatButton(Context);
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (_isDisposed)
|
||||
return;
|
||||
|
||||
_isDisposed = true;
|
||||
|
||||
if (disposing)
|
||||
{
|
||||
if (Control != null)
|
||||
{
|
||||
Control.SetOnClickListener(null);
|
||||
Control.SetOnTouchListener(null);
|
||||
Control.RemoveOnAttachStateChangeListener(this);
|
||||
_textColorSwitcher = null;
|
||||
}
|
||||
_backgroundTracker?.Dispose();
|
||||
_backgroundTracker = null;
|
||||
_buttonLayoutManager?.Dispose();
|
||||
_buttonLayoutManager = null;
|
||||
}
|
||||
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
|
||||
{
|
||||
base.OnElementChanged(e);
|
||||
|
||||
if (e.NewElement != null)
|
||||
{
|
||||
if (Control == null)
|
||||
{
|
||||
AppCompatButton button = CreateNativeControl();
|
||||
|
||||
button.SetOnClickListener(this);
|
||||
button.SetOnTouchListener(this);
|
||||
button.AddOnAttachStateChangeListener(this);
|
||||
_textColorSwitcher = new TextColorSwitcher(button.TextColors, e.NewElement.UseLegacyColorManagement());
|
||||
|
||||
SetNativeControl(button);
|
||||
}
|
||||
|
||||
_defaultFontSize = 0f;
|
||||
|
||||
_buttonLayoutManager?.Update();
|
||||
UpdateAll();
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
if (this.IsDisposed())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.PropertyName == Button.TextColorProperty.PropertyName)
|
||||
UpdateTextColor();
|
||||
else if (e.PropertyName == VisualElement.IsEnabledProperty.PropertyName)
|
||||
UpdateEnabled();
|
||||
else if (e.PropertyName == Button.FontProperty.PropertyName)
|
||||
UpdateFont();
|
||||
else if (e.PropertyName == Button.CharacterSpacingProperty.PropertyName)
|
||||
UpdateCharacterSpacing();
|
||||
|
||||
base.OnElementPropertyChanged(sender, e);
|
||||
}
|
||||
|
||||
[PortHandler]
|
||||
protected override void UpdateBackgroundColor()
|
||||
{
|
||||
if (Element == null || Control == null)
|
||||
return;
|
||||
|
||||
_backgroundTracker?.UpdateDrawable();
|
||||
}
|
||||
|
||||
void UpdateAll()
|
||||
{
|
||||
UpdateFont();
|
||||
UpdateTextColor();
|
||||
UpdateEnabled();
|
||||
UpdateBackgroundColor();
|
||||
UpdateCharacterSpacing();
|
||||
}
|
||||
|
||||
void UpdateEnabled()
|
||||
{
|
||||
Control.Enabled = Element.IsEnabled;
|
||||
}
|
||||
|
||||
void UpdateFont()
|
||||
{
|
||||
Button button = Element;
|
||||
Font font = button.Font;
|
||||
|
||||
if (font == Font.Default && _defaultFontSize == 0f)
|
||||
return;
|
||||
|
||||
if (_defaultFontSize == 0f)
|
||||
{
|
||||
_defaultTypeface = NativeButton.Typeface;
|
||||
_defaultFontSize = NativeButton.TextSize;
|
||||
}
|
||||
|
||||
if (font == Font.Default)
|
||||
{
|
||||
NativeButton.Typeface = _defaultTypeface;
|
||||
NativeButton.SetTextSize(ComplexUnitType.Px, _defaultFontSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
NativeButton.Typeface = font.ToTypeface();
|
||||
NativeButton.SetTextSize(ComplexUnitType.Sp, font.ToScaledPixel());
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateTextColor()
|
||||
{
|
||||
_textColorSwitcher?.UpdateTextColor(Control, Element.TextColor);
|
||||
}
|
||||
|
||||
void UpdateCharacterSpacing()
|
||||
{
|
||||
if (Forms.IsLollipopOrNewer)
|
||||
{
|
||||
NativeButton.LetterSpacing = Element.CharacterSpacing.ToEm();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void IOnClickListener.OnClick(AView v) => ButtonElementManager.OnClick(Element, Element, v);
|
||||
|
||||
bool IOnTouchListener.OnTouch(AView v, MotionEvent e) => ButtonElementManager.OnTouch(Element, Element, v, e);
|
||||
|
||||
float IBorderVisualElementRenderer.ShadowRadius => Control.ShadowRadius;
|
||||
float IBorderVisualElementRenderer.ShadowDx => Control.ShadowDx;
|
||||
float IBorderVisualElementRenderer.ShadowDy => Control.ShadowDy;
|
||||
AColor IBorderVisualElementRenderer.ShadowColor => Control.ShadowColor;
|
||||
bool IBorderVisualElementRenderer.UseDefaultPadding() => Element.OnThisPlatform().UseDefaultPadding();
|
||||
bool IBorderVisualElementRenderer.UseDefaultShadow() => Element.OnThisPlatform().UseDefaultShadow();
|
||||
bool IBorderVisualElementRenderer.IsShadowEnabled() => true;
|
||||
VisualElement IBorderVisualElementRenderer.Element => Element;
|
||||
AView IBorderVisualElementRenderer.View => Control;
|
||||
event EventHandler<VisualElementChangedEventArgs> IBorderVisualElementRenderer.ElementChanged
|
||||
{
|
||||
add => ((IVisualElementRenderer)this).ElementChanged += value;
|
||||
remove => ((IVisualElementRenderer)this).ElementChanged -= value;
|
||||
}
|
||||
|
||||
event EventHandler<VisualElementChangedEventArgs> IButtonLayoutRenderer.ElementChanged
|
||||
{
|
||||
add => ((IVisualElementRenderer)this).ElementChanged += value;
|
||||
remove => ((IVisualElementRenderer)this).ElementChanged -= value;
|
||||
}
|
||||
|
||||
AppCompatButton IButtonLayoutRenderer.View => Control;
|
||||
bool IDisposedState.IsDisposed => _isDisposed || !Control.IsAlive();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,194 @@
|
|||
using System.Collections.Specialized;
|
||||
using System.ComponentModel;
|
||||
using Android.Content;
|
||||
using Android.Views;
|
||||
using AndroidX.Fragment.App;
|
||||
using AndroidX.ViewPager.Widget;
|
||||
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||
{
|
||||
|
||||
public class CarouselPageRenderer : VisualElementRenderer<CarouselPage>, ViewPager.IOnPageChangeListener, IManageFragments
|
||||
{
|
||||
bool _disposed;
|
||||
FormsViewPager _viewPager;
|
||||
Page _previousPage;
|
||||
FragmentManager _fragmentManager;
|
||||
|
||||
public CarouselPageRenderer(Context context) : base(context)
|
||||
{
|
||||
AutoPackage = false;
|
||||
}
|
||||
|
||||
void ViewPager.IOnPageChangeListener.OnPageScrolled(int position, float positionOffset, int positionOffsetPixels)
|
||||
{
|
||||
}
|
||||
|
||||
void ViewPager.IOnPageChangeListener.OnPageScrollStateChanged(int state)
|
||||
{
|
||||
}
|
||||
|
||||
IPageController PageController => Element as IPageController;
|
||||
|
||||
FragmentManager FragmentManager => _fragmentManager ?? (_fragmentManager = Context.GetFragmentManager());
|
||||
|
||||
void IManageFragments.SetFragmentManager(FragmentManager childFragmentManager)
|
||||
{
|
||||
if (_fragmentManager == null)
|
||||
_fragmentManager = childFragmentManager;
|
||||
}
|
||||
|
||||
void ViewPager.IOnPageChangeListener.OnPageSelected(int position)
|
||||
{
|
||||
Element.CurrentPage = Element.Children[position];
|
||||
if (_previousPage != Element.CurrentPage)
|
||||
{
|
||||
_previousPage?.SendDisappearing();
|
||||
_previousPage = Element.CurrentPage;
|
||||
}
|
||||
Element.CurrentPage.SendAppearing();
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && !_disposed)
|
||||
{
|
||||
_disposed = true;
|
||||
|
||||
if (Element != null)
|
||||
PageController.InternalChildren.CollectionChanged -= OnChildrenCollectionChanged;
|
||||
|
||||
if (_viewPager != null)
|
||||
{
|
||||
RemoveView(_viewPager);
|
||||
|
||||
_viewPager.ClearOnPageChangeListeners();
|
||||
_viewPager.Adapter.Dispose();
|
||||
_viewPager.Dispose();
|
||||
_viewPager = null;
|
||||
}
|
||||
|
||||
RemoveAllViews();
|
||||
|
||||
_previousPage = null;
|
||||
_fragmentManager = null;
|
||||
|
||||
if (Element?.Children != null)
|
||||
{
|
||||
foreach (ContentPage pageToRemove in Element.Children)
|
||||
{
|
||||
IVisualElementRenderer pageRenderer = Platform.GetRenderer(pageToRemove);
|
||||
if (pageRenderer != null)
|
||||
{
|
||||
pageRenderer.View.RemoveFromParent();
|
||||
pageRenderer.Dispose();
|
||||
}
|
||||
|
||||
pageToRemove.ClearValue(Platform.RendererProperty);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
protected override void OnAttachedToWindow()
|
||||
{
|
||||
base.OnAttachedToWindow();
|
||||
if (Parent is PageContainer pageContainer && (pageContainer.IsInFragment || pageContainer.Visibility == ViewStates.Gone))
|
||||
return;
|
||||
PageController.SendAppearing();
|
||||
Element.CurrentPage?.SendAppearing();
|
||||
}
|
||||
|
||||
protected override void OnDetachedFromWindow()
|
||||
{
|
||||
base.OnDetachedFromWindow();
|
||||
if (Parent is PageContainer pageContainer && pageContainer.IsInFragment)
|
||||
return;
|
||||
Element.CurrentPage?.SendDisappearing();
|
||||
PageController.SendDisappearing();
|
||||
}
|
||||
|
||||
protected override void OnElementChanged(ElementChangedEventArgs<CarouselPage> e)
|
||||
{
|
||||
base.OnElementChanged(e);
|
||||
|
||||
var activity = (FormsAppCompatActivity)Context.GetActivity();
|
||||
|
||||
if (e.OldElement != null)
|
||||
((IPageController)e.OldElement).InternalChildren.CollectionChanged -= OnChildrenCollectionChanged;
|
||||
|
||||
if (e.NewElement != null)
|
||||
{
|
||||
if (_viewPager != null)
|
||||
{
|
||||
_viewPager.RemoveOnPageChangeListener(this);
|
||||
|
||||
ViewGroup.RemoveView(_viewPager);
|
||||
|
||||
_viewPager.Dispose();
|
||||
}
|
||||
|
||||
FormsViewPager pager = _viewPager = new FormsViewPager(activity)
|
||||
{
|
||||
OverScrollMode = OverScrollMode.Never,
|
||||
EnableGesture = true,
|
||||
LayoutParameters = new LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent),
|
||||
Adapter = new FormsFragmentPagerAdapter<ContentPage>(e.NewElement, FragmentManager) { CountOverride = e.NewElement.Children.Count }
|
||||
};
|
||||
pager.Id = Platform.GenerateViewId();
|
||||
pager.AddOnPageChangeListener(this);
|
||||
|
||||
ViewGroup.AddView(pager);
|
||||
CarouselPage carouselPage = e.NewElement;
|
||||
if (carouselPage.CurrentPage != null)
|
||||
{
|
||||
_previousPage = carouselPage.CurrentPage;
|
||||
ScrollToCurrentPage();
|
||||
}
|
||||
|
||||
((IPageController)carouselPage).InternalChildren.CollectionChanged += OnChildrenCollectionChanged;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
base.OnElementPropertyChanged(sender, e);
|
||||
|
||||
if (e.PropertyName == nameof(Element.CurrentPage))
|
||||
ScrollToCurrentPage();
|
||||
}
|
||||
|
||||
protected override void OnLayout(bool changed, int l, int t, int r, int b)
|
||||
{
|
||||
FormsViewPager pager = _viewPager;
|
||||
Context context = Context;
|
||||
int width = r - l;
|
||||
int height = b - t;
|
||||
|
||||
pager.Measure(MeasureSpecFactory.MakeMeasureSpec(width, MeasureSpecMode.AtMost), MeasureSpecFactory.MakeMeasureSpec(height, MeasureSpecMode.AtMost));
|
||||
|
||||
if (width > 0 && height > 0)
|
||||
{
|
||||
PageController.ContainerArea = new Rectangle(0, 0, context.FromPixels(width), context.FromPixels(height));
|
||||
pager.Layout(0, 0, width, b);
|
||||
}
|
||||
|
||||
base.OnLayout(changed, l, t, r, b);
|
||||
}
|
||||
|
||||
void OnChildrenCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
|
||||
{
|
||||
FormsViewPager pager = _viewPager;
|
||||
|
||||
((FormsFragmentPagerAdapter<ContentPage>)pager.Adapter).CountOverride = Element.Children.Count;
|
||||
pager.Adapter.NotifyDataSetChanged();
|
||||
}
|
||||
|
||||
void ScrollToCurrentPage()
|
||||
{
|
||||
_viewPager.SetCurrentItem(Element.Children.IndexOf(Element.CurrentPage), true);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
using System;
|
||||
using Android.Content;
|
||||
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||
{
|
||||
public class CheckBoxRenderer : CheckBoxRendererBase
|
||||
{
|
||||
public CheckBoxRenderer(Context context) : base(context)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,281 @@
|
|||
using System;
|
||||
using System.ComponentModel;
|
||||
using Android.Content;
|
||||
using Android.Content.Res;
|
||||
using Android.Graphics;
|
||||
using Android.Views;
|
||||
using Android.Widget;
|
||||
using AndroidX.AppCompat.Widget;
|
||||
using AndroidX.Core.Widget;
|
||||
using Microsoft.Maui.Controls.Internals;
|
||||
using Microsoft.Maui.Controls.Compatibility.Platform.Android.FastRenderers;
|
||||
using AAttribute = Android.Resource.Attribute;
|
||||
using AColor = Android.Graphics.Color;
|
||||
using AView = Android.Views.View;
|
||||
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||
{
|
||||
public class CheckBoxRendererBase :
|
||||
AppCompatCheckBox,
|
||||
IVisualElementRenderer,
|
||||
AView.IOnFocusChangeListener,
|
||||
CompoundButton.IOnCheckedChangeListener,
|
||||
ITabStop
|
||||
{
|
||||
bool _disposed;
|
||||
int? _defaultLabelFor;
|
||||
VisualElementTracker _tracker;
|
||||
VisualElementRenderer _visualElementRenderer;
|
||||
IPlatformElementConfiguration<PlatformConfiguration.Android, CheckBox> _platformElementConfiguration;
|
||||
CheckBox _checkBox;
|
||||
|
||||
static int[][] _checkedStates = new int[][]
|
||||
{
|
||||
new int[] { AAttribute.StateEnabled, AAttribute.StateChecked },
|
||||
new int[] { AAttribute.StateEnabled, -AAttribute.StateChecked },
|
||||
new int[] { -AAttribute.StateEnabled, AAttribute.StateChecked },
|
||||
new int[] { -AAttribute.StateEnabled, -AAttribute.StatePressed },
|
||||
};
|
||||
|
||||
public event EventHandler<VisualElementChangedEventArgs> ElementChanged;
|
||||
public event EventHandler<PropertyChangedEventArgs> ElementPropertyChanged;
|
||||
|
||||
public CheckBoxRendererBase(Context context) : base(context) => Init();
|
||||
|
||||
public CheckBoxRendererBase(Context context, int defStyleAttr) : base(context, null, defStyleAttr) => Init();
|
||||
|
||||
void Init()
|
||||
{
|
||||
SoundEffectsEnabled = false;
|
||||
SetOnCheckedChangeListener(this);
|
||||
Tag = this;
|
||||
OnFocusChangeListener = this;
|
||||
|
||||
this.SetClipToOutline(true);
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
|
||||
_disposed = true;
|
||||
if (disposing)
|
||||
{
|
||||
_disposed = true;
|
||||
_tracker?.Dispose();
|
||||
_tracker = null;
|
||||
SetOnCheckedChangeListener(null);
|
||||
OnFocusChangeListener = null;
|
||||
|
||||
if (Element != null)
|
||||
{
|
||||
Element.PropertyChanged -= OnElementPropertyChanged;
|
||||
|
||||
if (AppCompat.Platform.GetRenderer(Element) == this)
|
||||
{
|
||||
Element.ClearValue(AppCompat.Platform.RendererProperty);
|
||||
}
|
||||
|
||||
Element = null;
|
||||
}
|
||||
}
|
||||
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
Size MinimumSize()
|
||||
{
|
||||
return Size.Zero;
|
||||
}
|
||||
|
||||
SizeRequest IVisualElementRenderer.GetDesiredSize(int widthConstraint, int heightConstraint)
|
||||
{
|
||||
if (_disposed)
|
||||
{
|
||||
return new SizeRequest();
|
||||
}
|
||||
Measure(widthConstraint, heightConstraint);
|
||||
return new SizeRequest(new Size(MeasuredWidth, MeasuredHeight), MinimumSize());
|
||||
}
|
||||
|
||||
void IVisualElementRenderer.SetElement(VisualElement element)
|
||||
{
|
||||
if (element == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(element));
|
||||
}
|
||||
|
||||
if (!(element is CheckBox checkBox))
|
||||
{
|
||||
throw new ArgumentException("Element is not of type " + typeof(CheckBox), nameof(element));
|
||||
}
|
||||
|
||||
CheckBox oldElement = Element;
|
||||
Element = checkBox;
|
||||
|
||||
Performance.Start(out string reference);
|
||||
|
||||
if (oldElement != null)
|
||||
{
|
||||
oldElement.PropertyChanged -= OnElementPropertyChanged;
|
||||
}
|
||||
|
||||
element.PropertyChanged += OnElementPropertyChanged;
|
||||
|
||||
if (_tracker == null)
|
||||
{
|
||||
_tracker = new VisualElementTracker(this);
|
||||
}
|
||||
|
||||
if (_visualElementRenderer == null)
|
||||
{
|
||||
_visualElementRenderer = new VisualElementRenderer(this);
|
||||
}
|
||||
|
||||
OnElementChanged(new ElementChangedEventArgs<CheckBox>(oldElement as CheckBox, Element));
|
||||
Element?.SendViewInitialized(Control);
|
||||
Performance.Stop(reference);
|
||||
}
|
||||
|
||||
protected virtual void OnElementChanged(ElementChangedEventArgs<CheckBox> e)
|
||||
{
|
||||
if (e.NewElement != null && !_disposed)
|
||||
{
|
||||
this.EnsureId();
|
||||
|
||||
UpdateOnColor();
|
||||
UpdateIsChecked();
|
||||
UpdateBackgroundColor();
|
||||
UpdateBackground();
|
||||
}
|
||||
|
||||
ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));
|
||||
}
|
||||
|
||||
protected virtual void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
if (this.IsDisposed())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.PropertyName == CheckBox.ColorProperty.PropertyName)
|
||||
{
|
||||
UpdateOnColor();
|
||||
}
|
||||
else if (e.PropertyName == CheckBox.IsCheckedProperty.PropertyName)
|
||||
{
|
||||
UpdateIsChecked();
|
||||
}
|
||||
else if (e.PropertyName == VisualElement.BackgroundColorProperty.PropertyName)
|
||||
{
|
||||
UpdateBackgroundColor();
|
||||
}
|
||||
else if (e.PropertyName == VisualElement.BackgroundProperty.PropertyName)
|
||||
{
|
||||
UpdateBackground();
|
||||
}
|
||||
|
||||
ElementPropertyChanged?.Invoke(this, e);
|
||||
}
|
||||
|
||||
void IOnCheckedChangeListener.OnCheckedChanged(CompoundButton buttonView, bool isChecked)
|
||||
{
|
||||
((IElementController)Element).SetValueFromRenderer(CheckBox.IsCheckedProperty, isChecked);
|
||||
}
|
||||
|
||||
void UpdateIsChecked()
|
||||
{
|
||||
if (Element == null || Control == null)
|
||||
return;
|
||||
|
||||
Checked = Element.IsChecked;
|
||||
}
|
||||
|
||||
protected virtual ColorStateList GetColorStateList()
|
||||
{
|
||||
var tintColor = Element.Color == Color.Default ? Color.Accent.ToAndroid() : Element.Color.ToAndroid();
|
||||
|
||||
var list = new ColorStateList(
|
||||
_checkedStates,
|
||||
new int[]
|
||||
{
|
||||
tintColor,
|
||||
tintColor,
|
||||
tintColor,
|
||||
tintColor
|
||||
});
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
void UpdateBackgroundColor()
|
||||
{
|
||||
if (Element.BackgroundColor == Color.Default)
|
||||
SetBackgroundColor(AColor.Transparent);
|
||||
else
|
||||
SetBackgroundColor(Element.BackgroundColor.ToAndroid());
|
||||
}
|
||||
|
||||
void UpdateBackground()
|
||||
{
|
||||
Brush background = Element.Background;
|
||||
|
||||
this.UpdateBackground(background);
|
||||
}
|
||||
|
||||
void UpdateOnColor()
|
||||
{
|
||||
if (Element == null || Control == null)
|
||||
return;
|
||||
|
||||
var mode = PorterDuff.Mode.SrcIn;
|
||||
|
||||
|
||||
CompoundButtonCompat.SetButtonTintList(Control, GetColorStateList());
|
||||
CompoundButtonCompat.SetButtonTintMode(Control, mode);
|
||||
}
|
||||
|
||||
void IOnFocusChangeListener.OnFocusChange(AView v, bool hasFocus)
|
||||
{
|
||||
((IElementController)Element).SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, hasFocus);
|
||||
}
|
||||
|
||||
IPlatformElementConfiguration<PlatformConfiguration.Android, CheckBox> OnThisPlatform()
|
||||
{
|
||||
if (_platformElementConfiguration == null)
|
||||
_platformElementConfiguration = Element.OnThisPlatform();
|
||||
|
||||
return _platformElementConfiguration;
|
||||
}
|
||||
|
||||
public void SetLabelFor(int? id)
|
||||
{
|
||||
if (_defaultLabelFor == null)
|
||||
_defaultLabelFor = LabelFor;
|
||||
|
||||
LabelFor = (int)(id ?? _defaultLabelFor);
|
||||
}
|
||||
|
||||
void IVisualElementRenderer.UpdateLayout() => _tracker?.UpdateLayout();
|
||||
VisualElement IVisualElementRenderer.Element => Element;
|
||||
AView IVisualElementRenderer.View => this;
|
||||
ViewGroup IVisualElementRenderer.ViewGroup => null;
|
||||
VisualElementTracker IVisualElementRenderer.Tracker => _tracker;
|
||||
|
||||
protected CheckBox Element
|
||||
{
|
||||
get => _checkBox;
|
||||
private set
|
||||
{
|
||||
_checkBox = value;
|
||||
_platformElementConfiguration = null;
|
||||
}
|
||||
}
|
||||
|
||||
protected AppCompatCheckBox Control => this;
|
||||
|
||||
AView ITabStop.TabStop => this;
|
||||
}
|
||||
}
|
|
@ -2,15 +2,15 @@ using Android.App;
|
|||
using Android.Content;
|
||||
using Android.Content.Res;
|
||||
using Android.Views;
|
||||
using Xamarin.Forms.Internals;
|
||||
using Xamarin.Forms.Platform.Android.AppCompat;
|
||||
using APlatform = Xamarin.Forms.Platform.Android.AppCompat.Platform;
|
||||
using Microsoft.Maui.Controls.Internals;
|
||||
using Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat;
|
||||
using APlatform = Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat.Platform;
|
||||
using Fragment = AndroidX.Fragment.App.Fragment;
|
||||
using FragmentContainer = Xamarin.Forms.Platform.Android.AppCompat.FragmentContainer;
|
||||
using FragmentContainer = Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat.FragmentContainer;
|
||||
using FragmentManager = AndroidX.Fragment.App.FragmentManager;
|
||||
using FragmentTransaction = AndroidX.Fragment.App.FragmentTransaction;
|
||||
|
||||
namespace Xamarin.Forms.Platform.Android
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||
{
|
||||
internal class FlyoutPageContainer : ViewGroup, IManageFragments
|
||||
{
|
|
@ -0,0 +1,508 @@
|
|||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Threading.Tasks;
|
||||
using Android.Content;
|
||||
using Android.OS;
|
||||
using Android.Views;
|
||||
using AndroidX.DrawerLayout.Widget;
|
||||
using AndroidX.Fragment.App;
|
||||
using AView = Android.Views.View;
|
||||
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||
{
|
||||
using Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat;
|
||||
using Microsoft.Maui.Controls.Compatibility.Platform.Android.FastRenderers;
|
||||
|
||||
public class FlyoutPageRenderer : DrawerLayout, IVisualElementRenderer, DrawerLayout.IDrawerListener, IManageFragments, ILifeCycleState
|
||||
{
|
||||
#region Statics
|
||||
|
||||
//from Android source code
|
||||
const uint DefaultScrimColor = 0x99000000;
|
||||
|
||||
#endregion
|
||||
|
||||
int _currentLockMode = -1;
|
||||
FlyoutPageContainer _detailLayout;
|
||||
FlyoutPageContainer _flyoutLayout;
|
||||
bool _disposed;
|
||||
bool _isPresentingFromCore;
|
||||
bool _presented;
|
||||
bool _defaultAutomationSet;
|
||||
VisualElementTracker _tracker;
|
||||
FragmentManager _fragmentManager;
|
||||
string _defaultContentDescription;
|
||||
|
||||
public FlyoutPageRenderer(Context context) : base(context)
|
||||
{
|
||||
}
|
||||
|
||||
FlyoutPage Element { get; set; }
|
||||
|
||||
IFlyoutPageController FlyoutPageController => Element as IFlyoutPageController;
|
||||
|
||||
bool Presented
|
||||
{
|
||||
get { return _presented; }
|
||||
set
|
||||
{
|
||||
if (value == _presented)
|
||||
return;
|
||||
UpdateSplitViewLayout();
|
||||
_presented = value;
|
||||
if (Element.FlyoutLayoutBehavior == FlyoutLayoutBehavior.Default && FlyoutPageController.ShouldShowSplitMode)
|
||||
return;
|
||||
if (_presented)
|
||||
OpenDrawer(_flyoutLayout);
|
||||
else
|
||||
CloseDrawer(_flyoutLayout);
|
||||
}
|
||||
}
|
||||
|
||||
IPageController FlyoutPagePageController => Element.Flyout as IPageController;
|
||||
IPageController DetailPageController => Element.Detail as IPageController;
|
||||
IPageController PageController => Element as IPageController;
|
||||
|
||||
void IDrawerListener.OnDrawerClosed(global::Android.Views.View drawerView)
|
||||
{
|
||||
}
|
||||
|
||||
void IDrawerListener.OnDrawerOpened(global::Android.Views.View drawerView)
|
||||
{
|
||||
}
|
||||
|
||||
void IDrawerListener.OnDrawerSlide(global::Android.Views.View drawerView, float slideOffset)
|
||||
{
|
||||
}
|
||||
|
||||
void IDrawerListener.OnDrawerStateChanged(int newState)
|
||||
{
|
||||
_presented = IsDrawerVisible(_flyoutLayout);
|
||||
UpdateIsPresented();
|
||||
}
|
||||
|
||||
void IManageFragments.SetFragmentManager(FragmentManager fragmentManager)
|
||||
{
|
||||
if (_fragmentManager == null)
|
||||
_fragmentManager = fragmentManager;
|
||||
}
|
||||
|
||||
VisualElement IVisualElementRenderer.Element => Element;
|
||||
|
||||
event EventHandler<VisualElementChangedEventArgs> IVisualElementRenderer.ElementChanged
|
||||
{
|
||||
add { ElementChanged += value; }
|
||||
remove { ElementChanged -= value; }
|
||||
}
|
||||
|
||||
event EventHandler<PropertyChangedEventArgs> IVisualElementRenderer.ElementPropertyChanged
|
||||
{
|
||||
add { ElementPropertyChanged += value; }
|
||||
remove { ElementPropertyChanged -= value; }
|
||||
}
|
||||
|
||||
SizeRequest IVisualElementRenderer.GetDesiredSize(int widthConstraint, int heightConstraint)
|
||||
{
|
||||
Measure(widthConstraint, heightConstraint);
|
||||
return new SizeRequest(new Size(MeasuredWidth, MeasuredHeight));
|
||||
}
|
||||
|
||||
void IVisualElementRenderer.SetElement(VisualElement element)
|
||||
{
|
||||
FlyoutPage oldElement = Element;
|
||||
FlyoutPage newElement = Element = element as FlyoutPage;
|
||||
|
||||
if (oldElement != null)
|
||||
{
|
||||
Device.Info.PropertyChanged -= DeviceInfoPropertyChanged;
|
||||
|
||||
((IFlyoutPageController)oldElement).BackButtonPressed -= OnBackButtonPressed;
|
||||
|
||||
oldElement.PropertyChanged -= HandlePropertyChanged;
|
||||
oldElement.Appearing -= FlyoutPageAppearing;
|
||||
oldElement.Disappearing -= FlyoutPageDisappearing;
|
||||
|
||||
RemoveDrawerListener(this);
|
||||
|
||||
if (_detailLayout != null)
|
||||
{
|
||||
RemoveView(_detailLayout);
|
||||
}
|
||||
|
||||
if (_flyoutLayout != null)
|
||||
{
|
||||
RemoveView(_flyoutLayout);
|
||||
}
|
||||
}
|
||||
|
||||
if (newElement != null)
|
||||
{
|
||||
if (_detailLayout == null)
|
||||
{
|
||||
_detailLayout = new FlyoutPageContainer(newElement, false, Context)
|
||||
{
|
||||
LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent)
|
||||
};
|
||||
|
||||
_flyoutLayout = new FlyoutPageContainer(newElement, true, Context)
|
||||
{
|
||||
LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent) { Gravity = (int)GravityFlags.Start }
|
||||
};
|
||||
|
||||
if (_fragmentManager != null)
|
||||
{
|
||||
_detailLayout.SetFragmentManager(_fragmentManager);
|
||||
_flyoutLayout.SetFragmentManager(_fragmentManager);
|
||||
}
|
||||
|
||||
AddView(_detailLayout);
|
||||
AddView(_flyoutLayout);
|
||||
|
||||
Device.Info.PropertyChanged += DeviceInfoPropertyChanged;
|
||||
|
||||
AddDrawerListener(this);
|
||||
}
|
||||
|
||||
UpdateBackgroundColor(newElement);
|
||||
UpdateBackgroundImage(newElement);
|
||||
|
||||
UpdateFlyout();
|
||||
UpdateDetail();
|
||||
|
||||
UpdateFlowDirection();
|
||||
|
||||
((IFlyoutPageController)newElement).BackButtonPressed += OnBackButtonPressed;
|
||||
newElement.PropertyChanged += HandlePropertyChanged;
|
||||
newElement.Appearing += FlyoutPageAppearing;
|
||||
newElement.Disappearing += FlyoutPageDisappearing;
|
||||
|
||||
SetGestureState();
|
||||
|
||||
Presented = newElement.IsPresented;
|
||||
|
||||
newElement.SendViewInitialized(this);
|
||||
}
|
||||
|
||||
OnElementChanged(oldElement, newElement);
|
||||
|
||||
// Make sure to initialize this AFTER event is fired
|
||||
if (_tracker == null)
|
||||
_tracker = new VisualElementTracker(this);
|
||||
|
||||
if (element != null && !string.IsNullOrEmpty(element.AutomationId))
|
||||
SetAutomationId(element.AutomationId);
|
||||
|
||||
SetContentDescription();
|
||||
}
|
||||
|
||||
void IVisualElementRenderer.SetLabelFor(int? id) => LabelFor = id ?? LabelFor;
|
||||
|
||||
VisualElementTracker IVisualElementRenderer.Tracker => _tracker;
|
||||
|
||||
void IVisualElementRenderer.UpdateLayout()
|
||||
{
|
||||
_tracker?.UpdateLayout();
|
||||
}
|
||||
|
||||
ViewGroup IVisualElementRenderer.ViewGroup => this;
|
||||
|
||||
AView IVisualElementRenderer.View => this;
|
||||
|
||||
bool ILifeCycleState.MarkedForDispose { get; set; } = false;
|
||||
|
||||
void SetupAutomationDefaults()
|
||||
{
|
||||
if (!_defaultAutomationSet)
|
||||
{
|
||||
_defaultAutomationSet = true;
|
||||
AutomationPropertiesProvider.SetupDefaults(this, ref _defaultContentDescription);
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void SetAutomationId(string id)
|
||||
{
|
||||
SetupAutomationDefaults();
|
||||
AutomationPropertiesProvider.SetAutomationId(this, Element, id);
|
||||
}
|
||||
|
||||
protected virtual void SetContentDescription()
|
||||
{
|
||||
SetupAutomationDefaults();
|
||||
AutomationPropertiesProvider.SetContentDescription(this, Element, _defaultContentDescription, null);
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
|
||||
_disposed = true;
|
||||
|
||||
if (disposing)
|
||||
{
|
||||
Device.Info.PropertyChanged -= DeviceInfoPropertyChanged;
|
||||
|
||||
if (Element != null)
|
||||
{
|
||||
FlyoutPageController.BackButtonPressed -= OnBackButtonPressed;
|
||||
Element.PropertyChanged -= HandlePropertyChanged;
|
||||
Element.Appearing -= FlyoutPageAppearing;
|
||||
Element.Disappearing -= FlyoutPageDisappearing;
|
||||
}
|
||||
|
||||
if (_flyoutLayout?.ChildView != null)
|
||||
_flyoutLayout.ChildView.PropertyChanged -= HandleFlyoutPropertyChanged;
|
||||
|
||||
if (!this.IsDisposed())
|
||||
RemoveDrawerListener(this);
|
||||
|
||||
if (_tracker != null)
|
||||
{
|
||||
_tracker.Dispose();
|
||||
_tracker = null;
|
||||
}
|
||||
|
||||
if (_detailLayout != null)
|
||||
{
|
||||
RemoveView(_detailLayout);
|
||||
_detailLayout.Dispose();
|
||||
_detailLayout = null;
|
||||
}
|
||||
|
||||
if (_flyoutLayout != null)
|
||||
{
|
||||
RemoveView(_flyoutLayout);
|
||||
_flyoutLayout.Dispose();
|
||||
_flyoutLayout = null;
|
||||
}
|
||||
|
||||
if (Element != null)
|
||||
{
|
||||
Element.ClearValue(Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat.Platform.RendererProperty);
|
||||
Element = null;
|
||||
}
|
||||
}
|
||||
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
protected override void OnAttachedToWindow()
|
||||
{
|
||||
base.OnAttachedToWindow();
|
||||
PageController.SendAppearing();
|
||||
}
|
||||
|
||||
protected override void OnDetachedFromWindow()
|
||||
{
|
||||
base.OnDetachedFromWindow();
|
||||
PageController?.SendDisappearing();
|
||||
}
|
||||
|
||||
protected virtual void OnElementChanged(VisualElement oldElement, VisualElement newElement)
|
||||
{
|
||||
ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(oldElement, newElement));
|
||||
}
|
||||
|
||||
protected override void OnLayout(bool changed, int l, int t, int r, int b)
|
||||
{
|
||||
base.OnLayout(changed, l, t, r, b);
|
||||
//hack to make the split layout handle touches the full width
|
||||
if (FlyoutPageController.ShouldShowSplitMode && _flyoutLayout != null)
|
||||
_flyoutLayout.Right = r;
|
||||
}
|
||||
|
||||
async void DeviceInfoPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
if (nameof(Device.Info.CurrentOrientation) == e.PropertyName)
|
||||
{
|
||||
if (!FlyoutPageController.ShouldShowSplitMode && Presented)
|
||||
{
|
||||
FlyoutPageController.CanChangeIsPresented = true;
|
||||
//hack : when the orientation changes and we try to close the Flyout on Android
|
||||
//sometimes Android picks the width of the screen previous to the rotation
|
||||
//this leaves a little of the flyout visible, the hack is to delay for 100ms closing the drawer
|
||||
await Task.Delay(100);
|
||||
|
||||
//Renderer may have been disposed during the delay
|
||||
if (_disposed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
CloseDrawer(_flyoutLayout);
|
||||
}
|
||||
|
||||
UpdateSplitViewLayout();
|
||||
}
|
||||
}
|
||||
|
||||
event EventHandler<VisualElementChangedEventArgs> ElementChanged;
|
||||
event EventHandler<PropertyChangedEventArgs> ElementPropertyChanged;
|
||||
|
||||
bool HasAncestorNavigationPage(Element element)
|
||||
{
|
||||
if (element.Parent == null)
|
||||
return false;
|
||||
else if (element.Parent is NavigationPage)
|
||||
return true;
|
||||
else
|
||||
return HasAncestorNavigationPage(element.Parent);
|
||||
}
|
||||
|
||||
void HandleFlyoutPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
void HandlePropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
ElementPropertyChanged?.Invoke(this, e);
|
||||
if (e.PropertyName == "Flyout")
|
||||
UpdateFlyout();
|
||||
else if (e.PropertyName == "Detail")
|
||||
UpdateDetail();
|
||||
else if (e.PropertyName == FlyoutPage.IsGestureEnabledProperty.PropertyName)
|
||||
SetGestureState();
|
||||
else if (e.PropertyName == FlyoutPage.IsPresentedProperty.PropertyName)
|
||||
{
|
||||
_isPresentingFromCore = true;
|
||||
Presented = Element.IsPresented;
|
||||
_isPresentingFromCore = false;
|
||||
}
|
||||
else if (e.PropertyName == Page.BackgroundImageSourceProperty.PropertyName)
|
||||
UpdateBackgroundImage(Element);
|
||||
else if (e.PropertyName == VisualElement.BackgroundColorProperty.PropertyName)
|
||||
UpdateBackgroundColor(Element);
|
||||
else if (e.PropertyName == VisualElement.FlowDirectionProperty.PropertyName)
|
||||
UpdateFlowDirection();
|
||||
}
|
||||
|
||||
void FlyoutPageAppearing(object sender, EventArgs e)
|
||||
{
|
||||
FlyoutPagePageController?.SendAppearing();
|
||||
DetailPageController?.SendAppearing();
|
||||
}
|
||||
|
||||
void FlyoutPageDisappearing(object sender, EventArgs e)
|
||||
{
|
||||
FlyoutPagePageController?.SendDisappearing();
|
||||
DetailPageController?.SendDisappearing();
|
||||
}
|
||||
|
||||
void OnBackButtonPressed(object sender, BackButtonPressedEventArgs backButtonPressedEventArgs)
|
||||
{
|
||||
if (!IsDrawerOpen((int)GravityFlags.Start) || _currentLockMode == LockModeLockedOpen)
|
||||
return;
|
||||
|
||||
CloseDrawer((int)GravityFlags.Start);
|
||||
backButtonPressedEventArgs.Handled = true;
|
||||
}
|
||||
|
||||
void SetGestureState()
|
||||
{
|
||||
SetDrawerLockMode(Element.IsGestureEnabled ? LockModeUnlocked : LockModeLockedClosed);
|
||||
}
|
||||
|
||||
void SetLockMode(int lockMode)
|
||||
{
|
||||
if (_currentLockMode != lockMode)
|
||||
{
|
||||
SetDrawerLockMode(lockMode);
|
||||
_currentLockMode = lockMode;
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateBackgroundColor(Page view)
|
||||
{
|
||||
Color backgroundColor = view.BackgroundColor;
|
||||
if (backgroundColor.IsDefault)
|
||||
SetBackgroundColor(backgroundColor.ToAndroid());
|
||||
}
|
||||
|
||||
void UpdateBackgroundImage(Page view)
|
||||
{
|
||||
_ = this.ApplyDrawableAsync(view, Page.BackgroundImageSourceProperty, Context, drawable =>
|
||||
{
|
||||
if (drawable != null)
|
||||
this.SetBackground(drawable);
|
||||
});
|
||||
}
|
||||
|
||||
void UpdateDetail()
|
||||
{
|
||||
if (_detailLayout.ChildView == null)
|
||||
Update();
|
||||
else
|
||||
// Queue up disposal of the previous renderers after the current layout updates have finished
|
||||
new Handler(Looper.MainLooper).Post(Update);
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (_detailLayout == null || _detailLayout.IsDisposed())
|
||||
return;
|
||||
|
||||
Context.HideKeyboard(this);
|
||||
_detailLayout.ChildView = Element.Detail;
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateFlowDirection()
|
||||
{
|
||||
this.UpdateFlowDirection(Element);
|
||||
_detailLayout.UpdateFlowDirection();
|
||||
}
|
||||
|
||||
void UpdateIsPresented()
|
||||
{
|
||||
if (_isPresentingFromCore)
|
||||
return;
|
||||
if (Presented != Element.IsPresented)
|
||||
((IElementController)Element).SetValueFromRenderer(FlyoutPage.IsPresentedProperty, Presented);
|
||||
}
|
||||
|
||||
void UpdateFlyout()
|
||||
{
|
||||
if (_flyoutLayout.ChildView == null)
|
||||
Update();
|
||||
else
|
||||
// Queue up disposal of the previous renderers after the current layout updates have finished
|
||||
new Handler(Looper.MainLooper).Post(Update);
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (_flyoutLayout == null || _flyoutLayout.IsDisposed())
|
||||
return;
|
||||
|
||||
if (_flyoutLayout.ChildView != null)
|
||||
_flyoutLayout.ChildView.PropertyChanged -= HandleFlyoutPropertyChanged;
|
||||
|
||||
_flyoutLayout.ChildView = Element.Flyout;
|
||||
|
||||
if (_flyoutLayout.ChildView != null)
|
||||
_flyoutLayout.ChildView.PropertyChanged += HandleFlyoutPropertyChanged;
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateSplitViewLayout()
|
||||
{
|
||||
if (Device.Idiom == TargetIdiom.Tablet)
|
||||
{
|
||||
bool isShowingSplit = FlyoutPageController.ShouldShowSplitMode || (FlyoutPageController.ShouldShowSplitMode && Element.FlyoutLayoutBehavior != FlyoutLayoutBehavior.Default && Element.IsPresented);
|
||||
SetLockMode(isShowingSplit ? LockModeLockedOpen : LockModeUnlocked);
|
||||
unchecked
|
||||
{
|
||||
SetScrimColor(isShowingSplit ? Color.Transparent.ToAndroid() : (int)DefaultScrimColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||
{
|
||||
public class MasterDetailPageRenderer : FlyoutPageRenderer
|
||||
{
|
||||
public MasterDetailPageRenderer(Context context) : base(context)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
|
@ -9,15 +9,15 @@ using Android.OS;
|
|||
using Android.Runtime;
|
||||
using Android.Views;
|
||||
using AndroidX.AppCompat.App;
|
||||
using Xamarin.Forms.Internals;
|
||||
using Xamarin.Forms.Platform.Android.AppCompat;
|
||||
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
|
||||
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat;
|
||||
using Microsoft.Maui.Controls.Internals;
|
||||
using Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat;
|
||||
using Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;
|
||||
using Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.AppCompat;
|
||||
using AColor = Android.Graphics.Color;
|
||||
using ARelativeLayout = Android.Widget.RelativeLayout;
|
||||
using AToolbar = AndroidX.AppCompat.Widget.Toolbar;
|
||||
|
||||
namespace Xamarin.Forms.Platform.Android
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||
{
|
||||
[Flags]
|
||||
public enum ActivationFlags : long
|
||||
|
@ -81,7 +81,7 @@ namespace Xamarin.Forms.Platform.Android
|
|||
base.OnConfigurationChanged(newConfig);
|
||||
ConfigurationChanged?.Invoke(this, new EventArgs());
|
||||
|
||||
Xamarin.Forms.Application.Current?.TriggerThemeChanged(new AppThemeChangedEventArgs(Xamarin.Forms.Application.Current.RequestedTheme));
|
||||
Microsoft.Maui.Controls.Application.Current?.TriggerThemeChanged(new AppThemeChangedEventArgs(Microsoft.Maui.Controls.Application.Current.RequestedTheme));
|
||||
}
|
||||
|
||||
public override bool OnOptionsItemSelected(IMenuItem item)
|
||||
|
@ -147,10 +147,10 @@ namespace Xamarin.Forms.Platform.Android
|
|||
((IApplicationController)application).SetAppIndexingProvider(new AndroidAppIndexProvider(this));
|
||||
|
||||
Profile.FramePartition("SetCurrentApplication");
|
||||
Xamarin.Forms.Application.SetCurrentApplication(application);
|
||||
Microsoft.Maui.Controls.Application.SetCurrentApplication(application);
|
||||
|
||||
Profile.FramePartition("SetSoftInputMode");
|
||||
if (Xamarin.Forms.Application.Current.OnThisPlatform().GetWindowSoftInputModeAdjust() != WindowSoftInputModeAdjust.Unspecified)
|
||||
if (Microsoft.Maui.Controls.Application.Current.OnThisPlatform().GetWindowSoftInputModeAdjust() != WindowSoftInputModeAdjust.Unspecified)
|
||||
SetSoftInputMode();
|
||||
|
||||
Profile.FramePartition("CheckForAppLink");
|
||||
|
@ -241,7 +241,7 @@ namespace Xamarin.Forms.Platform.Android
|
|||
SetContentView(_layout);
|
||||
|
||||
Profile.FramePartition("OnStateChanged");
|
||||
Xamarin.Forms.Application.ClearCurrent();
|
||||
Microsoft.Maui.Controls.Application.ClearCurrent();
|
||||
|
||||
_previousState = _currentState;
|
||||
_currentState = AndroidApplicationLifecycleState.OnCreate;
|
||||
|
@ -502,9 +502,9 @@ namespace Xamarin.Forms.Platform.Android
|
|||
{
|
||||
var adjust = SoftInput.AdjustPan;
|
||||
|
||||
if (Xamarin.Forms.Application.Current != null)
|
||||
if (Microsoft.Maui.Controls.Application.Current != null)
|
||||
{
|
||||
WindowSoftInputModeAdjust elementValue = Xamarin.Forms.Application.Current.OnThisPlatform().GetWindowSoftInputModeAdjust();
|
||||
WindowSoftInputModeAdjust elementValue = Microsoft.Maui.Controls.Application.Current.OnThisPlatform().GetWindowSoftInputModeAdjust();
|
||||
switch (elementValue)
|
||||
{
|
||||
case WindowSoftInputModeAdjust.Resize:
|
|
@ -1,11 +1,13 @@
|
|||
// error CS0618: 'FragmentStatePagerAdapter' is obsolete:
|
||||
#pragma warning disable 618
|
||||
using System.Collections.Generic;
|
||||
using Android.OS;
|
||||
using AndroidX.Fragment.App;
|
||||
using Java.Lang;
|
||||
using Xamarin.Forms.Internals;
|
||||
using Microsoft.Maui.Controls.Internals;
|
||||
using FragmentTransit = Android.App.FragmentTransit;
|
||||
|
||||
namespace Xamarin.Forms.Platform.Android.AppCompat
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||
{
|
||||
internal class FormsFragmentPagerAdapter<T> : FragmentPagerAdapter where T : Page
|
||||
{
|
|
@ -5,7 +5,7 @@ using Android.Util;
|
|||
using Android.Views;
|
||||
using AndroidX.ViewPager.Widget;
|
||||
|
||||
namespace Xamarin.Forms.Platform.Android.AppCompat
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||
{
|
||||
internal class FormsViewPager : ViewPager
|
||||
{
|
|
@ -4,10 +4,10 @@ using Android.OS;
|
|||
using Android.Runtime;
|
||||
using Android.Views;
|
||||
using AndroidX.Fragment.App;
|
||||
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat;
|
||||
using Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.AppCompat;
|
||||
using AView = Android.Views.View;
|
||||
|
||||
namespace Xamarin.Forms.Platform.Android.AppCompat
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||
{
|
||||
internal class FragmentContainer : Fragment
|
||||
{
|
|
@ -0,0 +1,14 @@
|
|||
using Android.Content;
|
||||
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||
{
|
||||
// This version of FrameRenderer is here for backward compatibility with anyone referencing
|
||||
// FrameRenderer from this namespace
|
||||
public class FrameRenderer : FastRenderers.FrameRenderer
|
||||
{
|
||||
public FrameRenderer(Context context) : base(context)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
@ -10,7 +10,7 @@ using Android.Runtime;
|
|||
using Android.Views;
|
||||
using Android.Widget;
|
||||
|
||||
namespace Xamarin.Forms.Platform.Android
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||
{
|
||||
internal interface ILifeCycleState
|
||||
{
|
|
@ -1,6 +1,6 @@
|
|||
using AndroidX.Fragment.App;
|
||||
|
||||
namespace Xamarin.Forms.Platform.Android.AppCompat
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||
{
|
||||
/// <summary>
|
||||
/// Allows the platform to inject child fragment managers for renderers
|
|
@ -0,0 +1,345 @@
|
|||
using System;
|
||||
using System.ComponentModel;
|
||||
using Android.Content;
|
||||
using Android.Graphics;
|
||||
using Android.Graphics.Drawables;
|
||||
using Android.Views;
|
||||
using AndroidX.AppCompat.Widget;
|
||||
using Microsoft.Maui.Controls.Internals;
|
||||
using Microsoft.Maui.Controls.Compatibility.Platform.Android.FastRenderers;
|
||||
using Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;
|
||||
using AColor = Android.Graphics.Color;
|
||||
using AView = Android.Views.View;
|
||||
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||
{
|
||||
public class ImageButtonRenderer :
|
||||
AppCompatImageButton,
|
||||
IVisualElementRenderer,
|
||||
IBorderVisualElementRenderer,
|
||||
IImageRendererController,
|
||||
AView.IOnFocusChangeListener,
|
||||
AView.IOnClickListener,
|
||||
AView.IOnTouchListener,
|
||||
ILayoutChanges,
|
||||
IDisposedState
|
||||
{
|
||||
bool _hasLayoutOccurred;
|
||||
bool _inputTransparent;
|
||||
bool _disposed;
|
||||
bool _skipInvalidate;
|
||||
int? _defaultLabelFor;
|
||||
VisualElementTracker _tracker;
|
||||
VisualElementRenderer _visualElementRenderer;
|
||||
BorderBackgroundManager _backgroundTracker;
|
||||
IPlatformElementConfiguration<PlatformConfiguration.Android, ImageButton> _platformElementConfiguration;
|
||||
ImageButton _imageButton;
|
||||
|
||||
public event EventHandler<VisualElementChangedEventArgs> ElementChanged;
|
||||
public event EventHandler<PropertyChangedEventArgs> ElementPropertyChanged;
|
||||
|
||||
void IVisualElementRenderer.UpdateLayout() => _tracker?.UpdateLayout();
|
||||
VisualElement IVisualElementRenderer.Element => Element;
|
||||
AView IVisualElementRenderer.View => this;
|
||||
ViewGroup IVisualElementRenderer.ViewGroup => null;
|
||||
VisualElementTracker IVisualElementRenderer.Tracker => _tracker;
|
||||
bool IDisposedState.IsDisposed => ((IImageRendererController)this).IsDisposed;
|
||||
|
||||
public ImageButton Element
|
||||
{
|
||||
get => _imageButton;
|
||||
private set
|
||||
{
|
||||
_imageButton = value;
|
||||
_platformElementConfiguration = null;
|
||||
}
|
||||
}
|
||||
|
||||
void IImageRendererController.SkipInvalidate() => _skipInvalidate = true;
|
||||
bool IImageRendererController.IsDisposed => _disposed || !Control.IsAlive();
|
||||
|
||||
AppCompatImageButton Control => this;
|
||||
public ImageButtonRenderer(Context context) : base(context)
|
||||
{
|
||||
// These set the defaults so visually it matches up with other platforms
|
||||
SetPadding(0, 0, 0, 0);
|
||||
SoundEffectsEnabled = false;
|
||||
SetOnClickListener(this);
|
||||
SetOnTouchListener(this);
|
||||
OnFocusChangeListener = this;
|
||||
|
||||
// Setting the tag will break Glide
|
||||
// Tag = this;
|
||||
|
||||
_backgroundTracker = new BorderBackgroundManager(this, false);
|
||||
}
|
||||
|
||||
protected override void OnLayout(bool changed, int left, int top, int right, int bottom)
|
||||
{
|
||||
base.OnLayout(changed, left, top, right, bottom);
|
||||
_hasLayoutOccurred = true;
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
|
||||
_disposed = true;
|
||||
|
||||
if (disposing)
|
||||
{
|
||||
if (Element != null)
|
||||
{
|
||||
Element.PropertyChanged -= OnElementPropertyChanged;
|
||||
}
|
||||
|
||||
SetOnClickListener(null);
|
||||
SetOnTouchListener(null);
|
||||
OnFocusChangeListener = null;
|
||||
|
||||
ImageElementManager.Dispose(this);
|
||||
|
||||
_tracker?.Dispose();
|
||||
_tracker = null;
|
||||
|
||||
_backgroundTracker?.Dispose();
|
||||
_backgroundTracker = null;
|
||||
|
||||
if (Element != null)
|
||||
{
|
||||
if (AppCompat.Platform.GetRenderer(Element) == this)
|
||||
{
|
||||
Element.ClearValue(AppCompat.Platform.RendererProperty);
|
||||
}
|
||||
|
||||
Element = null;
|
||||
}
|
||||
}
|
||||
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
public override void Invalidate()
|
||||
{
|
||||
if (_skipInvalidate)
|
||||
{
|
||||
_skipInvalidate = false;
|
||||
return;
|
||||
}
|
||||
|
||||
base.Invalidate();
|
||||
}
|
||||
|
||||
Size MinimumSize()
|
||||
{
|
||||
return new Size();
|
||||
}
|
||||
|
||||
SizeRequest IVisualElementRenderer.GetDesiredSize(int widthConstraint, int heightConstraint)
|
||||
{
|
||||
if (_disposed)
|
||||
{
|
||||
return new SizeRequest();
|
||||
}
|
||||
Measure(widthConstraint, heightConstraint);
|
||||
return new SizeRequest(new Size(MeasuredWidth, MeasuredHeight), MinimumSize());
|
||||
}
|
||||
|
||||
void IVisualElementRenderer.SetElement(VisualElement element)
|
||||
{
|
||||
|
||||
if (element == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(element));
|
||||
}
|
||||
|
||||
if (!(element is ImageButton image))
|
||||
{
|
||||
throw new ArgumentException("Element is not of type " + typeof(ImageButton), nameof(element));
|
||||
}
|
||||
|
||||
ImageButton oldElement = Element;
|
||||
Element = image;
|
||||
|
||||
Performance.Start(out string reference);
|
||||
|
||||
if (oldElement != null)
|
||||
{
|
||||
oldElement.PropertyChanged -= OnElementPropertyChanged;
|
||||
}
|
||||
|
||||
element.PropertyChanged += OnElementPropertyChanged;
|
||||
|
||||
if (_tracker == null)
|
||||
{
|
||||
_tracker = new VisualElementTracker(this);
|
||||
ImageElementManager.Init(this);
|
||||
|
||||
}
|
||||
|
||||
if (_visualElementRenderer == null)
|
||||
{
|
||||
_visualElementRenderer = new VisualElementRenderer(this);
|
||||
}
|
||||
|
||||
Performance.Stop(reference);
|
||||
this.EnsureId();
|
||||
|
||||
UpdateInputTransparent();
|
||||
UpdatePadding();
|
||||
|
||||
OnElementChanged(new ElementChangedEventArgs<ImageButton>(oldElement, Element));
|
||||
Element?.SendViewInitialized(Control);
|
||||
}
|
||||
|
||||
protected virtual void OnElementChanged(ElementChangedEventArgs<ImageButton> e)
|
||||
{
|
||||
ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));
|
||||
}
|
||||
|
||||
public override void Draw(Canvas canvas)
|
||||
{
|
||||
if (Element == null)
|
||||
return;
|
||||
|
||||
canvas.ClipShape(Context, Element);
|
||||
|
||||
var backgroundDrawable = _backgroundTracker?.BackgroundDrawable;
|
||||
RectF drawableBounds = null;
|
||||
|
||||
if (Drawable != null)
|
||||
{
|
||||
if ((int)Forms.SdkInt >= 18 && backgroundDrawable != null)
|
||||
{
|
||||
var outlineBounds = backgroundDrawable.GetPaddingBounds(canvas.Width, canvas.Height);
|
||||
var width = (float)canvas.Width;
|
||||
var height = (float)canvas.Height;
|
||||
var widthRatio = 1f;
|
||||
var heightRatio = 1f;
|
||||
|
||||
if (Element.Aspect == Aspect.AspectFill && OnThisPlatform().GetIsShadowEnabled())
|
||||
Internals.Log.Warning(nameof(ImageButtonRenderer), "AspectFill isn't fully supported when using shadows. Image may be clipped incorrectly to Border");
|
||||
|
||||
switch (Element.Aspect)
|
||||
{
|
||||
case Aspect.Fill:
|
||||
break;
|
||||
case Aspect.AspectFill:
|
||||
case Aspect.AspectFit:
|
||||
heightRatio = (float)Drawable.IntrinsicHeight / height;
|
||||
widthRatio = (float)Drawable.IntrinsicWidth / width;
|
||||
break;
|
||||
}
|
||||
|
||||
drawableBounds = new RectF(outlineBounds.Left * widthRatio, outlineBounds.Top * heightRatio, outlineBounds.Right * widthRatio, outlineBounds.Bottom * heightRatio);
|
||||
}
|
||||
|
||||
if (drawableBounds != null)
|
||||
Drawable.SetBounds((int)drawableBounds.Left, (int)drawableBounds.Top, (int)drawableBounds.Right, (int)drawableBounds.Bottom);
|
||||
}
|
||||
|
||||
if (_backgroundTracker?.BackgroundDrawable != null)
|
||||
{
|
||||
_backgroundTracker.BackgroundDrawable.DrawCircle(canvas, canvas.Width, canvas.Height, base.Draw);
|
||||
_backgroundTracker.BackgroundDrawable.DrawOutline(canvas, canvas.Width, canvas.Height);
|
||||
}
|
||||
else
|
||||
{
|
||||
base.Draw(canvas);
|
||||
}
|
||||
}
|
||||
|
||||
void IVisualElementRenderer.SetLabelFor(int? id)
|
||||
{
|
||||
if (_defaultLabelFor == null)
|
||||
_defaultLabelFor = LabelFor;
|
||||
|
||||
LabelFor = (int)(id ?? _defaultLabelFor);
|
||||
}
|
||||
|
||||
public override bool OnTouchEvent(MotionEvent e)
|
||||
{
|
||||
if (!Enabled || (_inputTransparent && Enabled))
|
||||
return false;
|
||||
|
||||
return base.OnTouchEvent(e);
|
||||
}
|
||||
|
||||
|
||||
void UpdatePadding()
|
||||
{
|
||||
SetPadding(
|
||||
(int)(Context.ToPixels(Element.Padding.Left)),
|
||||
(int)(Context.ToPixels(Element.Padding.Top)),
|
||||
(int)(Context.ToPixels(Element.Padding.Right)),
|
||||
(int)(Context.ToPixels(Element.Padding.Bottom))
|
||||
);
|
||||
}
|
||||
|
||||
void UpdateInputTransparent()
|
||||
{
|
||||
if (Element == null || _disposed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_inputTransparent = Element.InputTransparent;
|
||||
}
|
||||
|
||||
protected virtual void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
if (this.IsDisposed())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.PropertyName == VisualElement.InputTransparentProperty.PropertyName)
|
||||
UpdateInputTransparent();
|
||||
else if (e.PropertyName == ImageButton.PaddingProperty.PropertyName)
|
||||
UpdatePadding();
|
||||
|
||||
ElementPropertyChanged?.Invoke(this, e);
|
||||
}
|
||||
|
||||
// general state related
|
||||
void IOnFocusChangeListener.OnFocusChange(AView v, bool hasFocus)
|
||||
{
|
||||
((IElementController)Element).SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, hasFocus);
|
||||
}
|
||||
// general state related
|
||||
|
||||
|
||||
// Button related
|
||||
void IOnClickListener.OnClick(AView v) =>
|
||||
ButtonElementManager.OnClick(Element, Element, v);
|
||||
|
||||
bool IOnTouchListener.OnTouch(AView v, MotionEvent e) =>
|
||||
ButtonElementManager.OnTouch(Element, Element, v, e);
|
||||
// Button related
|
||||
|
||||
float IBorderVisualElementRenderer.ShadowRadius => Context.ToPixels(OnThisPlatform().GetShadowRadius());
|
||||
float IBorderVisualElementRenderer.ShadowDx => Context.ToPixels(OnThisPlatform().GetShadowOffset().Width);
|
||||
float IBorderVisualElementRenderer.ShadowDy => Context.ToPixels(OnThisPlatform().GetShadowOffset().Height);
|
||||
AColor IBorderVisualElementRenderer.ShadowColor => OnThisPlatform().GetShadowColor().ToAndroid();
|
||||
bool IBorderVisualElementRenderer.IsShadowEnabled() => OnThisPlatform().GetIsShadowEnabled();
|
||||
bool IBorderVisualElementRenderer.UseDefaultPadding() => false;
|
||||
bool IBorderVisualElementRenderer.UseDefaultShadow() => false;
|
||||
VisualElement IBorderVisualElementRenderer.Element => Element;
|
||||
AView IBorderVisualElementRenderer.View => this;
|
||||
|
||||
bool ILayoutChanges.HasLayoutOccurred => _hasLayoutOccurred;
|
||||
|
||||
IPlatformElementConfiguration<PlatformConfiguration.Android, ImageButton> OnThisPlatform()
|
||||
{
|
||||
if (_platformElementConfiguration == null)
|
||||
_platformElementConfiguration = Element.OnThisPlatform();
|
||||
|
||||
return _platformElementConfiguration;
|
||||
}
|
||||
|
||||
void IImageRendererController.SetFormsAnimationDrawable(IFormsAnimationDrawable value)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,115 @@
|
|||
using System;
|
||||
using Android.Content;
|
||||
using Android.OS;
|
||||
using Android.Views;
|
||||
using Fragment = AndroidX.Fragment.App.Fragment;
|
||||
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||
{
|
||||
public static class PageExtensions
|
||||
{
|
||||
class EmbeddedFragment : Fragment
|
||||
{
|
||||
readonly ViewGroup _content;
|
||||
readonly AppCompat.Platform _platform;
|
||||
bool _disposed;
|
||||
|
||||
// ReSharper disable once UnusedMember.Local (Android uses this on configuration change
|
||||
public EmbeddedFragment()
|
||||
{
|
||||
}
|
||||
|
||||
public EmbeddedFragment(ViewGroup content, AppCompat.Platform platform)
|
||||
{
|
||||
_content = content;
|
||||
_platform = platform;
|
||||
}
|
||||
|
||||
public override global::Android.Views.View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
|
||||
{
|
||||
return _content;
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (_disposed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_disposed = true;
|
||||
|
||||
if (disposing)
|
||||
{
|
||||
(_platform as IDisposable)?.Dispose();
|
||||
}
|
||||
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
}
|
||||
#pragma warning restore 618
|
||||
|
||||
public static Fragment CreateSupportFragment(this ContentPage view, Context context)
|
||||
{
|
||||
if (!Forms.IsInitialized)
|
||||
throw new InvalidOperationException("call Forms.Init() before this");
|
||||
|
||||
if (!(view.RealParent is Application))
|
||||
{
|
||||
Application app = new DefaultApplication();
|
||||
app.MainPage = view;
|
||||
}
|
||||
|
||||
var platform = new AppCompat.Platform(context, true);
|
||||
platform.SetPage(view);
|
||||
|
||||
var vg = platform.GetViewGroup();
|
||||
|
||||
return new EmbeddedSupportFragment(vg, platform);
|
||||
}
|
||||
|
||||
class DefaultApplication : Application
|
||||
{
|
||||
}
|
||||
|
||||
class EmbeddedSupportFragment : Fragment
|
||||
{
|
||||
readonly ViewGroup _content;
|
||||
readonly AppCompat.Platform _platform;
|
||||
bool _disposed;
|
||||
|
||||
// ReSharper disable once UnusedMember.Local (Android uses this on configuration change
|
||||
public EmbeddedSupportFragment()
|
||||
{
|
||||
}
|
||||
|
||||
public EmbeddedSupportFragment(ViewGroup content, AppCompat.Platform platform)
|
||||
{
|
||||
_content = content;
|
||||
_platform = platform;
|
||||
}
|
||||
|
||||
public override global::Android.Views.View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
|
||||
{
|
||||
return _content;
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (_disposed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_disposed = true;
|
||||
|
||||
if (disposing)
|
||||
{
|
||||
(_platform as IDisposable)?.Dispose();
|
||||
}
|
||||
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,227 @@
|
|||
using System;
|
||||
using System.Collections.Specialized;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using Android.App;
|
||||
using Android.Content;
|
||||
using Android.Text;
|
||||
using Android.Text.Style;
|
||||
using Android.Util;
|
||||
using Android.Widget;
|
||||
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||
{
|
||||
public abstract class PickerRendererBase<TControl> : ViewRenderer<Picker, TControl>, IPickerRenderer
|
||||
where TControl : global::Android.Views.View
|
||||
{
|
||||
AlertDialog _dialog;
|
||||
bool _disposed;
|
||||
EntryAccessibilityDelegate _pickerAccessibilityDelegate;
|
||||
|
||||
public PickerRendererBase(Context context) : base(context)
|
||||
{
|
||||
AutoPackage = false;
|
||||
}
|
||||
|
||||
protected abstract EditText EditText { get; }
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && !_disposed)
|
||||
{
|
||||
_disposed = true;
|
||||
|
||||
((INotifyCollectionChanged)Element.Items).CollectionChanged -= RowsCollectionChanged;
|
||||
|
||||
_pickerAccessibilityDelegate?.Dispose();
|
||||
_pickerAccessibilityDelegate = null;
|
||||
}
|
||||
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
|
||||
{
|
||||
if (e.OldElement != null)
|
||||
((INotifyCollectionChanged)e.OldElement.Items).CollectionChanged -= RowsCollectionChanged;
|
||||
|
||||
if (e.NewElement != null)
|
||||
{
|
||||
((INotifyCollectionChanged)e.NewElement.Items).CollectionChanged += RowsCollectionChanged;
|
||||
if (Control == null)
|
||||
{
|
||||
var textField = CreateNativeControl();
|
||||
|
||||
SetNativeControl(textField);
|
||||
|
||||
ControlUsedForAutomation.SetAccessibilityDelegate(_pickerAccessibilityDelegate = new EntryAccessibilityDelegate(Element));
|
||||
}
|
||||
UpdateFont();
|
||||
UpdatePicker();
|
||||
UpdateTextColor();
|
||||
UpdateCharacterSpacing();
|
||||
UpdateGravity();
|
||||
}
|
||||
|
||||
base.OnElementChanged(e);
|
||||
}
|
||||
|
||||
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
if (this.IsDisposed())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
base.OnElementPropertyChanged(sender, e);
|
||||
|
||||
if (e.PropertyName == Picker.TitleProperty.PropertyName || e.PropertyName == Picker.TitleColorProperty.PropertyName)
|
||||
UpdatePicker();
|
||||
else if (e.PropertyName == Picker.SelectedIndexProperty.PropertyName)
|
||||
UpdatePicker();
|
||||
else if (e.PropertyName == Picker.CharacterSpacingProperty.PropertyName)
|
||||
UpdateCharacterSpacing();
|
||||
else if (e.PropertyName == Picker.TextColorProperty.PropertyName)
|
||||
UpdateTextColor();
|
||||
else if (e.PropertyName == Picker.FontAttributesProperty.PropertyName || e.PropertyName == Picker.FontFamilyProperty.PropertyName || e.PropertyName == Picker.FontSizeProperty.PropertyName)
|
||||
UpdateFont();
|
||||
else if (e.PropertyName == Picker.HorizontalTextAlignmentProperty.PropertyName || e.PropertyName == Picker.VerticalTextAlignmentProperty.PropertyName)
|
||||
UpdateGravity();
|
||||
}
|
||||
|
||||
protected override void OnFocusChangeRequested(object sender, VisualElement.FocusRequestArgs e)
|
||||
{
|
||||
base.OnFocusChangeRequested(sender, e);
|
||||
|
||||
if (e.Focus)
|
||||
{
|
||||
if (Clickable)
|
||||
CallOnClick();
|
||||
else
|
||||
((IPickerRenderer)this)?.OnClick();
|
||||
}
|
||||
else if (_dialog != null)
|
||||
{
|
||||
_dialog.Hide();
|
||||
((IElementController)Element).SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, false);
|
||||
Control.ClearFocus();
|
||||
_dialog = null;
|
||||
}
|
||||
}
|
||||
|
||||
void IPickerRenderer.OnClick()
|
||||
{
|
||||
Picker model = Element;
|
||||
if (_dialog == null)
|
||||
{
|
||||
using (var builder = new AlertDialog.Builder(Context))
|
||||
{
|
||||
if (!Element.IsSet(Picker.TitleColorProperty))
|
||||
{
|
||||
builder.SetTitle(model.Title ?? "");
|
||||
}
|
||||
else
|
||||
{
|
||||
var title = new SpannableString(model.Title ?? "");
|
||||
title.SetSpan(new ForegroundColorSpan(model.TitleColor.ToAndroid()), 0, title.Length(), SpanTypes.ExclusiveExclusive);
|
||||
|
||||
builder.SetTitle(title);
|
||||
}
|
||||
|
||||
string[] items = model.Items.ToArray();
|
||||
builder.SetItems(items, (s, e) => ((IElementController)model).SetValueFromRenderer(Picker.SelectedIndexProperty, e.Which));
|
||||
|
||||
builder.SetNegativeButton(global::Android.Resource.String.Cancel, (o, args) => { });
|
||||
|
||||
((IElementController)Element).SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, true);
|
||||
|
||||
_dialog = builder.Create();
|
||||
}
|
||||
_dialog.SetCanceledOnTouchOutside(true);
|
||||
_dialog.DismissEvent += (sender, args) =>
|
||||
{
|
||||
(Element as IElementController)?.SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, false);
|
||||
_dialog?.Dispose();
|
||||
_dialog = null;
|
||||
};
|
||||
|
||||
_dialog.Show();
|
||||
}
|
||||
}
|
||||
|
||||
void RowsCollectionChanged(object sender, EventArgs e)
|
||||
{
|
||||
UpdatePicker();
|
||||
}
|
||||
|
||||
void UpdateFont()
|
||||
{
|
||||
EditText.Typeface = Element.ToTypeface();
|
||||
EditText.SetTextSize(ComplexUnitType.Sp, (float)Element.FontSize);
|
||||
}
|
||||
|
||||
protected void UpdateCharacterSpacing()
|
||||
{
|
||||
if (Forms.IsLollipopOrNewer)
|
||||
{
|
||||
EditText.LetterSpacing = Element.CharacterSpacing.ToEm();
|
||||
}
|
||||
}
|
||||
|
||||
void UpdatePicker()
|
||||
{
|
||||
UpdatePlaceHolderText();
|
||||
UpdateTitleColor();
|
||||
|
||||
if (Element.SelectedIndex == -1 || Element.Items == null || Element.SelectedIndex >= Element.Items.Count)
|
||||
EditText.Text = null;
|
||||
else
|
||||
EditText.Text = Element.Items[Element.SelectedIndex];
|
||||
|
||||
_pickerAccessibilityDelegate.ValueText = EditText.Text;
|
||||
}
|
||||
|
||||
abstract protected void UpdateTextColor();
|
||||
abstract protected void UpdateTitleColor();
|
||||
abstract protected void UpdatePlaceHolderText();
|
||||
abstract protected void UpdateGravity();
|
||||
}
|
||||
|
||||
public class PickerRenderer : PickerRendererBase<EditText>
|
||||
{
|
||||
TextColorSwitcher _textColorSwitcher;
|
||||
TextColorSwitcher _hintColorSwitcher;
|
||||
|
||||
public PickerRenderer(Context context) : base(context)
|
||||
{
|
||||
}
|
||||
|
||||
protected override EditText CreateNativeControl()
|
||||
{
|
||||
return new PickerEditText(Context);
|
||||
}
|
||||
|
||||
protected override EditText EditText => Control;
|
||||
|
||||
protected override void UpdateTitleColor()
|
||||
{
|
||||
_hintColorSwitcher = _hintColorSwitcher ?? new TextColorSwitcher(EditText.HintTextColors, Element.UseLegacyColorManagement());
|
||||
_hintColorSwitcher.UpdateTextColor(EditText, Element.TitleColor, EditText.SetHintTextColor);
|
||||
}
|
||||
|
||||
protected override void UpdateTextColor()
|
||||
{
|
||||
_textColorSwitcher = _textColorSwitcher ?? new TextColorSwitcher(EditText.TextColors, Element.UseLegacyColorManagement());
|
||||
_textColorSwitcher.UpdateTextColor(EditText, Element.TextColor);
|
||||
}
|
||||
protected override void UpdatePlaceHolderText()
|
||||
{
|
||||
EditText.Hint = Element.Title;
|
||||
}
|
||||
|
||||
protected override void UpdateGravity()
|
||||
{
|
||||
EditText.Gravity = Element.HorizontalTextAlignment.ToHorizontalGravityFlags() | Element.VerticalTextAlignment.ToVerticalGravityFlags();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,856 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Android.Content;
|
||||
using Android.OS;
|
||||
using Android.Views;
|
||||
using Android.Views.Animations;
|
||||
using Microsoft.Maui.Controls.Internals;
|
||||
using AView = Android.Views.View;
|
||||
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||
{
|
||||
internal class Platform : BindableObject, IPlatformLayout, INavigation, IDisposable
|
||||
{
|
||||
readonly Context _context;
|
||||
readonly PlatformRenderer _renderer;
|
||||
bool _disposed;
|
||||
bool _navAnimationInProgress;
|
||||
NavigationModel _navModel = new NavigationModel();
|
||||
NavigationModel _previousNavModel = null;
|
||||
readonly bool _embedded;
|
||||
|
||||
internal static string PackageName { get; private set; }
|
||||
internal static string GetPackageName() => PackageName;
|
||||
|
||||
internal const string CloseContextActionsSignalName = "Xamarin.CloseContextActions";
|
||||
|
||||
internal static readonly BindableProperty RendererProperty = BindableProperty.CreateAttached("Renderer", typeof(IVisualElementRenderer), typeof(Platform), default(IVisualElementRenderer),
|
||||
propertyChanged: (bindable, oldvalue, newvalue) =>
|
||||
{
|
||||
var view = bindable as VisualElement;
|
||||
if (view != null)
|
||||
view.IsPlatformEnabled = newvalue != null;
|
||||
});
|
||||
|
||||
public Platform(Context context) : this(context, false)
|
||||
{
|
||||
}
|
||||
|
||||
public Platform(Context context, bool embedded)
|
||||
{
|
||||
_embedded = embedded;
|
||||
_context = context;
|
||||
PackageName = context?.PackageName;
|
||||
_renderer = new PlatformRenderer(context, this);
|
||||
var activity = _context.GetActivity();
|
||||
|
||||
if (embedded && activity != null)
|
||||
{
|
||||
// Set up handling of DisplayAlert/DisplayActionSheet/UpdateProgressBarVisibility
|
||||
if (_context == null)
|
||||
{
|
||||
// Can't show dialogs if it's not an activity
|
||||
return;
|
||||
}
|
||||
|
||||
PopupManager.Subscribe(_context.GetActivity());
|
||||
return;
|
||||
}
|
||||
|
||||
FormsAppCompatActivity.BackPressed += HandleBackPressed;
|
||||
}
|
||||
|
||||
internal bool NavAnimationInProgress
|
||||
{
|
||||
get { return _navAnimationInProgress; }
|
||||
set
|
||||
{
|
||||
if (_navAnimationInProgress == value)
|
||||
return;
|
||||
_navAnimationInProgress = value;
|
||||
if (value)
|
||||
MessagingCenter.Send(this, CloseContextActionsSignalName);
|
||||
}
|
||||
}
|
||||
|
||||
Page Page { get; set; }
|
||||
|
||||
IPageController CurrentPageController => _navModel.CurrentPage;
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
|
||||
FormsAppCompatActivity.BackPressed -= HandleBackPressed;
|
||||
|
||||
SetPage(null);
|
||||
|
||||
var activity = _context?.GetActivity();
|
||||
if (_embedded && activity != null)
|
||||
{
|
||||
PopupManager.Unsubscribe(activity);
|
||||
}
|
||||
}
|
||||
|
||||
void INavigation.InsertPageBefore(Page page, Page before)
|
||||
{
|
||||
throw new InvalidOperationException("InsertPageBefore is not supported globally on Android, please use a NavigationPage.");
|
||||
}
|
||||
|
||||
IReadOnlyList<Page> INavigation.ModalStack => _navModel.Modals.ToList();
|
||||
|
||||
IReadOnlyList<Page> INavigation.NavigationStack => new List<Page>();
|
||||
|
||||
Task<Page> INavigation.PopAsync()
|
||||
{
|
||||
return ((INavigation)this).PopAsync(true);
|
||||
}
|
||||
|
||||
Task<Page> INavigation.PopAsync(bool animated)
|
||||
{
|
||||
throw new InvalidOperationException("PopAsync is not supported globally on Android, please use a NavigationPage.");
|
||||
}
|
||||
|
||||
Task<Page> INavigation.PopModalAsync()
|
||||
{
|
||||
return ((INavigation)this).PopModalAsync(true);
|
||||
}
|
||||
|
||||
Task<Page> INavigation.PopModalAsync(bool animated)
|
||||
{
|
||||
Page modal = _navModel.PopModal();
|
||||
((IPageController)modal).SendDisappearing();
|
||||
var source = new TaskCompletionSource<Page>();
|
||||
|
||||
IVisualElementRenderer modalRenderer = GetRenderer(modal);
|
||||
if (modalRenderer != null)
|
||||
{
|
||||
var modalContainer = modalRenderer.View.Parent as ModalContainer;
|
||||
if (animated)
|
||||
{
|
||||
modalContainer.Animate().TranslationY(_renderer.Height).SetInterpolator(new AccelerateInterpolator(1)).SetDuration(300).SetListener(new GenericAnimatorListener
|
||||
{
|
||||
OnEnd = a =>
|
||||
{
|
||||
modalContainer.RemoveFromParent();
|
||||
modalContainer.Dispose();
|
||||
source.TrySetResult(modal);
|
||||
CurrentPageController?.SendAppearing();
|
||||
modalContainer = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
modalContainer.RemoveFromParent();
|
||||
modalContainer.Dispose();
|
||||
source.TrySetResult(modal);
|
||||
CurrentPageController?.SendAppearing();
|
||||
}
|
||||
}
|
||||
|
||||
UpdateAccessibilityImportance(CurrentPageController as Page, ImportantForAccessibility.Auto, true);
|
||||
|
||||
return source.Task;
|
||||
}
|
||||
|
||||
Task INavigation.PopToRootAsync()
|
||||
{
|
||||
return ((INavigation)this).PopToRootAsync(true);
|
||||
}
|
||||
|
||||
Task INavigation.PopToRootAsync(bool animated)
|
||||
{
|
||||
throw new InvalidOperationException("PopToRootAsync is not supported globally on Android, please use a NavigationPage.");
|
||||
}
|
||||
|
||||
Task INavigation.PushAsync(Page root)
|
||||
{
|
||||
return ((INavigation)this).PushAsync(root, true);
|
||||
}
|
||||
|
||||
Task INavigation.PushAsync(Page root, bool animated)
|
||||
{
|
||||
throw new InvalidOperationException("PushAsync is not supported globally on Android, please use a NavigationPage.");
|
||||
}
|
||||
|
||||
Task INavigation.PushModalAsync(Page modal)
|
||||
{
|
||||
return ((INavigation)this).PushModalAsync(modal, true);
|
||||
}
|
||||
|
||||
async Task INavigation.PushModalAsync(Page modal, bool animated)
|
||||
{
|
||||
CurrentPageController?.SendDisappearing();
|
||||
UpdateAccessibilityImportance(CurrentPageController as Page, ImportantForAccessibility.NoHideDescendants, false);
|
||||
|
||||
_navModel.PushModal(modal);
|
||||
|
||||
Task presentModal = PresentModal(modal, animated);
|
||||
|
||||
await presentModal;
|
||||
|
||||
UpdateAccessibilityImportance(modal, ImportantForAccessibility.Auto, true);
|
||||
|
||||
// Verify that the modal is still on the stack
|
||||
if (_navModel.CurrentPage == modal)
|
||||
((IPageController)modal).SendAppearing();
|
||||
}
|
||||
|
||||
void INavigation.RemovePage(Page page)
|
||||
{
|
||||
throw new InvalidOperationException("RemovePage is not supported globally on Android, please use a NavigationPage.");
|
||||
}
|
||||
|
||||
public static SizeRequest GetNativeSize(VisualElement view, double widthConstraint, double heightConstraint)
|
||||
{
|
||||
Performance.Start(out string reference);
|
||||
|
||||
IVisualElementRenderer visualElementRenderer = GetRenderer(view);
|
||||
|
||||
if (visualElementRenderer == null || visualElementRenderer.View.IsDisposed())
|
||||
{
|
||||
if (view is IView iView)
|
||||
return new SizeRequest(iView.Handler.GetDesiredSize(widthConstraint, heightConstraint));
|
||||
|
||||
return new SizeRequest(Size.Zero, Size.Zero);
|
||||
}
|
||||
|
||||
var context = visualElementRenderer.View.Context;
|
||||
|
||||
// negative numbers have special meanings to android they don't to us
|
||||
widthConstraint = widthConstraint <= -1 ? double.PositiveInfinity : context.ToPixels(widthConstraint);
|
||||
heightConstraint = heightConstraint <= -1 ? double.PositiveInfinity : context.ToPixels(heightConstraint);
|
||||
|
||||
bool widthConstrained = !double.IsPositiveInfinity(widthConstraint);
|
||||
bool heightConstrained = !double.IsPositiveInfinity(heightConstraint);
|
||||
|
||||
int widthMeasureSpec = widthConstrained
|
||||
? MeasureSpecFactory.MakeMeasureSpec((int)widthConstraint, MeasureSpecMode.AtMost)
|
||||
: MeasureSpecFactory.MakeMeasureSpec(0, MeasureSpecMode.Unspecified);
|
||||
|
||||
int heightMeasureSpec = heightConstrained
|
||||
? MeasureSpecFactory.MakeMeasureSpec((int)heightConstraint, MeasureSpecMode.AtMost)
|
||||
: MeasureSpecFactory.MakeMeasureSpec(0, MeasureSpecMode.Unspecified);
|
||||
|
||||
SizeRequest rawResult = visualElementRenderer.GetDesiredSize(widthMeasureSpec, heightMeasureSpec);
|
||||
if (rawResult.Minimum == Size.Zero)
|
||||
rawResult.Minimum = rawResult.Request;
|
||||
var result = new SizeRequest(new Size(context.FromPixels(rawResult.Request.Width), context.FromPixels(rawResult.Request.Height)),
|
||||
new Size(context.FromPixels(rawResult.Minimum.Width), context.FromPixels(rawResult.Minimum.Height)));
|
||||
|
||||
if ((widthConstrained && result.Request.Width < widthConstraint)
|
||||
|| (heightConstrained && result.Request.Height < heightConstraint))
|
||||
{
|
||||
// Do a final exact measurement in case the native control needs to fill the container
|
||||
(visualElementRenderer as IViewRenderer)?.MeasureExactly();
|
||||
}
|
||||
|
||||
Performance.Stop(reference);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void ClearRenderer(AView renderedView)
|
||||
{
|
||||
var element = (renderedView as IVisualElementRenderer)?.Element;
|
||||
var view = element as View;
|
||||
if (view != null)
|
||||
{
|
||||
var renderer = GetRenderer(view);
|
||||
if (renderer == renderedView)
|
||||
element.ClearValue(RendererProperty);
|
||||
renderer?.Dispose();
|
||||
renderer = null;
|
||||
}
|
||||
var layout = view as IVisualElementRenderer;
|
||||
layout?.Dispose();
|
||||
layout = null;
|
||||
}
|
||||
|
||||
internal static IVisualElementRenderer CreateRenderer(VisualElement element, Context context)
|
||||
{
|
||||
IVisualElementRenderer renderer = null;
|
||||
|
||||
// temporary hack to fix the following issues
|
||||
// https://github.com/xamarin/Microsoft.Maui.Controls.Compatibility/issues/13261
|
||||
// https://github.com/xamarin/Microsoft.Maui.Controls.Compatibility/issues/12484
|
||||
if (element is RadioButton tv && tv.ResolveControlTemplate() != null)
|
||||
{
|
||||
renderer = new DefaultRenderer(context);
|
||||
}
|
||||
|
||||
// This code is duplicated across all platforms currently
|
||||
// So if any changes are made here please make sure to apply them to other platform.cs files
|
||||
if (renderer == null)
|
||||
{
|
||||
IViewHandler handler = null;
|
||||
|
||||
//TODO: Handle this with AppBuilderHost
|
||||
try
|
||||
{
|
||||
handler = Forms.MauiContext.Handlers.GetHandler(element.GetType());
|
||||
}
|
||||
catch
|
||||
{
|
||||
// TODO define better catch response or define if this is needed?
|
||||
}
|
||||
|
||||
if (handler == null)
|
||||
{
|
||||
renderer = Registrar.Registered.GetHandlerForObject<IVisualElementRenderer>(element, context)
|
||||
?? new DefaultRenderer(context);
|
||||
}
|
||||
// This means the only thing registered is the RendererToHandlerShim
|
||||
// Which is only used when you are running a .NET MAUI app
|
||||
// This indicates that the user hasn't registered a specific handler for this given type
|
||||
else if (handler is RendererToHandlerShim shim)
|
||||
{
|
||||
renderer = shim.VisualElementRenderer;
|
||||
|
||||
if (renderer == null)
|
||||
{
|
||||
renderer = Registrar.Registered.GetHandlerForObject<IVisualElementRenderer>(element, context)
|
||||
?? new DefaultRenderer(context);
|
||||
}
|
||||
}
|
||||
else if (handler is IVisualElementRenderer ver)
|
||||
renderer = ver;
|
||||
else if (handler is IAndroidViewHandler vh)
|
||||
{
|
||||
vh.SetContext(context);
|
||||
renderer = new HandlerToRendererShim(vh);
|
||||
}
|
||||
}
|
||||
|
||||
renderer.SetElement(element);
|
||||
return renderer;
|
||||
}
|
||||
|
||||
internal static IVisualElementRenderer CreateRenderer(VisualElement element, AndroidX.Fragment.App.FragmentManager fragmentManager, Context context)
|
||||
{
|
||||
IVisualElementRenderer renderer = Registrar.Registered.GetHandlerForObject<IVisualElementRenderer>(element, context) ?? new DefaultRenderer(context);
|
||||
|
||||
var managesFragments = renderer as IManageFragments;
|
||||
managesFragments?.SetFragmentManager(fragmentManager);
|
||||
|
||||
renderer.SetElement(element);
|
||||
|
||||
return renderer;
|
||||
}
|
||||
|
||||
public static IVisualElementRenderer CreateRendererWithContext(VisualElement element, Context context)
|
||||
{
|
||||
// This is an interim method to allow public access to CreateRenderer(element, context), which we
|
||||
// can't make public yet because it will break the previewer
|
||||
return CreateRenderer(element, context);
|
||||
}
|
||||
|
||||
public static IVisualElementRenderer GetRenderer(VisualElement bindable)
|
||||
{
|
||||
return (IVisualElementRenderer)bindable?.GetValue(RendererProperty);
|
||||
}
|
||||
|
||||
public static void SetRenderer(VisualElement bindable, IVisualElementRenderer value)
|
||||
{
|
||||
bindable.SetValue(RendererProperty, value);
|
||||
}
|
||||
|
||||
internal ViewGroup GetViewGroup()
|
||||
{
|
||||
return _renderer;
|
||||
}
|
||||
|
||||
void IPlatformLayout.OnLayout(bool changed, int l, int t, int r, int b)
|
||||
{
|
||||
if (Page == null)
|
||||
return;
|
||||
|
||||
if (changed)
|
||||
{
|
||||
LayoutRootPage(Page, r - l, b - t);
|
||||
}
|
||||
|
||||
GetRenderer(Page)?.UpdateLayout();
|
||||
|
||||
for (var i = 0; i < _renderer.ChildCount; i++)
|
||||
{
|
||||
AView child = _renderer.GetChildAt(i);
|
||||
if (child is ModalContainer)
|
||||
{
|
||||
child.Measure(MeasureSpecFactory.MakeMeasureSpec(r - l, MeasureSpecMode.Exactly), MeasureSpecFactory.MakeMeasureSpec(t - b, MeasureSpecMode.Exactly));
|
||||
child.Layout(l, t, r, b);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnBindingContextChanged()
|
||||
{
|
||||
SetInheritedBindingContext(Page, BindingContext);
|
||||
|
||||
base.OnBindingContextChanged();
|
||||
}
|
||||
|
||||
internal void SettingNewPage()
|
||||
{
|
||||
if (Page != null)
|
||||
{
|
||||
_previousNavModel = _navModel;
|
||||
_navModel = new NavigationModel();
|
||||
}
|
||||
}
|
||||
|
||||
internal void SetPage(Page newRoot)
|
||||
{
|
||||
if (Page == newRoot)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (Page != null)
|
||||
{
|
||||
var navModel = (_previousNavModel ?? _navModel);
|
||||
foreach (var rootPage in navModel.Roots)
|
||||
{
|
||||
if (GetRenderer(rootPage) is ILifeCycleState nr)
|
||||
nr.MarkedForDispose = true;
|
||||
}
|
||||
|
||||
var viewsToRemove = new List<AView>();
|
||||
var renderersToDispose = new List<IVisualElementRenderer>();
|
||||
|
||||
for (int i = 0; i < _renderer.ChildCount; i++)
|
||||
viewsToRemove.Add(_renderer.GetChildAt(i));
|
||||
|
||||
foreach (var root in navModel.Roots)
|
||||
renderersToDispose.Add(GetRenderer(root));
|
||||
|
||||
SetPageInternal(newRoot);
|
||||
|
||||
Cleanup(viewsToRemove, renderersToDispose);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetPageInternal(newRoot);
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAccessibilityImportance(Page page, ImportantForAccessibility importantForAccessibility, bool forceFocus)
|
||||
{
|
||||
|
||||
var pageRenderer = GetRenderer(page);
|
||||
if (pageRenderer?.View == null)
|
||||
return;
|
||||
pageRenderer.View.ImportantForAccessibility = importantForAccessibility;
|
||||
if (forceFocus)
|
||||
pageRenderer.View.SendAccessibilityEvent(global::Android.Views.Accessibility.EventTypes.ViewFocused);
|
||||
|
||||
}
|
||||
|
||||
void SetPageInternal(Page newRoot)
|
||||
{
|
||||
var layout = false;
|
||||
|
||||
if (Page != null)
|
||||
{
|
||||
// if _previousNavModel has been set than _navModel has already been reinitialized
|
||||
if (_previousNavModel != null)
|
||||
{
|
||||
_previousNavModel = null;
|
||||
if (_navModel == null)
|
||||
_navModel = new NavigationModel();
|
||||
}
|
||||
else
|
||||
_navModel = new NavigationModel();
|
||||
|
||||
layout = true;
|
||||
}
|
||||
|
||||
if (newRoot == null)
|
||||
{
|
||||
Page = null;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
_navModel.Push(newRoot, null);
|
||||
|
||||
Page = newRoot;
|
||||
|
||||
AddChild(Page, layout);
|
||||
|
||||
Application.Current.NavigationProxy.Inner = this;
|
||||
}
|
||||
|
||||
void Cleanup(List<AView> viewsToRemove, List<IVisualElementRenderer> renderersToDispose)
|
||||
{
|
||||
// If trigger by dispose, cleanup now, otherwise queue it for later
|
||||
if (_disposed)
|
||||
{
|
||||
DoCleanup();
|
||||
}
|
||||
else
|
||||
{
|
||||
new Handler(Looper.MainLooper).Post(DoCleanup);
|
||||
}
|
||||
|
||||
void DoCleanup()
|
||||
{
|
||||
for (int i = 0; i < viewsToRemove.Count; i++)
|
||||
{
|
||||
AView view = viewsToRemove[i];
|
||||
_renderer?.RemoveView(view);
|
||||
}
|
||||
|
||||
for (int i = 0; i < renderersToDispose.Count; i++)
|
||||
{
|
||||
IVisualElementRenderer rootRenderer = renderersToDispose[i];
|
||||
rootRenderer?.Element.ClearValue(RendererProperty);
|
||||
rootRenderer?.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AddChild(Page page, bool layout = false)
|
||||
{
|
||||
if (page == null)
|
||||
return;
|
||||
|
||||
if (GetRenderer(page) != null)
|
||||
return;
|
||||
|
||||
IVisualElementRenderer renderView = CreateRenderer(page, _context);
|
||||
SetRenderer(page, renderView);
|
||||
|
||||
if (layout)
|
||||
LayoutRootPage(page, _renderer.Width, _renderer.Height);
|
||||
|
||||
_renderer.AddView(renderView.View);
|
||||
}
|
||||
|
||||
bool HandleBackPressed(object sender, EventArgs e)
|
||||
{
|
||||
if (NavAnimationInProgress)
|
||||
return true;
|
||||
|
||||
Page root = _navModel.Roots.LastOrDefault();
|
||||
bool handled = root?.SendBackButtonPressed() ?? false;
|
||||
|
||||
return handled;
|
||||
}
|
||||
|
||||
void LayoutRootPage(Page page, int width, int height)
|
||||
{
|
||||
page.Layout(new Rectangle(0, 0, _context.FromPixels(width), _context.FromPixels(height)));
|
||||
}
|
||||
|
||||
Task PresentModal(Page modal, bool animated)
|
||||
{
|
||||
var modalContainer = new ModalContainer(_context, modal);
|
||||
|
||||
_renderer.AddView(modalContainer);
|
||||
|
||||
var source = new TaskCompletionSource<bool>();
|
||||
NavAnimationInProgress = true;
|
||||
if (animated)
|
||||
{
|
||||
modalContainer.TranslationY = _renderer.Height;
|
||||
modalContainer.Animate().TranslationY(0).SetInterpolator(new DecelerateInterpolator(1)).SetDuration(300).SetListener(new GenericAnimatorListener
|
||||
{
|
||||
OnEnd = a =>
|
||||
{
|
||||
source.TrySetResult(false);
|
||||
modalContainer = null;
|
||||
},
|
||||
OnCancel = a =>
|
||||
{
|
||||
source.TrySetResult(true);
|
||||
modalContainer = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
source.TrySetResult(true);
|
||||
}
|
||||
|
||||
return source.Task.ContinueWith(task => NavAnimationInProgress = false);
|
||||
}
|
||||
|
||||
sealed class ModalContainer : ViewGroup
|
||||
{
|
||||
AView _backgroundView;
|
||||
bool _disposed;
|
||||
Page _modal;
|
||||
IVisualElementRenderer _renderer;
|
||||
|
||||
public ModalContainer(Context context, Page modal) : base(context)
|
||||
{
|
||||
_modal = modal;
|
||||
|
||||
_backgroundView = new AView(context);
|
||||
UpdateBackgroundColor();
|
||||
AddView(_backgroundView);
|
||||
|
||||
_renderer = CreateRenderer(modal, context);
|
||||
SetRenderer(modal, _renderer);
|
||||
|
||||
AddView(_renderer.View);
|
||||
|
||||
Id = Platform.GenerateViewId();
|
||||
|
||||
_modal.PropertyChanged += OnModalPagePropertyChanged;
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
|
||||
if (disposing)
|
||||
{
|
||||
RemoveAllViews();
|
||||
if (_renderer != null)
|
||||
{
|
||||
_renderer.Dispose();
|
||||
_renderer = null;
|
||||
_modal.ClearValue(RendererProperty);
|
||||
_modal.PropertyChanged -= OnModalPagePropertyChanged;
|
||||
_modal = null;
|
||||
}
|
||||
|
||||
if (_backgroundView != null)
|
||||
{
|
||||
_backgroundView.Dispose();
|
||||
_backgroundView = null;
|
||||
}
|
||||
}
|
||||
|
||||
_disposed = true;
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
protected override void OnLayout(bool changed, int l, int t, int r, int b)
|
||||
{
|
||||
if (changed)
|
||||
{
|
||||
_modal.Layout(new Rectangle(0, 0, Context.FromPixels(r - l), Context.FromPixels(b - t)));
|
||||
_backgroundView.Layout(0, 0, r - l, b - t);
|
||||
}
|
||||
|
||||
_renderer.UpdateLayout();
|
||||
}
|
||||
|
||||
void OnModalPagePropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName == Page.BackgroundColorProperty.PropertyName)
|
||||
UpdateBackgroundColor();
|
||||
}
|
||||
|
||||
void UpdateBackgroundColor()
|
||||
{
|
||||
Color modalBkgndColor = _modal.BackgroundColor;
|
||||
if (modalBkgndColor.IsDefault)
|
||||
_backgroundView.SetWindowBackground();
|
||||
else
|
||||
_backgroundView.SetBackgroundColor(modalBkgndColor.ToAndroid());
|
||||
}
|
||||
}
|
||||
|
||||
internal static int GenerateViewId()
|
||||
{
|
||||
// getting unique Id's is an art, and I consider myself the Jackson Pollock of the field
|
||||
if ((int)Forms.SdkInt >= 17)
|
||||
return global::Android.Views.View.GenerateViewId();
|
||||
|
||||
// Numbers higher than this range reserved for xml
|
||||
// If we roll over, it can be exceptionally problematic for the user if they are still retaining things, android's internal implementation is
|
||||
// basically identical to this except they do a lot of locking we don't have to because we know we only do this
|
||||
// from the UI thread
|
||||
if (s_id >= 0x00ffffff)
|
||||
s_id = 0x00000400;
|
||||
|
||||
return s_id++;
|
||||
}
|
||||
|
||||
static int s_id = 0x00000400;
|
||||
|
||||
#region Statics
|
||||
|
||||
public static implicit operator ViewGroup(Platform canvas)
|
||||
{
|
||||
return canvas._renderer;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Previewer Stuff
|
||||
|
||||
internal static readonly BindableProperty PageContextProperty =
|
||||
BindableProperty.CreateAttached("PageContext", typeof(Context), typeof(Platform), null);
|
||||
|
||||
internal static void SetPageContext(BindableObject bindable, Context context)
|
||||
{
|
||||
// Set a context for this page and its child controls
|
||||
bindable.SetValue(PageContextProperty, context);
|
||||
}
|
||||
|
||||
static Context GetPreviewerContext(Element element)
|
||||
{
|
||||
// Walk up the tree and find the Page this element is hosted in
|
||||
Element parent = element;
|
||||
while (!Application.IsApplicationOrNull(parent.RealParent))
|
||||
{
|
||||
parent = parent.RealParent;
|
||||
}
|
||||
|
||||
// If a page is found, return the PageContext set by the previewer for that page (if any)
|
||||
return (parent as Page)?.GetValue(PageContextProperty) as Context;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
internal class DefaultRenderer : VisualElementRenderer<View>, ILayoutChanges
|
||||
{
|
||||
public bool NotReallyHandled { get; private set; }
|
||||
|
||||
IOnTouchListener _touchListener;
|
||||
bool _disposed;
|
||||
bool _hasLayoutOccurred;
|
||||
|
||||
readonly MotionEventHelper _motionEventHelper = new MotionEventHelper();
|
||||
|
||||
public DefaultRenderer(Context context) : base(context)
|
||||
{
|
||||
ChildrenDrawingOrderEnabled = true;
|
||||
}
|
||||
|
||||
internal void NotifyFakeHandling()
|
||||
{
|
||||
NotReallyHandled = true;
|
||||
}
|
||||
|
||||
public override bool OnTouchEvent(MotionEvent e)
|
||||
{
|
||||
if (base.OnTouchEvent(e))
|
||||
return true;
|
||||
|
||||
return _motionEventHelper.HandleMotionEvent(Parent, e);
|
||||
}
|
||||
|
||||
protected override void OnElementChanged(ElementChangedEventArgs<View> e)
|
||||
{
|
||||
base.OnElementChanged(e);
|
||||
|
||||
_motionEventHelper.UpdateElement(e.NewElement);
|
||||
}
|
||||
|
||||
public override bool DispatchTouchEvent(MotionEvent e)
|
||||
{
|
||||
#region Excessive explanation
|
||||
// Normally dispatchTouchEvent feeds the touch events to its children one at a time, top child first,
|
||||
// (and only to the children in the hit-test area of the event) stopping as soon as one of them has handled
|
||||
// the event.
|
||||
|
||||
// But to be consistent across the platforms, we don't want this behavior; if an element is not input transparent
|
||||
// we don't want an event to "pass through it" and be handled by an element "behind/under" it. We just want the processing
|
||||
// to end after the first non-transparent child, regardless of whether the event has been handled.
|
||||
|
||||
// This is only an issue for a couple of controls; the interactive controls (switch, button, slider, etc) already "handle" their touches
|
||||
// and the events don't propagate to other child controls. But for image, label, and box that doesn't happen. We can't have those controls
|
||||
// lie about their events being handled because then the events won't propagate to *parent* controls (e.g., a frame with a label in it would
|
||||
// never get a tap gesture from the label). In other words, we *want* parent propagation, but *do not want* sibling propagation. So we need to short-circuit
|
||||
// base.DispatchTouchEvent here, but still return "false".
|
||||
|
||||
// Duplicating the logic of ViewGroup.dispatchTouchEvent and modifying it slightly for our purposes is a non-starter; the method is too
|
||||
// complex and does a lot of micro-optimization. Instead, we provide a signalling mechanism for the controls which don't already "handle" touch
|
||||
// events to tell us that they will be lying about handling their event; they then return "true" to short-circuit base.DispatchTouchEvent.
|
||||
|
||||
// The container gets this message and after it gets the "handled" result from dispatchTouchEvent,
|
||||
// it then knows to ignore that result and return false/unhandled. This allows the event to propagate up the tree.
|
||||
#endregion
|
||||
|
||||
NotReallyHandled = false;
|
||||
|
||||
var result = base.DispatchTouchEvent(e);
|
||||
|
||||
if (result && NotReallyHandled)
|
||||
{
|
||||
// If the child control returned true from its touch event handler but signalled that it was a fake "true", then we
|
||||
// don't consider the event truly "handled" yet.
|
||||
// Since a child control short-circuited the normal dispatchTouchEvent stuff, this layout never got the chance for
|
||||
// IOnTouchListener.OnTouch and the OnTouchEvent override to try handling the touches; we'll do that now
|
||||
// Any associated Touch Listeners are called from DispatchTouchEvents if all children of this view return false
|
||||
// So here we are simulating both calls that would have typically been called from inside DispatchTouchEvent
|
||||
// but were not called due to the fake "true"
|
||||
result = _touchListener?.OnTouch(this, e) ?? false;
|
||||
return result || OnTouchEvent(e);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override void SetOnTouchListener(IOnTouchListener l)
|
||||
{
|
||||
_touchListener = l;
|
||||
base.SetOnTouchListener(l);
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (_disposed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_disposed = true;
|
||||
|
||||
if (disposing)
|
||||
SetOnTouchListener(null);
|
||||
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
bool ILayoutChanges.HasLayoutOccurred => _hasLayoutOccurred;
|
||||
|
||||
protected override void OnLayout(bool changed, int left, int top, int right, int bottom)
|
||||
{
|
||||
base.OnLayout(changed, left, top, right, bottom);
|
||||
_hasLayoutOccurred = true;
|
||||
}
|
||||
}
|
||||
|
||||
internal static string ResolveMsAppDataUri(Uri uri)
|
||||
{
|
||||
if (uri.Scheme == "ms-appdata")
|
||||
{
|
||||
string filePath = string.Empty;
|
||||
|
||||
if (uri.LocalPath.StartsWith("/local"))
|
||||
{
|
||||
filePath = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments), uri.LocalPath.Substring(7));
|
||||
}
|
||||
else if (uri.LocalPath.StartsWith("/temp"))
|
||||
{
|
||||
filePath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), uri.LocalPath.Substring(6));
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentException("Invalid Uri", "Source");
|
||||
}
|
||||
|
||||
return filePath;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentException("uri");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,339 @@
|
|||
using System;
|
||||
using System.ComponentModel;
|
||||
using Android.Content;
|
||||
using Android.Graphics;
|
||||
using Android.Util;
|
||||
using Android.Views;
|
||||
using Android.Widget;
|
||||
using AndroidX.AppCompat.Widget;
|
||||
using AndroidX.Core.View;
|
||||
using Microsoft.Maui.Controls.Internals;
|
||||
using Microsoft.Maui.Controls.Compatibility.Platform.Android.FastRenderers;
|
||||
using AColor = Android.Graphics.Color;
|
||||
using AView = Android.Views.View;
|
||||
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||
{
|
||||
public class RadioButtonRenderer : AppCompatRadioButton,
|
||||
IBorderVisualElementRenderer, IVisualElementRenderer, IViewRenderer, ITabStop,
|
||||
AView.IOnFocusChangeListener,
|
||||
CompoundButton.IOnCheckedChangeListener
|
||||
{
|
||||
float _defaultFontSize;
|
||||
int? _defaultLabelFor;
|
||||
Typeface _defaultTypeface;
|
||||
bool _isDisposed;
|
||||
bool _inputTransparent;
|
||||
Lazy<TextColorSwitcher> _textColorSwitcher;
|
||||
AutomationPropertiesProvider _automationPropertiesProvider;
|
||||
VisualElementTracker _tracker;
|
||||
VisualElementRenderer _visualElementRenderer;
|
||||
BorderBackgroundManager _backgroundTracker;
|
||||
IPlatformElementConfiguration<PlatformConfiguration.Android, RadioButton> _platformElementConfiguration;
|
||||
|
||||
public event EventHandler<VisualElementChangedEventArgs> ElementChanged;
|
||||
public event EventHandler<PropertyChangedEventArgs> ElementPropertyChanged;
|
||||
|
||||
public RadioButtonRenderer(Context context) : base(context)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
protected RadioButton Element { get; set; }
|
||||
protected AppCompatRadioButton Control => this;
|
||||
|
||||
VisualElement IBorderVisualElementRenderer.Element => Element;
|
||||
|
||||
VisualElement IVisualElementRenderer.Element => Element;
|
||||
AView IVisualElementRenderer.View => this;
|
||||
ViewGroup IVisualElementRenderer.ViewGroup => null;
|
||||
VisualElementTracker IVisualElementRenderer.Tracker => _tracker;
|
||||
|
||||
AView ITabStop.TabStop => this;
|
||||
|
||||
void IOnFocusChangeListener.OnFocusChange(AView v, bool hasFocus)
|
||||
{
|
||||
((IElementController)Element).SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, hasFocus);
|
||||
}
|
||||
|
||||
SizeRequest IVisualElementRenderer.GetDesiredSize(int widthConstraint, int heightConstraint)
|
||||
{
|
||||
Measure(widthConstraint, heightConstraint);
|
||||
return new SizeRequest(new Size(MeasuredWidth, MeasuredHeight));
|
||||
}
|
||||
|
||||
void IVisualElementRenderer.SetElement(VisualElement element)
|
||||
{
|
||||
if (element == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(element));
|
||||
}
|
||||
|
||||
if (!(element is RadioButton))
|
||||
{
|
||||
throw new ArgumentException($"{nameof(element)} must be of type {nameof(RadioButton)}");
|
||||
}
|
||||
|
||||
RadioButton oldElement = Element;
|
||||
Element = (RadioButton)element;
|
||||
|
||||
Performance.Start(out string reference);
|
||||
|
||||
if (oldElement != null)
|
||||
{
|
||||
oldElement.PropertyChanged -= OnElementPropertyChanged;
|
||||
}
|
||||
|
||||
element.PropertyChanged += OnElementPropertyChanged;
|
||||
|
||||
if (_tracker == null)
|
||||
{
|
||||
// Can't set up the tracker in the constructor because it access the Element (for now)
|
||||
SetTracker(new VisualElementTracker(this));
|
||||
}
|
||||
if (_visualElementRenderer == null)
|
||||
{
|
||||
_visualElementRenderer = new VisualElementRenderer(this);
|
||||
}
|
||||
|
||||
OnElementChanged(new ElementChangedEventArgs<RadioButton>(oldElement, Element));
|
||||
|
||||
SendVisualElementInitialized(element, this);
|
||||
|
||||
Performance.Stop(reference);
|
||||
}
|
||||
|
||||
void IVisualElementRenderer.SetLabelFor(int? id)
|
||||
{
|
||||
if (_defaultLabelFor == null)
|
||||
{
|
||||
_defaultLabelFor = ViewCompat.GetLabelFor(this);
|
||||
}
|
||||
|
||||
ViewCompat.SetLabelFor(this, (int)(id ?? _defaultLabelFor));
|
||||
}
|
||||
|
||||
void IVisualElementRenderer.UpdateLayout() => _tracker?.UpdateLayout();
|
||||
|
||||
void IViewRenderer.MeasureExactly()
|
||||
{
|
||||
ViewRenderer.MeasureExactly(this, Element, Context);
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (_isDisposed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_isDisposed = true;
|
||||
|
||||
if (disposing)
|
||||
{
|
||||
SetOnClickListener(null);
|
||||
SetOnTouchListener(null);
|
||||
OnFocusChangeListener = null;
|
||||
SetOnCheckedChangeListener(null);
|
||||
|
||||
if (Element != null)
|
||||
{
|
||||
Element.PropertyChanged -= OnElementPropertyChanged;
|
||||
}
|
||||
|
||||
_automationPropertiesProvider?.Dispose();
|
||||
_tracker?.Dispose();
|
||||
_visualElementRenderer?.Dispose();
|
||||
_backgroundTracker?.Dispose();
|
||||
_backgroundTracker = null;
|
||||
|
||||
if (Element != null)
|
||||
{
|
||||
if (AppCompat.Platform.GetRenderer(Element) == this)
|
||||
Element.ClearValue(AppCompat.Platform.RendererProperty);
|
||||
}
|
||||
}
|
||||
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
public override bool OnTouchEvent(MotionEvent e)
|
||||
{
|
||||
if (!Enabled || (_inputTransparent && Enabled))
|
||||
return false;
|
||||
|
||||
return base.OnTouchEvent(e);
|
||||
}
|
||||
|
||||
protected virtual void OnElementChanged(ElementChangedEventArgs<RadioButton> e)
|
||||
{
|
||||
if (e.NewElement != null && !_isDisposed)
|
||||
{
|
||||
this.EnsureId();
|
||||
|
||||
_textColorSwitcher = new Lazy<TextColorSwitcher>(
|
||||
() => new TextColorSwitcher(TextColors, e.NewElement.UseLegacyColorManagement()));
|
||||
|
||||
UpdateFont();
|
||||
UpdateTextColor();
|
||||
UpdateInputTransparent();
|
||||
UpdateBackgroundColor();
|
||||
UpdateIsChecked();
|
||||
UpdateContent();
|
||||
ElevationHelper.SetElevation(this, e.NewElement);
|
||||
}
|
||||
|
||||
ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));
|
||||
}
|
||||
|
||||
protected virtual void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName == RadioButton.TextColorProperty.PropertyName)
|
||||
{
|
||||
UpdateTextColor();
|
||||
}
|
||||
else if (e.IsOneOf(RadioButton.FontAttributesProperty, RadioButton.FontFamilyProperty, RadioButton.FontSizeProperty))
|
||||
{
|
||||
UpdateFont();
|
||||
}
|
||||
else if (e.PropertyName == VisualElement.InputTransparentProperty.PropertyName)
|
||||
{
|
||||
UpdateInputTransparent();
|
||||
}
|
||||
else if (e.PropertyName == RadioButton.IsCheckedProperty.PropertyName)
|
||||
{
|
||||
UpdateIsChecked();
|
||||
}
|
||||
else if (e.PropertyName == RadioButton.ContentProperty.PropertyName)
|
||||
{
|
||||
UpdateContent();
|
||||
}
|
||||
|
||||
ElementPropertyChanged?.Invoke(this, e);
|
||||
}
|
||||
|
||||
void SetTracker(VisualElementTracker tracker)
|
||||
{
|
||||
_tracker = tracker;
|
||||
}
|
||||
|
||||
void UpdateBackgroundColor()
|
||||
{
|
||||
_backgroundTracker?.UpdateDrawable();
|
||||
}
|
||||
|
||||
internal void OnNativeFocusChanged(bool hasFocus)
|
||||
{
|
||||
}
|
||||
|
||||
internal void SendVisualElementInitialized(VisualElement element, AView nativeView)
|
||||
{
|
||||
element.SendViewInitialized(nativeView);
|
||||
}
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
_automationPropertiesProvider = new AutomationPropertiesProvider(this);
|
||||
_backgroundTracker = new BorderBackgroundManager(this);
|
||||
|
||||
SoundEffectsEnabled = false;
|
||||
OnFocusChangeListener = this;
|
||||
SetOnCheckedChangeListener(this);
|
||||
|
||||
Tag = this;
|
||||
}
|
||||
|
||||
void UpdateFont()
|
||||
{
|
||||
if (Element == null || _isDisposed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Font font = Font.OfSize(Element.FontFamily, Element.FontSize).WithAttributes(Element.FontAttributes);
|
||||
|
||||
if (font == Font.Default && _defaultFontSize == 0f)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_defaultFontSize == 0f)
|
||||
{
|
||||
_defaultTypeface = Typeface;
|
||||
_defaultFontSize = TextSize;
|
||||
}
|
||||
|
||||
if (font == Font.Default)
|
||||
{
|
||||
Typeface = _defaultTypeface;
|
||||
SetTextSize(ComplexUnitType.Px, _defaultFontSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
Typeface = font.ToTypeface();
|
||||
SetTextSize(ComplexUnitType.Sp, font.ToScaledPixel());
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateInputTransparent()
|
||||
{
|
||||
if (Element == null || _isDisposed)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_inputTransparent = Element.InputTransparent;
|
||||
}
|
||||
|
||||
void UpdateTextColor()
|
||||
{
|
||||
if (Element == null || _isDisposed || _textColorSwitcher == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_textColorSwitcher.Value.UpdateTextColor(this, Element.TextColor);
|
||||
}
|
||||
|
||||
void UpdateIsChecked()
|
||||
{
|
||||
if (Element == null || Control == null)
|
||||
return;
|
||||
|
||||
Checked = ((RadioButton)Element).IsChecked;
|
||||
}
|
||||
|
||||
void UpdateContent()
|
||||
{
|
||||
if (Element == null || Control == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Control.Text = Element.ContentAsString();
|
||||
}
|
||||
|
||||
void IOnCheckedChangeListener.OnCheckedChanged(CompoundButton buttonView, bool isChecked)
|
||||
{
|
||||
((IElementController)Element).SetValueFromRenderer(RadioButton.IsCheckedProperty, isChecked);
|
||||
}
|
||||
|
||||
float IBorderVisualElementRenderer.ShadowRadius => ShadowRadius;
|
||||
float IBorderVisualElementRenderer.ShadowDx => ShadowDx;
|
||||
float IBorderVisualElementRenderer.ShadowDy => ShadowDy;
|
||||
AColor IBorderVisualElementRenderer.ShadowColor => ShadowColor;
|
||||
bool IBorderVisualElementRenderer.IsShadowEnabled() => true;
|
||||
AView IBorderVisualElementRenderer.View => this;
|
||||
|
||||
IPlatformElementConfiguration<PlatformConfiguration.Android, RadioButton> OnThisPlatform()
|
||||
{
|
||||
if (_platformElementConfiguration == null)
|
||||
_platformElementConfiguration = Element.OnThisPlatform();
|
||||
|
||||
return _platformElementConfiguration;
|
||||
}
|
||||
|
||||
bool IBorderVisualElementRenderer.UseDefaultPadding() => true;
|
||||
bool IBorderVisualElementRenderer.UseDefaultShadow() => true;
|
||||
}
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
using Android.Runtime;
|
||||
|
||||
[assembly: ResourceDesigner("Xamarin.Forms.Platform.Android.Resource", IsApplication = false)]
|
||||
[assembly: ResourceDesigner("Microsoft.Maui.Controls.Compatibility.Platform.Android.Resource", IsApplication = false)]
|
||||
|
||||
namespace Xamarin.Forms.Platform.Android
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||
{
|
||||
public class Resource
|
||||
{
|
|
@ -6,7 +6,7 @@ using Android.Views;
|
|||
using AView = Android.Views.View;
|
||||
using LP = Android.Views.ViewGroup.LayoutParams;
|
||||
|
||||
namespace Xamarin.Forms.Platform.Android.AppCompat
|
||||
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||
{
|
||||
internal class ShellFragmentContainer : FragmentContainer
|
||||
{
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче