From 97a27fd29537a72b68217f709f3ab43b205e1c10 Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Tue, 9 Jan 2024 16:09:35 -0600 Subject: [PATCH] [Xamarin.Android.Build.Tasks] remove `@(_AndroidAssemblySkipCases)` In an effort to remove old, unused code, we should be able to remove the following related to the old Android.Support.* libraries: * `Xamarin.Android.SkipCases.projitems` and the `@(_AndroidAssemblySkipCases)` item group. This was a build performance optimization added in 02c07ed6 that would *skip* a build step that normalized casing for `.dll` files with an embedded `__AndroidLibraryProjects__.zip`. This optimization is not needed at all for `.aar` files. In .NET 9 projects, we don't create or embed `__AndroidLibraryProjects__.zip`, so modern projects don't need this optimization. Instead we bundle a `MyLibrary.aar` alongside `MyLibrary.dll` inside of a `MyLibrary` NuGet package. * Automatic trimming of the `Xamarin.Android.Support.*` assemblies Modern packages mark themselves trimmable with `$(IsTrimmable)` or the assembly-level attribute. Let's just remove the case for `Android.Support` here. --- .../installers/create-installers.targets | 1 - .../Microsoft.Android.Sdk.ILLink.targets | 2 +- .../Xamarin.Android.Build.Tasks.targets | 3 - .../Xamarin.Android.Common.targets | 5 - .../Xamarin.Android.SkipCases.projitems | 187 ------------------ 5 files changed, 1 insertion(+), 197 deletions(-) delete mode 100644 src/Xamarin.Android.Build.Tasks/Xamarin.Android.SkipCases.projitems diff --git a/build-tools/installers/create-installers.targets b/build-tools/installers/create-installers.targets index c9e94ad6403..dbd3982b5bf 100644 --- a/build-tools/installers/create-installers.targets +++ b/build-tools/installers/create-installers.targets @@ -157,7 +157,6 @@ <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.DesignTime.targets" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.EmbeddedResource.targets" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.Javac.targets" /> - <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.SkipCases.projitems" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.Tooling.targets" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.Tools.Aidl.dll" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.Tools.Aidl.pdb" /> diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.ILLink.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.ILLink.targets index 7400de192ff..f380ebb9cc3 100644 --- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.ILLink.targets +++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.ILLink.targets @@ -31,7 +31,7 @@ This file contains the .NET 5-specific targets to customize ILLink Trim="true" /> + Condition=" '$(AndroidLinkMode)' == 'SdkOnly' and ( $([System.String]::Copy(%(Filename)).StartsWith ('Xamarin.AndroidX.')) or $([System.String]::Copy(%(Filename)).StartsWith ('Xamarin.Google.')) or $([System.String]::Copy(%(Filename)).StartsWith ('Xamarin.GooglePlayServices.')) ) "> link diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.targets index f9b06ecc8aa..081fbb15896 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.targets @@ -149,9 +149,6 @@ PreserveNewest - - PreserveNewest - diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index f4138576ffb..0304abd2504 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -376,7 +376,6 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved. - @@ -401,10 +400,6 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved. /> - - - - - - - - <_AndroidAssemblySkipCases> - True - - - - - <_AndroidAssemblySkipCases Include="Xamarin.Android.Arch.Core.Common" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Arch.Core.Runtime" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Arch.Lifecycle.Common" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Arch.Lifecycle.Extensions" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Arch.Lifecycle.LiveData" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Arch.Lifecycle.LiveData.Core" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Arch.Lifecycle.Runtime" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Arch.Lifecycle.ViewModel" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Animated.Vector.Drawable" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Annotations" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.AsyncLayoutInflater" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Collections" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Compat" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Constraint.Layout" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Constraint.Layout.Solver" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Content" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.CoordinaterLayout" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Core.UI" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Core.Utils" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.CursorAdapter" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.CustomTabs" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.CustomView" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Design" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.DocumentFile" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.DrawerLayout" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Dynamic.Animation" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Emoji" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Emoji.AppCompat" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Emoji.Bundled" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Exif" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Fragment" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.HeifWriter" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.InstantVideo" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Interpolator" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Loader" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.LocalBroadcastManager" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Media.Compat" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Percent" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Print" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Recommendation" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Recommendation" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.RecyclerView.Selection" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Slices.Builders" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Slices.Core" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Slices.View" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.SlidingPaneLayout" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.SwipeRefreshLayout" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Transition" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.TV.Provider" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.v13" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.v14.Preference" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.v17.Leanback" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.v17.Preference.Leanback" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.v4" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.v7.AppCompat" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.v7.CardView" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.v7.GridLayout" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.v7.MediaRouter" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.v7.Palette" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.v7.Preference" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.v7.RecyclerView" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.v8.RenderScript" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Vector.Drawable" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.VersionedParcelable" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.ViewPager" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Wear" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.Wearable" /> - <_AndroidAssemblySkipCases Include="Xamarin.Android.Support.WebKit" /> - - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Ads" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Ads.Base" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Ads.Identifier" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Ads.Lite" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Analytics" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Analytics.Impl" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.AppIndexing" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.AppInvite" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.AppState" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Audience" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Auth" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Auth.Api.Phone" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Auth.Base" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Awareness" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Base" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Basement" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Cast" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Cast.Framework" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Clearcut" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.ContextManager" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Drive" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Fido" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Fitness" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Flags" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Games" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Gass" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Gcm" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Identity" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Iid" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.InstantApps" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Location" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Maps" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Measurement" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Measurement.Base" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Nearby" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Oss.Licenses" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Panorama" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Phenotype" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Places" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Places.PlaceReport" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Plus" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.SafetyNet" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Stats" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.TagManager" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.TagManager.Api" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.TagManager.V4.Impl" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Tasks" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Vision" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Vision.Common" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Vision.ImageLabel" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Wallet" /> - <_AndroidAssemblySkipCases Include="Xamarin.GooglePlayServices.Wearable" /> - - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Abt" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Ads" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Ads.Lite" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Analytics" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Analytics.Impl" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.AppIndexing" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Auth" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Auth.Common" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Auth.Interop" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Auth.Module" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Common" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Config" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Core" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Crash" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Database" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Database.Collection" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Database.Connection" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Dynamic.Links" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Firestore" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Functions" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Iid" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Iid.Interop" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Invites" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.JobDispatcher" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Measurement.Connector" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Measurement.Connector.Impl" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Messaging" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.ML.Common" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.ML.Model.Interpreter" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.ML.Vision" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.ML.Vision.Image.Label.Model" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Perf" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.ProtoliteWellKnownTypes" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Storage" /> - <_AndroidAssemblySkipCases Include="Xamarin.Firebase.Storage.Common" /> - - <_AndroidAssemblySkipCases Include="Square.OkHttp" /> - <_AndroidAssemblySkipCases Include="Xamarin.Protobuf.Lite" /> - <_AndroidAssemblySkipCases Include="Xamarin.TensorFlow.Lite" /> - -