From 9c5542f9e47e1eb9278f708130f739e89239d862 Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Tue, 10 Sep 2024 12:38:14 -0500 Subject: [PATCH] [Xamarin.Android.Build.Tasks] remove `$(_InstantRunEnabled)` checks Context: https://github.com/xamarin/monodroid/commit/93ab95e18077d56d9d55ce7b4069a534e2dea35e Context: https://github.com/xamarin/monodroid/commit/2c64cd5f533616ff4751fb1df6bbfc7e170477ae "Enhanced Fast Deployment" was removed from our private sources, so we can now remove the following from our MSBuild logic: * `$(_InstantRunEnabled)` checks from MSBuild targets, it is `false` * `InstantRunEnabled` parameters in any MSBuild tasks or related classes * Usage of the `@(_InstantRunJavaReference)` item group For one parameter of ``, I created a private property `$(_AndroidGenerateNativeAssembly)` that defaults to `true`. In a future PR, we could consider making runtime changes to remove `instant_run_enabled` as well. --- .../Android/Xamarin.Android.Designer.targets | 6 ++---- .../Android/Xamarin.Android.Javac.targets | 11 ++++------- .../Tasks/DetermineJavaLibrariesToCompile.cs | 5 +---- .../Tasks/GenerateJavaStubs.cs | 2 -- .../Tasks/GeneratePackageManagerJava.cs | 4 ---- .../Tasks/PrepareAbiItems.cs | 3 --- .../Tasks/GeneratePackageManagerJavaTests.cs | 1 - ...pplicationConfigNativeAssemblyGenerator.cs | 3 +-- .../Utilities/ManifestDocument.cs | 1 - .../Xamarin.Android.Common.targets | 19 +++---------------- .../Xamarin.Android.D8.targets | 4 ++-- 11 files changed, 13 insertions(+), 46 deletions(-) diff --git a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Designer.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Designer.targets index f25e67a55d5..eae785db248 100644 --- a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Designer.targets +++ b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Designer.targets @@ -99,8 +99,7 @@ Copyright (C) 2016 Xamarin. All rights reserved. FrameworkDirectories="$(_XATargetFrameworkDirectories);$(_XATargetFrameworkDirectories)Facades" AcwMapFile="$(_AcwMapFile)" SupportedAbis="$(_BuildTargetAbis)" - SupportedOSPlatformVersion="$(SupportedOSPlatformVersion)" - InstantRunEnabled="$(_InstantRunEnabled)"> + SupportedOSPlatformVersion="$(SupportedOSPlatformVersion)"> + EnablePreloadAssembliesDefault="$(_AndroidEnablePreloadAssembliesDefault)"> diff --git a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Javac.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Javac.targets index 77aaab750ca..0f05b9e1a0d 100644 --- a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Javac.targets +++ b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Javac.targets @@ -45,8 +45,7 @@ It is shared between "legacy" binding projects and .NET 7+ projects. JavaLibraries="@(AndroidJavaLibrary);@(EmbeddedJar)" ExternalJavaLibraries="@(AndroidExternalJavaLibrary)" LibraryProjectJars="@(ExtractedJarImports)" - DoNotPackageJavaLibraries="@(_ResolvedDoNotPackageAttributes)" - EnableInstantRun="$(_InstantRunEnabled)"> + DoNotPackageJavaLibraries="@(_ResolvedDoNotPackageAttributes)"> @@ -60,15 +59,13 @@ It is shared between "legacy" binding projects and .NET 7+ projects. JavaLibraries="@(AndroidJavaLibrary)" ExternalJavaLibraries="@(AndroidExternalJavaLibrary)" LibraryProjectJars="@(ExtractedJarImports)" - DoNotPackageJavaLibraries="@(_ResolvedDoNotPackageAttributes)" - EnableInstantRun="$(_InstantRunEnabled)"> + DoNotPackageJavaLibraries="@(_ResolvedDoNotPackageAttributes)"> - <_JavaLibrariesToCompileForApp Include="@(_JavaLibrariesToCompile)" Condition=" '$(_InstantRunEnabled)' != 'True' " /> - + <_JavaLibrariesToCompileForApp Include="@(_JavaLibrariesToCompile)" /> @@ -168,7 +165,7 @@ It is shared between "legacy" binding projects and .NET 7+ projects. JavaSourceFiles="@(_JavaSource)" ToolPath="$(JavacToolPath)" ToolExe="$(JavacToolExe)" - Jars="@(_JavaLibrariesToCompile);@(_InstantRunJavaReference);@(_ReferenceJavaLibs)" + Jars="@(_JavaLibrariesToCompile);@(_ReferenceJavaLibs)" JavacTargetVersion="$(JavacTargetVersion)" JavacSourceVersion="$(JavacSourceVersion)" IntermediateOutputPath="$(IntermediateOutputPath)" diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/DetermineJavaLibrariesToCompile.cs b/src/Xamarin.Android.Build.Tasks/Tasks/DetermineJavaLibrariesToCompile.cs index ea060e42bf4..f03bb06b489 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/DetermineJavaLibrariesToCompile.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/DetermineJavaLibrariesToCompile.cs @@ -16,8 +16,6 @@ public class DetermineJavaLibrariesToCompile : AndroidTask [Required] public ITaskItem[] MonoPlatformJarPaths { get; set; } - public bool EnableInstantRun { get; set; } - public ITaskItem[] JavaSourceFiles { get; set; } public ITaskItem[] JavaLibraries { get; set; } @@ -37,8 +35,7 @@ public class DetermineJavaLibrariesToCompile : AndroidTask public override bool RunTask () { var jars = new List (); - if (!EnableInstantRun) - jars.AddRange (MonoPlatformJarPaths); + jars.AddRange (MonoPlatformJarPaths); if (JavaSourceFiles != null) foreach (var jar in JavaSourceFiles.Where (p => Path.GetExtension (p.ItemSpec) == ".jar")) jars.Add (jar); diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/GenerateJavaStubs.cs b/src/Xamarin.Android.Build.Tasks/Tasks/GenerateJavaStubs.cs index 15648b880af..bc1324a5957 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/GenerateJavaStubs.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/GenerateJavaStubs.cs @@ -73,7 +73,6 @@ public class GenerateJavaStubs : AndroidTask public bool EmbedAssemblies { get; set; } public bool NeedsInternet { get; set; } - public bool InstantRunEnabled { get; set; } public bool ErrorOnCustomJavaObject { get; set; } @@ -336,7 +335,6 @@ IList MergeManifest (NativeCodeGenState codeGenState, DictionaryOffline <_AndroidSequencePointsMode Condition=" '$(MonoSymbolArchive)' == 'True' And '$(AndroidUseDebugRuntime)' == 'False' And '$(_AndroidSequencePointsMode)' == ''">Normal <_AndroidSequencePointsMode Condition=" '$(_AndroidSequencePointsMode)' == ''">None - <_InstantRunEnabled Condition=" '$(_InstantRunEnabled)' == '' ">False <_AndroidBuildPropertiesCache>$(IntermediateOutputPath)build.props <_AdbPropertiesCache>$(IntermediateOutputPath)adb.props False @@ -915,8 +914,7 @@ because xbuild doesn't support framework reference assemblies. <_NuGetAssetsFile Condition=" '$(_NuGetAssetsFile)' == '' and Exists('$(ProjectLockFile)') ">$(ProjectLockFile) <_NuGetAssetsFile Condition=" '$(_NuGetAssetsFile)' == '' and Exists('packages.config') ">packages.config <_TypeMapKind Condition=" '$(AndroidIncludeDebugSymbols)' != 'True' ">mvid - <_TypeMapKind Condition=" '$(AndroidIncludeDebugSymbols)' == 'True' And '$(_InstantRunEnabled)' == 'True' ">strings-files - <_TypeMapKind Condition=" '$(AndroidIncludeDebugSymbols)' == 'True' And '$(_InstantRunEnabled)' != 'True' ">strings-asm + <_TypeMapKind Condition=" '$(AndroidIncludeDebugSymbols)' == 'True' ">strings-asm @@ -1464,6 +1461,7 @@ because xbuild doesn't support framework reference assemblies. <_LinkingEnabled Condition=" '$(AndroidLinkMode)' == 'None'">False <_HaveMultipleRIDs Condition=" '$(RuntimeIdentifiers)' != '' ">True <_HaveMultipleRIDs Condition=" '$(RuntimeIdentifiers)' == '' ">False + <_AndroidGenerateNativeAssembly Condition=" '$(_AndroidGenerateNativeAssembly)' == '' ">True <_MergedManifestDocuments Condition=" '$(AndroidManifestMerger)' == 'legacy' " Include="@(ExtractedManifestDocuments)" /> @@ -1478,7 +1476,6 @@ because xbuild doesn't support framework reference assemblies. Debug="$(AndroidIncludeDebugSymbols)" MultiDex="$(AndroidEnableMultiDex)" NeedsInternet="$(AndroidNeedsInternetPermission)" - InstantRunEnabled="$(_InstantRunEnabled)" AndroidSdkPlatform="$(_AndroidApiLevel)" AndroidSdkDir="$(_AndroidSdkDirectory)" PackageName="$(_AndroidPackage)" @@ -1488,7 +1485,7 @@ because xbuild doesn't support framework reference assemblies. ManifestPlaceholders="$(AndroidManifestPlaceholders)" OutputDirectory="$(IntermediateOutputPath)android" TypemapOutputDirectory="$(_NativeAssemblySourceDir)" - GenerateNativeAssembly="!$(_InstantRunEnabled)" + GenerateNativeAssembly="$(_AndroidGenerateNativeAssembly)" MergedAndroidManifestOutput="$(_ManifestOutput)" EmbedAssemblies="$(EmbedAssembliesIntoApk)" BundledWearApplicationName="$(BundledWearApplicationPackageName)" @@ -1505,13 +1502,8 @@ because xbuild doesn't support framework reference assemblies. HaveMultipleRIDs="$(_HaveMultipleRIDs)" IntermediateOutputDirectory="$(IntermediateOutputPath)" Environments="@(AndroidEnvironment);@(LibraryEnvironments)"> - - - <_AndroidTypeMapping Include="$(_NativeAssemblySourceDir)typemaps\**\*" /> - - @@ -1586,7 +1578,6 @@ because xbuild doesn't support framework reference assemblies. @@ -1594,7 +1585,6 @@ because xbuild doesn't support framework reference assemblies. @@ -1602,7 +1592,6 @@ because xbuild doesn't support framework reference assemblies. @@ -1631,7 +1620,6 @@ because xbuild doesn't support framework reference assemblies. @@ -1729,7 +1717,6 @@ because xbuild doesn't support framework reference assemblies. EnablePreloadAssembliesDefault="$(_AndroidEnablePreloadAssembliesDefault)" PackageNamingPolicy="$(AndroidPackageNamingPolicy)" BoundExceptionType="$(AndroidBoundExceptionType)" - InstantRunEnabled="$(_InstantRunEnabled)" RuntimeConfigBinFilePath="$(_BinaryRuntimeConfigPath)" UseAssemblyStore="$(AndroidUseAssemblyStore)" EnableMarshalMethods="$(_AndroidUseMarshalMethods)" diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.D8.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.D8.targets index 71567524167..0796e933155 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.D8.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.D8.targets @@ -64,7 +64,7 @@ Copyright (C) 2018 Xamarin. All rights reserved. Debug="$(AndroidIncludeDebugSymbols)" JavaPlatformJarPath="$(JavaPlatformJarPath)" ClassesZip="$(_AndroidIntermediateClassesZip)" - JavaLibrariesToEmbed="@(_JavaLibrariesToCompileForApp);@(_InstantRunJavaReference)" + JavaLibrariesToEmbed="@(_JavaLibrariesToCompileForApp);" JavaLibrariesToReference="@(AndroidExternalJavaLibrary)" EnableDesugar="$(AndroidEnableDesugar)" AndroidSdkBuildToolsPath="$(AndroidSdkBuildToolsPath)" @@ -95,7 +95,7 @@ Copyright (C) 2018 Xamarin. All rights reserved. Debug="$(AndroidIncludeDebugSymbols)" JavaPlatformJarPath="$(JavaPlatformJarPath)" ClassesZip="$(_AndroidIntermediateClassesZip)" - JavaLibrariesToEmbed="@(_JavaLibrariesToCompileForApp);@(_InstantRunJavaReference)" + JavaLibrariesToEmbed="@(_JavaLibrariesToCompileForApp)" AlternativeJarLibrariesToEmbed="@(_AlternativeJarForAppD8)" JavaLibrariesToReference="@(AndroidExternalJavaLibrary)" EnableDesugar="$(AndroidEnableDesugar)"