From 5bb306b22d63e508b52cd40bcba920cba5b4faef Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Fri, 21 Apr 2023 10:55:26 -0500 Subject: [PATCH 1/2] [Xamarin.Android.Build.Tasks] remove Xamarin.Android.Legacy.targets and friends Taking a first pass at deleting MSBuild-related files that are not used in .NET 8 and only existed to support "classic" Xamarin.Android. Deleting: * `Xamarin.Android.Legacy.targets` * `Xamarin.Android.Aapt.targets` * `Xamarin.Android.Wear.targets` * Associated MSBuild task `.cs` files that are now unused After these changes, I got the error from `Xamarin.Android.NUnitLite.csproj`: Xamarin.Android.Tooling.targets(52,31): error MSB4057: The target "_GetReferenceAssemblyPaths" does not exist in the project. I removed this project from `Xamarin.Android.sln` for now, but it will be a good target for removal in the future. --- Xamarin.Android.sln | 10 - .../installers/create-installers.targets | 3 - .../Android/Xamarin.Android.Aapt.targets | 98 --- .../Android/Xamarin.Android.Wear.targets | 66 -- .../targets/Microsoft.Android.Sdk.Aot.targets | 3 +- .../Microsoft.Android.Sdk.BuildOrder.targets | 5 +- .../Microsoft.Android.Sdk.Tooling.targets | 5 +- .../Tasks/CreateLibraryResourceArchive.cs | 207 ----- .../CreateManagedLibraryResourceArchive.cs | 127 --- .../Tasks/CreateNativeLibraryArchive.cs | 75 -- .../Tasks/LinkAssemblies.cs | 160 ---- .../ParseAndroidWearProjectAndManifest.cs | 51 -- .../Tasks/PrepareWearApplicationFiles.cs | 79 -- .../Xamarin.Android.Build.Tasks.targets | 12 - .../Xamarin.Android.Common.targets | 7 +- .../Xamarin.Android.EmbeddedResource.targets | 7 +- .../Xamarin.Android.Legacy.targets | 727 ------------------ 17 files changed, 12 insertions(+), 1630 deletions(-) delete mode 100644 src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Aapt.targets delete mode 100644 src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Wear.targets delete mode 100644 src/Xamarin.Android.Build.Tasks/Tasks/CreateLibraryResourceArchive.cs delete mode 100644 src/Xamarin.Android.Build.Tasks/Tasks/CreateManagedLibraryResourceArchive.cs delete mode 100644 src/Xamarin.Android.Build.Tasks/Tasks/CreateNativeLibraryArchive.cs delete mode 100644 src/Xamarin.Android.Build.Tasks/Tasks/LinkAssemblies.cs delete mode 100644 src/Xamarin.Android.Build.Tasks/Tasks/ParseAndroidWearProjectAndManifest.cs delete mode 100644 src/Xamarin.Android.Build.Tasks/Tasks/PrepareWearApplicationFiles.cs delete mode 100644 src/Xamarin.Android.Build.Tasks/Xamarin.Android.Legacy.targets diff --git a/Xamarin.Android.sln b/Xamarin.Android.sln index 8894b7957b9..5decb2b9bb5 100644 --- a/Xamarin.Android.sln +++ b/Xamarin.Android.sln @@ -51,11 +51,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Java.Interop.Tools.Cecil", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "monodroid", "src\monodroid\monodroid.csproj", "{53EE4C57-1C03-405A-8243-8DA539546C88}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Android.NUnitLite", "src\Xamarin.Android.NUnitLite\Xamarin.Android.NUnitLite.csproj", "{4D603AA3-3BFD-43C8-8050-0CD6C2601126}" - ProjectSection(ProjectDependencies) = postProject - {3F1F2F50-AF1A-4A5A-BEDB-193372F068D7} = {3F1F2F50-AF1A-4A5A-BEDB-193372F068D7} - EndProjectSection -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{CAB438D8-B0F5-4AF0-BEBD-9E2ADBD7B483}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.ProjectTools", "src\Xamarin.Android.Build.Tasks\Tests\Xamarin.ProjectTools\Xamarin.ProjectTools.csproj", "{2DD1EE75-6D8D-4653-A800-0A24367F7F38}" @@ -228,10 +223,6 @@ Global {53EE4C57-1C03-405A-8243-8DA539546C88}.Debug|AnyCPU.Build.0 = Debug|Any CPU {53EE4C57-1C03-405A-8243-8DA539546C88}.Release|AnyCPU.ActiveCfg = Release|Any CPU {53EE4C57-1C03-405A-8243-8DA539546C88}.Release|AnyCPU.Build.0 = Release|Any CPU - {4D603AA3-3BFD-43C8-8050-0CD6C2601126}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU - {4D603AA3-3BFD-43C8-8050-0CD6C2601126}.Debug|AnyCPU.Build.0 = Debug|Any CPU - {4D603AA3-3BFD-43C8-8050-0CD6C2601126}.Release|AnyCPU.ActiveCfg = Release|Any CPU - {4D603AA3-3BFD-43C8-8050-0CD6C2601126}.Release|AnyCPU.Build.0 = Release|Any CPU {2DD1EE75-6D8D-4653-A800-0A24367F7F38}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU {2DD1EE75-6D8D-4653-A800-0A24367F7F38}.Debug|AnyCPU.Build.0 = Debug|Any CPU {2DD1EE75-6D8D-4653-A800-0A24367F7F38}.Release|AnyCPU.ActiveCfg = Release|Any CPU @@ -429,7 +420,6 @@ Global {64CC4E44-CE3A-4319-BF3F-6CF8BD513870} = {864062D3-A415-4A6F-9324-5820237BA058} {D48EE8D0-0A0A-4493-AEF5-DAF5F8CF86AD} = {864062D3-A415-4A6F-9324-5820237BA058} {53EE4C57-1C03-405A-8243-8DA539546C88} = {04E3E11E-B47D-4599-8AFC-50515A95E715} - {4D603AA3-3BFD-43C8-8050-0CD6C2601126} = {04E3E11E-B47D-4599-8AFC-50515A95E715} {2DD1EE75-6D8D-4653-A800-0A24367F7F38} = {CAB438D8-B0F5-4AF0-BEBD-9E2ADBD7B483} {53E4ABF0-1085-45F9-B964-DCAE4B819998} = {CAB438D8-B0F5-4AF0-BEBD-9E2ADBD7B483} {38C762AB-8FD1-44DE-9855-26AAE7129DC3} = {864062D3-A415-4A6F-9324-5820237BA058} diff --git a/build-tools/installers/create-installers.targets b/build-tools/installers/create-installers.targets index 7a75176ef34..89431e47d39 100644 --- a/build-tools/installers/create-installers.targets +++ b/build-tools/installers/create-installers.targets @@ -270,7 +270,6 @@ <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)System.Collections.Immutable.dll" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)System.Buffers.dll" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)System.IO.Hashing.dll" /> - <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.Aapt.targets" ExcludeFromAndroidNETSdk="true" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.Aapt2.targets" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.Analysis.targets" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.Application.targets" /> @@ -300,7 +299,6 @@ <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.EmbeddedResource.targets" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.FSharp.targets" ExcludeFromAndroidNETSdk="true" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.Javac.targets" /> - <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.Legacy.targets" ExcludeFromAndroidNETSdk="true" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.PCLSupport.props" ExcludeFromAndroidNETSdk="true" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.PCLSupport.targets" ExcludeFromAndroidNETSdk="true" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.SkipCases.projitems" /> @@ -311,7 +309,6 @@ <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.Tools.AndroidSdk.pdb" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.Tools.Versions.props" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.VisualBasic.targets" ExcludeFromAndroidNETSdk="true" /> - <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Android.Wear.targets" ExcludeFromAndroidNETSdk="true" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Build.AsyncTask.dll" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)Xamarin.Build.AsyncTask.pdb" /> <_MSBuildFiles Include="$(MicrosoftAndroidSdkOutDir)K4os.Compression.LZ4.dll" /> diff --git a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Aapt.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Aapt.targets deleted file mode 100644 index 82cde492f4b..00000000000 --- a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Aapt.targets +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - <_UpdateAndroidResgenInputs> - $(_UpdateAndroidResgenInputs); - @(_LibraryResourceDirectoryStamps); - - <_CreateBaseApkInputs> - $(_CreateBaseApkInputs); - @(_LibraryResourceDirectoryStamps); - - - - - - - - - - - - - - - - diff --git a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Wear.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Wear.targets deleted file mode 100644 index 0556dbe5f12..00000000000 --- a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Wear.targets +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - SignAndroidPackage - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.Aot.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.Aot.targets index e547f11a8dc..db621d58ecf 100644 --- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.Aot.targets +++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.Aot.targets @@ -2,8 +2,7 @@ *********************************************************************************************** Microsoft.Android.Sdk.Aot.targets -.NET 6 AOT support. You can find "legacy" Xamarin.Android AOT support -in Xamarin.Android.Legacy.targets. +MSBuild targets for .NET 6+ AOT support. For usage, see: * https://github.com/dotnet/runtime/blob/15dec9a2aa5a4236d6ba70de2e9c146867b9d2e0/src/tasks/AotCompilerTask/MonoAOTCompiler.cs diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.BuildOrder.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.BuildOrder.targets index 59836b76789..4a4a3432258 100644 --- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.BuildOrder.targets +++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.BuildOrder.targets @@ -2,9 +2,8 @@ *********************************************************************************************** Microsoft.Android.Sdk.BuildOrder.targets -This file contains the .NET 5-specific setup for any $(FooDependsOn) -properties that determine build ordering. For "legacy" Xamarin.Android -projects, these properties are set in Xamarin.Android.Legacy.targets. +This file contains the .NET 6+ setup for any $(FooDependsOn) +properties that determine build ordering. *********************************************************************************************** --> diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.Tooling.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.Tooling.targets index 0fe2466756d..00607808065 100644 --- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.Tooling.targets +++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.Tooling.targets @@ -2,9 +2,8 @@ *********************************************************************************************** Microsoft.Android.Sdk.Tooling.targets -This file contains .NET 5-specific calls to the -and MSBuild tasks. These MSBuild tasks are -called for "legacy" projects in Xamarin.Android.Legacy.targets. +This file contains .NET 6+ calls to the and + MSBuild tasks. *********************************************************************************************** --> diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/CreateLibraryResourceArchive.cs b/src/Xamarin.Android.Build.Tasks/Tasks/CreateLibraryResourceArchive.cs deleted file mode 100644 index abd30c5e108..00000000000 --- a/src/Xamarin.Android.Build.Tasks/Tasks/CreateLibraryResourceArchive.cs +++ /dev/null @@ -1,207 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Xml; -using System.Xml.Linq; -using Microsoft.Build.Utilities; -using Microsoft.Build.Framework; -using System.Text.RegularExpressions; -using Xamarin.Tools.Zip; - -using Xamarin.Android.Tools; -using Microsoft.Android.Build.Tasks; - -namespace Xamarin.Android.Tasks -{ - public class CreateLibraryResourceArchive : AndroidTask - { - public override string TaskPrefix => "CLR"; - - [Required] - public string OutputDirectory { get; set; } - - [Required] - public string OutputJarsDirectory { get; set; } - - [Required] - public string OutputAnnotationsDirectory { get; set; } - - [Required] - public ITaskItem[] LibraryProjectPropertiesFiles { get; set; } - - [Required] - public ITaskItem[] LibraryProjectZipFiles { get; set; } - - public CreateLibraryResourceArchive () - { - } - - public override bool RunTask () - { - if (LibraryProjectPropertiesFiles.Length == 0 && LibraryProjectZipFiles.Length == 0) - return true; - - var outDirInfo = new DirectoryInfo (OutputDirectory); - - // Copy files into _LibraryProjectImportsDirectoryName (library_project_imports) dir. - if (!outDirInfo.Exists) - outDirInfo.Create (); - - var projectsResolved = ResolveLibraryProjectReferences (LibraryProjectPropertiesFiles.Select (p => Path.GetFullPath (p.ItemSpec))); - var imports = projectsResolved.Concat (LibraryProjectZipFiles.Select (p => p.ItemSpec)); - - foreach (var p in imports) { - // note that imports could contain file name that neither of build items contains - // (it may be one of those resolved references in project.properties). - // Also non-zip files are now specified in full path. - if (!LibraryProjectZipFiles.Any (l => l.ItemSpec == p)) { - // project.properties - - var fileInfo = new FileInfo (p); - if (!fileInfo.Exists) - throw new InvalidOperationException (String.Format ("Library project properties file '{0}' does not exist.", p)); - var bindir = fileInfo.Directory.FullName; - - CopyLibraryContent (bindir, false); - } else { - // zip - string tmpname = Path.Combine (Path.GetTempPath (), "monodroid_import_" + Guid.NewGuid ().ToString ()); - try { - Directory.CreateDirectory (tmpname); - bool isAar = p.EndsWith (".aar", StringComparison.OrdinalIgnoreCase); - using (var archive = ZipArchive.Open (p, FileMode.Open)) { - var skipCallback = isAar ? Files.ShouldSkipEntryInAar : default (Func); - Files.ExtractAll (archive, tmpname, skipCallback: skipCallback); - } - - if (!CopyLibraryContent (tmpname, isAar)) - return false; - } finally { - Directory.Delete (tmpname, true); - } - } - } - - var outpath = Path.Combine (outDirInfo.Parent.FullName, "__AndroidLibraryProjects__.zip"); - - if (Files.ArchiveZip (outpath, f => { - using (var zip = new ZipArchiveEx (f)) { - zip.AddDirectory (OutputDirectory, "library_project_imports"); - } - })) { - Log.LogDebugMessage ("Saving contents to " + outpath); - } - return true; - } - - bool CopyLibraryContent (string projdir, bool isAar) - { - if (Path.GetFullPath (OutputDirectory).StartsWith (Path.GetFullPath (projdir), StringComparison.InvariantCultureIgnoreCase)) { - Log.LogCodedError ("XA1019", Properties.Resources.XA1019, Path.GetFullPath (projdir)); - return false; - } - foreach (var subdir in Directory.GetDirectories (projdir)) { - var dinfo = new DirectoryInfo (subdir); - switch (dinfo.Name.ToLowerInvariant ()) { - case "gen": - case "src": - continue; - } - CopyDirectory (dinfo, OutputDirectory, true); - CopyFiles (subdir); - } - if (isAar) { - CopyFiles (projdir); - // for .aar, copy top-level files (*.jar, AndroidManifest.xml etc.) into bin too. - var dstdir = Path.Combine (OutputDirectory, "bin"); - foreach (var file in Directory.GetFiles (projdir)) { - string dstpath = Path.Combine (dstdir, Path.GetFileName (file)); - if (!File.Exists (dstpath)) - Files.CopyIfChanged (file, dstpath); - } - } - return true; - } - - void CopyFiles (string srcdir) - { - foreach (var file in Directory.GetFiles (srcdir)) { - if (file.EndsWith (".jar", StringComparison.OrdinalIgnoreCase)) { - var dstpath = Path.Combine (OutputJarsDirectory, Path.GetFileName (file)); - if (!File.Exists (dstpath)) - Files.CopyIfChanged (file, dstpath); - } else if (file.EndsWith ("annotations.zip", StringComparison.OrdinalIgnoreCase)) { - var dstpath = Path.Combine (OutputAnnotationsDirectory, Path.GetFileName (file)); - if (!File.Exists (dstpath)) - Files.CopyIfChanged (file, dstpath); - } else { - var dstpath = Path.Combine (OutputDirectory, Path.GetFileName (file)); - if (!File.Exists (dstpath)) - Files.CopyIfChanged (file, dstpath); - } - } - } - - static void CopyDirectory (DirectoryInfo srcSubdirInfo, string dst, bool top) - { - string dstsub = Path.Combine (dst, srcSubdirInfo.Name); - if (!Directory.Exists (dstsub)) - Directory.CreateDirectory (dstsub); - foreach (var subsub in srcSubdirInfo.GetDirectories ()) { - // Skip "classes" dir. - if (top && subsub.Name.ToLowerInvariant () == "classes") - continue; - CopyDirectory (subsub, dstsub, false); - } - foreach (var file in srcSubdirInfo.GetFiles ()) - Files.CopyIfChanged (file.FullName, Path.Combine (dstsub, file.Name)); - } - - IEnumerable ResolveLibraryProjectReferences (IEnumerable inputs) - { - var l = new List (); - foreach (var input in inputs) - foreach (var s in ResolveLibraryProjectReferences (input, new List ())) - if (!l.Contains (s)) - l.Add (s); - return l; - } - - const string librefspec = "android.library.reference."; - - IEnumerable ResolveLibraryProjectReferences (string singleFile, List recurse) - { - if (recurse.Contains (singleFile)) - throw new InvalidOperationException (String.Format ("The library project '{0}' contains invalid recursive references.", singleFile)); - recurse.Add (singleFile); - var l = new List (); - l.Add (singleFile); - var ordered = new SortedList (); - foreach (var line in File.ReadAllLines (singleFile)) { - var s = line.Trim (); - if (s.StartsWith ("#", StringComparison.Ordinal)) - continue; - if (!s.StartsWith (librefspec, StringComparison.Ordinal)) - continue; - int eqpos = s.IndexOf ('='); - if (eqpos < 0) - throw new InvalidOperationException (String.Format ("Wrong project reference description in '{0}': '=' is missing", singleFile)); - string numspec = s.Substring (librefspec.Length, eqpos - librefspec.Length); - int num; - if (!int.TryParse (numspec, out num)) - throw new InvalidOperationException (String.Format ("Wrong project reference description in '{0}': wrong number format for reference priority", singleFile)); - string path = s.Substring (eqpos + 1); - string refpath = Path.GetFullPath (Path.Combine (Path.GetDirectoryName (singleFile), path, "project.properties")); - ordered.Add (num, refpath); - } - foreach (var refpath in ordered.Values) - foreach (var sub in ResolveLibraryProjectReferences (refpath, recurse)) - l.Add (sub); - recurse.Remove (singleFile); - return l; - } - } -} - diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/CreateManagedLibraryResourceArchive.cs b/src/Xamarin.Android.Build.Tasks/Tasks/CreateManagedLibraryResourceArchive.cs deleted file mode 100644 index 9c993463cc0..00000000000 --- a/src/Xamarin.Android.Build.Tasks/Tasks/CreateManagedLibraryResourceArchive.cs +++ /dev/null @@ -1,127 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using Microsoft.Build.Utilities; -using Microsoft.Build.Framework; - -using Xamarin.Android.Tools; -using Microsoft.Android.Build.Tasks; - -namespace Xamarin.Android.Tasks -{ - /// - /// Creates __AndroidLibraryProjects__.zip, $(AndroidApplication) should be False! - /// - public class CreateManagedLibraryResourceArchive : AndroidTask - { - public override string TaskPrefix => "CML"; - - [Required] - public string OutputDirectory { get; set; } - - public ITaskItem[] AndroidAssets { get; set; } - - public string MonoAndroidAssetsPrefix { get; set; } - - public ITaskItem[] AndroidJavaSources { get; set; } - - public ITaskItem[] AndroidJavaLibraries { get; set; } - - public ITaskItem[] AndroidResourcesInThisExactProject { get; set; } - - public ITaskItem [] RemovedAndroidResourceFiles { get; set; } - - public string FlatArchivesDirectory { get; set; } - - [Required] - public string ResourceDirectory { get; set; } - - public CreateManagedLibraryResourceArchive () - { - } - - public override bool RunTask () - { - var outDirInfo = new DirectoryInfo (OutputDirectory); - - // Copy files into _LibraryProjectImportsDirectoryName (library_project_imports) dir. - if (!outDirInfo.Exists) - outDirInfo.Create (); - foreach (var sub in new string [] {"assets", "res", "java", "bin"}) { - var subdirInfo = new DirectoryInfo (Path.Combine (outDirInfo.FullName, sub)); - if (!subdirInfo.Exists) - subdirInfo.Create (); - } - - var compiledArchive = Path.Combine (FlatArchivesDirectory, "compiled.flata"); - if (File.Exists (compiledArchive)) { - Log.LogDebugMessage ($"Coping: {compiledArchive} to {outDirInfo.FullName}"); - Files.CopyIfChanged (compiledArchive, Path.Combine (outDirInfo.FullName, "compiled.flata")); - } - - if (AndroidAssets != null) { - var dstsub = Path.Combine (outDirInfo.FullName, "assets"); - if (!Directory.Exists (dstsub)) - Directory.CreateDirectory (dstsub); - foreach (var item in AndroidAssets) { - var path = MonoAndroidHelper.GetRelativePathForAndroidAsset (MonoAndroidAssetsPrefix, item); - Files.CopyIfChanged (item.ItemSpec, Path.Combine (dstsub, path)); - } - } - // resources folders are converted to the structure that aapt accepts. - foreach (var srcsub in Directory.GetDirectories (ResourceDirectory)) { - var dstsub = Path.Combine (outDirInfo.FullName, "res", Path.GetFileName (srcsub)); - if (!Directory.Exists (dstsub)) - Directory.CreateDirectory (dstsub); - foreach (var file in Directory.GetFiles (srcsub)) { - var filename = Path.GetFileName (file); - Files.CopyIfChanged (file, Path.Combine (dstsub, Path.GetFileName (file))); - } - } - if (RemovedAndroidResourceFiles != null) { - foreach (var removedFile in RemovedAndroidResourceFiles) { - var removed = Path.Combine (outDirInfo.FullName, removedFile.ItemSpec); - if (File.Exists (removed)) { - File.Delete (removed); - Log.LogDebugMessage ($"Removed: {removed}"); - } - - } - } - if (AndroidJavaSources != null) - foreach (var item in AndroidJavaSources) - Files.CopyIfChanged (item.ItemSpec, Path.Combine (outDirInfo.FullName, item.ItemSpec)); - if (AndroidJavaLibraries != null) - foreach (var item in AndroidJavaLibraries) - Files.CopyIfChanged (item.ItemSpec, Path.Combine (outDirInfo.FullName, item.ItemSpec)); - - var nameCaseMap = new StringWriter (); - - // add resource case mapping descriptor to the archive. - if (AndroidResourcesInThisExactProject != null && AndroidResourcesInThisExactProject.Any ()) { - Log.LogMessage ("writing __res_name_case_map.txt..."); - foreach (var res in AndroidResourcesInThisExactProject) - nameCaseMap.WriteLine ("{0};{1}", res.GetMetadata ("LogicalName").Replace ('\\', '/'), Path.Combine (Path.GetFileName (Path.GetDirectoryName (res.ItemSpec)), Path.GetFileName (res.ItemSpec)).Replace ('\\', '/')); - File.WriteAllText (Path.Combine (outDirInfo.FullName, "__res_name_case_map.txt"), nameCaseMap.ToString ()); - } - - var outpath = Path.Combine (outDirInfo.Parent.FullName, "__AndroidLibraryProjects__.zip"); - var fileMode = File.Exists (outpath) ? FileMode.Open : FileMode.CreateNew; - if (Files.ArchiveZipUpdate (outpath, f => { - using (var zip = new ZipArchiveEx (f, fileMode)) { - zip.AddDirectory (outDirInfo.FullName, "library_project_imports"); - if (RemovedAndroidResourceFiles != null) { - foreach (var r in RemovedAndroidResourceFiles) { - Log.LogDebugMessage ($"Removed {r.ItemSpec} from {outpath}"); - zip.RemoveFile ("library_project_imports", r.ItemSpec); - } - } - } - })) { - Log.LogDebugMessage ("Saving contents to " + outpath); - } - - return !Log.HasLoggedErrors ; - } - } -} diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/CreateNativeLibraryArchive.cs b/src/Xamarin.Android.Build.Tasks/Tasks/CreateNativeLibraryArchive.cs deleted file mode 100644 index 6c89c01f0d5..00000000000 --- a/src/Xamarin.Android.Build.Tasks/Tasks/CreateNativeLibraryArchive.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using Microsoft.Build.Utilities; -using Microsoft.Build.Framework; - -using Xamarin.Android.Tools; -using Microsoft.Android.Build.Tasks; - -namespace Xamarin.Android.Tasks -{ - /// - /// Creates __AndroidNativeLibraries__.zip, $(AndroidApplication) should be False! - /// - public class CreateNativeLibraryArchive : AndroidTask - { - public override string TaskPrefix => "CNL"; - - [Required] - public string OutputDirectory { get; set; } - - [Required] - public ITaskItem[] EmbeddedNativeLibraries { get; set; } - - public CreateNativeLibraryArchive () - { - } - - public override bool RunTask () - { - var outDirInfo = new DirectoryInfo (OutputDirectory); - - // Copy files into _NativeLibraryImportsDirectoryName (native_library_imports) dir. - if (!outDirInfo.Exists) - outDirInfo.Create (); - foreach (var lib in EmbeddedNativeLibraries) { - // seealso bug #3477 to find out why we use this method. - var abi = AndroidRidAbiHelper.GetNativeLibraryAbi (lib); - if (abi == null) { - Log.LogWarning ( - subcategory: string.Empty, - warningCode: "XA4300", - helpKeyword: string.Empty, - file: lib.ItemSpec, - lineNumber: 0, - columnNumber: 0, - endLineNumber: 0, - endColumnNumber: 0, - message: Properties.Resources.XA4300, - messageArgs: new []{ - lib.ItemSpec, - } - ); - continue; - } - if (!outDirInfo.GetDirectories (abi).Any ()) - outDirInfo.CreateSubdirectory (abi); - Files.CopyIfChanged (lib.ItemSpec, Path.Combine (OutputDirectory, abi, Path.GetFileName (lib.ItemSpec))); - } - - var outpath = Path.Combine (outDirInfo.Parent.FullName, "__AndroidNativeLibraries__.zip"); - - if (Files.ArchiveZip (outpath, f => { - using (var zip = new ZipArchiveEx (f)) { - zip.AddDirectory (OutputDirectory, "native_library_imports"); - } - })) { - Log.LogDebugMessage ("Saving contents to " + outpath); - } - - return !Log.HasLoggedErrors; - } - } -} - diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/LinkAssemblies.cs b/src/Xamarin.Android.Build.Tasks/Tasks/LinkAssemblies.cs deleted file mode 100644 index 67c72c382da..00000000000 --- a/src/Xamarin.Android.Build.Tasks/Tasks/LinkAssemblies.cs +++ /dev/null @@ -1,160 +0,0 @@ -// Copyright (C) 2011, Xamarin Inc. -// Copyright (C) 2010, Novell Inc. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.Build.Framework; -using MBF = Microsoft.Build.Framework; -using Microsoft.Build.Utilities; -using Mono.Cecil; -using System.IO; -using MonoDroid.Tuner; -using Mono.Linker; -using ML = Mono.Linker; - -using Java.Interop.Tools.Cecil; -using Java.Interop.Tools.Diagnostics; -using Microsoft.Android.Build.Tasks; - -namespace Xamarin.Android.Tasks -{ - /// - /// This task is for Release builds, LinkMode=None now uses LinkAssembliesNoShrink - /// - public class LinkAssemblies : AndroidTask, ML.ILogger - { - public override string TaskPrefix => "LNK"; - - [Required] - public string MainAssembly { get; set; } - - [Required] - public string OutputDirectory { get; set; } - - [Required] - public ITaskItem[] ResolvedAssemblies { get; set; } - - [Required] - public ITaskItem[] LinkDescriptions { get; set; } - - public string I18nAssemblies { get; set; } - public string LinkMode { get; set; } - public string LinkSkip { get; set; } - - public bool EnableProguard { get; set; } - public string ProguardConfiguration { get; set; } - public bool DumpDependencies { get; set; } - - public string HttpClientHandlerType { get; set; } - - public string TlsProvider { get; set; } - - public bool AddKeepAlives { get; set; } - - public bool PreserveJniMarshalMethods { get; set; } - - public bool Deterministic { get; set; } - - public bool LinkResources { get; set; } - - public bool UseDesignerAssembly { get; set; } - - IEnumerable GetRetainAssemblies (DirectoryAssemblyResolver res) - { - List retainList = null; - foreach (var assembly in ResolvedAssemblies) { - var filename = Path.GetFileName (assembly.ItemSpec); - if (!MonoAndroidHelper.IsForceRetainedAssembly (filename)) - continue; - if (retainList == null) - retainList = new List (); - retainList.Add (res.GetAssembly (assembly.ItemSpec)); - } - return retainList; - } - - public override bool RunTask () - { - var rp = new ReaderParameters { - InMemory = true, - }; - using (var res = new DirectoryAssemblyResolver (this.CreateTaskLogger (), loadDebugSymbols: false, loadReaderParameters: rp)) { - return Execute (res); - } - } - - bool Execute (DirectoryAssemblyResolver res) - { - // Put every assembly we'll need in the resolver - foreach (var assembly in ResolvedAssemblies) { - res.Load (Path.GetFullPath (assembly.ItemSpec)); - } - - var resolver = new AssemblyResolver (res.ToResolverCache ()); - - // Set up for linking - var options = new LinkerOptions (); - options.MainAssembly = res.GetAssembly (MainAssembly); - options.OutputDirectory = Path.GetFullPath (OutputDirectory); - options.LinkSdkOnly = string.Compare (LinkMode, "SdkOnly", StringComparison.OrdinalIgnoreCase) == 0; - options.LinkNone = false; - options.Resolver = resolver; - options.LinkDescriptions = LinkDescriptions.Select (item => Path.GetFullPath (item.ItemSpec)).ToArray (); - options.I18nAssemblies = Linker.ParseI18nAssemblies (I18nAssemblies); - if (!options.LinkSdkOnly) - options.RetainAssemblies = GetRetainAssemblies (res); - options.DumpDependencies = DumpDependencies; - options.HttpClientHandlerType = HttpClientHandlerType; - options.TlsProvider = TlsProvider; - options.AddKeepAlives = AddKeepAlives; - options.PreserveJniMarshalMethods = PreserveJniMarshalMethods; - options.DeterministicOutput = Deterministic; - options.LinkResources = LinkResources; - options.UseDesignerAssembly = UseDesignerAssembly; - - var skiplist = new List (); - - // Add LinkSkip options - if (!string.IsNullOrWhiteSpace (LinkSkip)) - skiplist.AddRange (LinkSkip.Split (',', ';')); - - options.SkippedAssemblies = skiplist; - - if (EnableProguard) - options.ProguardConfiguration = ProguardConfiguration; - - // Link! - try { - LinkContext link_context; - Linker.Process (options, this, out link_context); - - foreach (var assembly in ResolvedAssemblies) { - var copysrc = assembly.ItemSpec; - var filename = Path.GetFileName (assembly.ItemSpec); - var assemblyDestination = Path.Combine (OutputDirectory, filename); - - if (!MonoAndroidHelper.IsForceRetainedAssembly (filename)) - continue; - - MonoAndroidHelper.CopyAssemblyAndSymbols (copysrc, assemblyDestination); - } - } catch (ResolutionException ex) { - Diagnostic.Error (2006, ex, Properties.Resources.XA2006, ex.Member, ex.Member.Module.Assembly, ex.Scope); - } - - return true; - } - - public void LogMessage (ML.MessageImportance importance, string message, params object [] values) - { - var mbfImportance = MBF.MessageImportance.Low; - - if (importance == ML.MessageImportance.High) - mbfImportance = MBF.MessageImportance.High; - - Log.LogMessageFromText (string.Format (message, values), mbfImportance); - } - } -} - diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/ParseAndroidWearProjectAndManifest.cs b/src/Xamarin.Android.Build.Tasks/Tasks/ParseAndroidWearProjectAndManifest.cs deleted file mode 100644 index 11453afa119..00000000000 --- a/src/Xamarin.Android.Build.Tasks/Tasks/ParseAndroidWearProjectAndManifest.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using Microsoft.Build.Utilities; -using Microsoft.Build.Framework; -using System.Xml.Linq; - -using Xamarin.Android.Tools; -using Xamarin.Android.Tools.Aidl; -using Microsoft.Android.Build.Tasks; - -namespace Xamarin.Android.Tasks -{ - public class ParseAndroidWearProjectAndManifest : AndroidTask - { - public override string TaskPrefix => "PAW"; - - static readonly XNamespace msbuildNS = XNamespace.Get ("http://schemas.microsoft.com/developer/msbuild/2003"); - - public ITaskItem [] ProjectFiles { get; set; } - [Output] - public string ApplicationManifestFile { get; set; } - [Output] - public string ApplicationPackageName { get; set; } - - public override bool RunTask () - { - if (ProjectFiles.Length != 1) - Log.LogCodedError ("XA1015", Properties.Resources.XA1015); - - var wearProj = ProjectFiles.First (); - var manifestXml = XDocument.Load (wearProj.ItemSpec) - .Root.Elements (msbuildNS + "PropertyGroup").Elements (msbuildNS + "AndroidManifest").Select (e => e.Value).FirstOrDefault (); - if (string.IsNullOrEmpty (manifestXml)) - Log.LogCodedError ("XA1016", Properties.Resources.XA1016, wearProj); - manifestXml = Path.Combine (Path.GetDirectoryName (wearProj.ItemSpec), manifestXml.Replace ('\\', Path.DirectorySeparatorChar)); - - ApplicationManifestFile = manifestXml; - - Log.LogDebugMessage (" [Output] ApplicationManifestFile: " + ApplicationManifestFile); - - ApplicationPackageName = AndroidAppManifest.CanonicalizePackageName (XDocument.Load (manifestXml).Root.Attributes ("package").Select (a => a.Value).FirstOrDefault ()); - if (string.IsNullOrEmpty (ApplicationPackageName)) - Log.LogCodedError ("XA1017", Properties.Resources.XA1017); - - Log.LogDebugMessage (" [Output] ApplicationPackageName: " + ApplicationPackageName); - return true; - } - } -} - diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/PrepareWearApplicationFiles.cs b/src/Xamarin.Android.Build.Tasks/Tasks/PrepareWearApplicationFiles.cs deleted file mode 100644 index 62d60299c53..00000000000 --- a/src/Xamarin.Android.Build.Tasks/Tasks/PrepareWearApplicationFiles.cs +++ /dev/null @@ -1,79 +0,0 @@ -using Microsoft.Build.Utilities; -using Microsoft.Build.Framework; -using System.IO; -using System.Xml.Linq; -using Xamarin.Android.Tools; -using System.Collections.Generic; -using Microsoft.Android.Build.Tasks; - -namespace Xamarin.Android.Tasks -{ - public class PrepareWearApplicationFiles : AndroidTask - { - public override string TaskPrefix => "PWA"; - - static readonly XNamespace androidNs = XNamespace.Get ("http://schemas.android.com/apk/res/android"); - - [Required] - public string PackageName { get; set; } - public string WearAndroidManifestFile { get; set; } - public string IntermediateOutputPath { get; set; } - public string AndroidLibraryFlatFilesDirectory { get; set; } - public string WearApplicationApkPath { get; set; } - [Output] - public ITaskItem WearableApplicationDescriptionFile { get; set; } - [Output] - public ITaskItem BundledWearApplicationApkResourceFile { get; set; } - [Output] - public string [] ModifiedFiles { get; set; } - - public override bool RunTask () - { - string rawapk = "wearable_app.apk"; - string intermediateApkPath = Path.Combine (IntermediateOutputPath, "res", "raw", rawapk); - string intermediateXmlFile = Path.Combine (IntermediateOutputPath, "res", "xml", "wearable_app_desc.xml"); - - var doc = XDocument.Load (WearAndroidManifestFile); - var wearPackageName = AndroidAppManifest.CanonicalizePackageName (doc.Root.Attribute ("package").Value); - var modified = new List (); - - if (PackageName != wearPackageName) - Log.LogCodedError ("XA5211", Properties.Resources.XA5211, wearPackageName, PackageName); - - if (!File.Exists (WearApplicationApkPath)) { - Log.LogCodedWarning ("XA4311", Properties.Resources.XA4311); - return true; - } - - var xml = string.Format (@" - {1} - {2} - {3} - -", wearPackageName, doc.Root.Attribute (androidNs + "versionCode").Value, doc.Root.Attribute (androidNs + "versionName").Value, Path.GetFileNameWithoutExtension (rawapk)); - - if (Files.CopyIfChanged (WearApplicationApkPath, intermediateApkPath)) { - Log.LogDebugMessage (" Copied APK to {0}", intermediateApkPath); - modified.Add (intermediateApkPath); - } - - Directory.CreateDirectory (Path.GetDirectoryName (intermediateXmlFile)); - if (!File.Exists (intermediateXmlFile) || !XDocument.DeepEquals (XDocument.Load (intermediateXmlFile), XDocument.Parse (xml))) { - File.WriteAllText (intermediateXmlFile, xml); - Log.LogDebugMessage (" Created additional resource as {0}", intermediateXmlFile); - modified.Add (intermediateXmlFile); - } - WearableApplicationDescriptionFile = new TaskItem (intermediateXmlFile); - WearableApplicationDescriptionFile.SetMetadata ("_FlatFile", Monodroid.AndroidResource.CalculateAapt2FlatArchiveFileName (intermediateXmlFile)); - WearableApplicationDescriptionFile.SetMetadata ("_ArchiveDirectory", AndroidLibraryFlatFilesDirectory); - WearableApplicationDescriptionFile.SetMetadata ("IsWearApplicationResource", "True"); - BundledWearApplicationApkResourceFile = new TaskItem (intermediateApkPath); - BundledWearApplicationApkResourceFile.SetMetadata ("_FlatFile", Monodroid.AndroidResource.CalculateAapt2FlatArchiveFileName (intermediateApkPath)); - BundledWearApplicationApkResourceFile.SetMetadata ("_ArchiveDirectory", AndroidLibraryFlatFilesDirectory); - BundledWearApplicationApkResourceFile.SetMetadata ("IsWearApplicationResource", "True"); - ModifiedFiles = modified.ToArray (); - - return true; - } - } -} 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 d29d385d6d0..67d48e67bb6 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.targets @@ -54,11 +54,6 @@ PreserveNewest Xamarin.Android.Bindings.JarToXml.targets - - PreserveNewest - Xamarin.Android.Wear.targets - PreserveNewest @@ -92,10 +87,6 @@ PreserveNewest Xamarin.Android.Resource.Designer.targets - - PreserveNewest - Xamarin.Android.Aapt.targets - PreserveNewest Xamarin.Android.Aapt2.targets @@ -140,9 +131,6 @@ PreserveNewest - - 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 6259e2b3341..9826b4d533d 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -371,16 +371,13 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved. --> - - + - - @@ -1480,7 +1477,7 @@ because xbuild doesn't support framework reference assemblies. - + - - - - - Java - True - - - - <_PostBuildTargets> - _CopyPackage; - _Sign - - - - - - - - _ValidateLinkMode; - _CheckNonIdealConfigurations; - _SetupMSBuildAllProjects; - _SetupDesignTimeBuildForBuild; - _CategorizeAndroidLibraries; - _CreatePropertiesCache; - _CleanIntermediateIfNeeded; - _CheckProjectItems; - _CheckForContent; - _CheckTargetFramework; - _CheckForObsoleteFrameworkAssemblies; - _RemoveLegacyDesigner; - _ValidateAndroidPackageProperties; - $(BuildDependsOn); - _CompileDex; - $(_AfterCompileDex); - $(_PostBuildTargets) - - <_BeforeIncrementalClean> - _PrepareAssemblies; - _CompileDex; - $(_AfterCompileDex); - _AddFilesToFileWrites; - - <_PackageForAndroidDependsOn> - SetWearAppTargetToPackageForAndroid; - Build; - _CopyPackage; - - - - - - - - _ValidateLinkMode; - _SetupMSBuildAllProjects; - _SetupDesignTimeBuildForBuild; - _CategorizeAndroidLibraries; - _CreatePropertiesCache; - _CleanIntermediateIfNeeded; - _AddAndroidDefines; - _CreateNativeLibraryArchive; - _AddAndroidEnvironmentToCompile; - _CheckForContent; - _CheckTargetFramework; - _CheckForObsoleteFrameworkAssemblies; - _RemoveLegacyDesigner; - _ValidateAndroidPackageProperties; - $(BuildDependsOn); - - <_BeforeIncrementalClean> - _AddFilesToFileWrites; - - - - - - - - $([MSBuild]::Unescape($(CoreBuildDependsOn.Replace('IncrementalClean;', '$(_BeforeIncrementalClean);IncrementalClean;')))) - - - _SetupMSBuildAllProjects; - _SetupDesignTimeBuildForCompile; - _AddAndroidDefines; - _IncludeLayoutBindingSources; - $(CompileDependsOn); - _CheckAndroidHttpClientHandlerType; - - - UpdateGeneratedFiles; - $(CoreCompileDependsOn) - - - _SeparateAppExtensionReferences; - _PrepareWearApplication; - $(ResolveReferencesDependsOn); - _AddAndroidCustomMetaData; - - - $(CoreResolveReferencesDependsOn); - UpdateAndroidResources; - UpdateAndroidInterfaceProxies; - - - $(DeferredBuildDependsOn); - UpdateAndroidResources; - - - $(PrepareForRunDependsOn); - _CollectMonoAndroidOutputs; - - - $(CleanDependsOn); - _CleanMonoAndroidIntermediateDir; - _CleanAndroidBuildPropertiesCache; - - <_PrepareBuildApkDependsOnTargets> - _SetLatestTargetFrameworkVersion; - _GetLibraryImports; - _RemoveRegisterAttribute; - _ResolveAssemblies; - _ResolveSatellitePaths; - _CreatePackageWorkspace; - _CopyConfigFiles; - _ConvertPdbFiles; - _LinkAssemblies; - _GenerateJavaStubs; - _ManifestMerger; - _ConvertCustomView; - $(_AfterConvertCustomView); - $(AfterGenerateAndroidManifest); - _GenerateEnvironmentFiles; - _CompileJava; - _CreateApplicationSharedLibraries; - _CompileDex; - $(_AfterCompileDex); - _CreateBaseApk; - _PrepareAssemblies; - _ResolveSatellitePaths; - _CheckApkPerAbiFlag; - _LintChecks; - _IncludeNativeSystemLibraries; - _CheckGoogleSdkRequirements; - _AndroidAot; - - <_UpdateAndroidResourcesDependsOn> - $(CoreResolveReferencesDependsOn); - _CreatePropertiesCache; - _CheckForDeletedResourceFile; - _ComputeAndroidResourcePaths; - _UpdateAndroidResgen; - _CreateManagedLibraryResourceArchive; - - - _BeforeGetAndroidDependencies; - _SetLatestTargetFrameworkVersion; - $(GetAndroidDependenciesDependsOn); - - - - - - - - _SetupMSBuildAllProjects; - _SetupDesignTimeBuildForBuild; - _CategorizeAndroidLibraries; - AddLibraryJarsToBind; - $(BuildDependsOn); - BuildDocumentation; - - - - _SetupMSBuildAllProjects; - _SetupDesignTimeBuildForCompile; - AddLibraryJarsToBind; - $(CompileDependsOn); - - - - $(ResolveReferencesDependsOn); - _SetAndroidGenerateManagedBindings; - AddBindingsToCompile; - AddEmbeddedJarsAsResources; - AddEmbeddedReferenceJarsAsResources; - _CreateNativeLibraryArchive; - - - - $(CleanDependsOn); - CleanBindingsOutput; - CleanLibraryProjectIntermediaries; - CleanNativeLibraryIntermediaries; - - - - _ResolveMonoAndroidSdks; - _ExtractLibraryProjectImports; - _GetLibraryImports; - _ExtractJavaDocJars; - _GenerateJavaDocFromSourceJars; - _ExportJarToXml; - - - <_ResolveLibraryProjectsDependsOn> - _CreateBindingResourceArchive; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_DeprecatedSymbols Include="@(_ResolvedMdbFiles);@(_ResolvedPdbFiles)" /> - - - - - - - - - - __AndroidEnvironment__%(Filename)%(Extension) - - - - - - - - %(Filename)%(Extension) - - - - - - - - __reference__%(Filename)%(Extension) - - - - - - - - - - - __AndroidNativeLibraries__.zip - - - - - - - - - - - __AndroidLibraryProjects__.zip - - - - - - - - - - __AndroidLibraryProjects__.zip - - - - - - - <_Assemblies>@(_ResolvedFrameworkAssemblies) - <_TargetInterpreterPrefix Condition=" '$(AndroidUseInterpreter)' != 'False' ">interpreter- - <_AndroidDebugNativeLibraries Condition=" '$(_AndroidDebugNativeLibraries)' == '' ">False - - - - - - <_TargetArchitecture Include="$(_Android32bitArchitectures);$(_Android64bitArchitectures)" /> - <_TargetLibDir Include="$(MSBuildThisFileDirectory)lib\%(_TargetArchitecture.Identity)" Condition=" Exists('$(MSBuildThisFileDirectory)lib\%(_TargetArchitecture.Identity)') "/> - <_TargetLibInterpreterDir Include="$(MSBuildThisFileDirectory)lib\$(_TargetInterpreterPrefix)%(_TargetArchitecture.Identity)" Condition=" Exists('$(MSBuildThisFileDirectory)lib\$(_TargetInterpreterPrefix)%(_TargetArchitecture.Identity)') "/> - - - - - - - <_AndroidNativeLibraryForFastDev Condition=" '$(_InstantRunEnabled)' == 'True' And '$(AndroidUseDebugRuntime)' == 'True' " Include="%(_TargetLibInterpreterDir.Identity)\libmono-native.so" /> - <_AndroidNativeLibraryForFastDev Condition=" '$(_InstantRunEnabled)' == 'True' And '$(AndroidUseDebugRuntime)' == 'True' And '$(_AndroidCheckedBuild)' == '' " Include="%(_TargetLibDir.Identity)\libxamarin-debug-app-helper.so" /> - <_AndroidNativeLibraryForFastDev Condition=" '$(_InstantRunEnabled)' == 'True' And '$(AndroidUseDebugRuntime)' == 'True' And '$(_AndroidCheckedBuild)' != '' " Include="%(_TargetLibDir.Identity)\libxamarin-debug-app-helper-checked+$(_AndroidCheckedBuild).so" ArchiveFileName="libxamarin-debug-app-helper.so" /> - - - - - - - - - - - - - - - - - <_PrepareAssembliesDependsOnTargets> - _ResolveAssemblies; - _ResolveSatellitePaths; - _CreatePackageWorkspace; - _CopyConfigFiles; - _ConvertPdbFiles; - _LinkAssemblies; - - - - - - - - - - - - - - - - - - - - - - - - <_ResolvedAssemblies Include="@(ResolvedAssemblies->'$(MonoAndroidIntermediateAssemblyDir)%(Filename)%(Extension)')" /> - <_ResolvedSymbols Include="@(ResolvedSymbols->'$(MonoAndroidIntermediateAssemblyDir)%(Filename)%(Extension)')" /> - <_ResolvedUserAssemblies Include="@(ResolvedUserAssemblies->'$(MonoAndroidIntermediateAssemblyDir)%(Filename)%(Extension)')" /> - <_ResolvedFrameworkAssemblies Include="@(ResolvedFrameworkAssemblies->'$(MonoAndroidIntermediateAssemblyDir)%(Filename)%(Extension)')" /> - - - <_ShrunkAssemblies Include="@(_ResolvedAssemblies)" /> - <_ShrunkUserAssemblies Include="@(_ResolvedUserAssemblies)" /> - <_ShrunkFrameworkAssemblies Include="@(_ResolvedFrameworkAssemblies)" /> - - - <_ShrunkAssemblies Include="@(_ResolvedAssemblies->'$(MonoAndroidIntermediateAssemblyDir)shrunk\%(Filename)%(Extension)')" /> - <_ShrunkUserAssemblies Include="@(_ResolvedUserAssemblies->'$(MonoAndroidIntermediateAssemblyDir)shrunk\%(Filename)%(Extension)')" /> - <_ShrunkFrameworkAssemblies Include="@(_ResolvedFrameworkAssemblies->'$(MonoAndroidIntermediateAssemblyDir)shrunk\%(Filename)%(Extension)')" /> - - - <_ResolvedUserMonoAndroidAssemblies - Include="@(_ResolvedUserAssemblies)" - Condition=" '%(_ResolvedUserAssemblies.TargetFrameworkIdentifier)' == 'MonoAndroid' Or '%(_ResolvedUserAssemblies.HasMonoAndroidReference)' == 'true' " - /> - - - - - - - - - <_MainAssembly Condition=" '$(AndroidGenerateJniMarshalMethods)' != 'True' ">$(TargetPath) - <_MainAssembly Condition=" '$(AndroidGenerateJniMarshalMethods)' == 'True' ">$(_JniMarshalMethodsOutputDir)$(TargetFileName) - - - <_AssembliesToLink Include="@(ResolvedAssemblies)" /> - - - <_PossibleAssembliesToLink Include="@(ResolvedAssemblies)"> - $(_JniMarshalMethodsOutputDir)%(Filename)%(Extension) - - <_AssembliesToLink Condition="Exists(%(_PossibleAssembliesToLink.JniAssembly))" Include="%(_PossibleAssembliesToLink.JniAssembly)" /> - <_AssembliesToLink Condition="!Exists(%(_PossibleAssembliesToLink.JniAssembly))" Include="%(_PossibleAssembliesToLink.Identity)" /> - - - - - - - - - - - - - - - - - - - - - - <_StartupAotProfile Condition="'%(ResolvedAssemblies.Filename)' == 'Xamarin.Forms.Platform.Android'">startup-xf.aotprofile - <_StartupAotProfile Condition="'$(_StartupAotProfile)' == ''">startup.aotprofile - - - - - - - - - <_AotProfiles Include="@(AndroidAotProfile)" /> - - - - - - - <_CilStripAssemblies Include="@(_ShrunkAssemblies)" Condition=" '%(FileName)' != 'Mono.Android' " /> - - - - - - - - - - - - - - From 73907470c0daec8dc27b605b6ead36b273cef1c1 Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Fri, 21 Apr 2023 16:57:51 -0500 Subject: [PATCH 2/2] Update GeneratedMakeRulesFile.cs --- .../xaprepare/Application/GeneratedMakeRulesFile.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/build-tools/xaprepare/xaprepare/Application/GeneratedMakeRulesFile.cs b/build-tools/xaprepare/xaprepare/Application/GeneratedMakeRulesFile.cs index f2145cba480..06d382b66ea 100644 --- a/build-tools/xaprepare/xaprepare/Application/GeneratedMakeRulesFile.cs +++ b/build-tools/xaprepare/xaprepare/Application/GeneratedMakeRulesFile.cs @@ -142,11 +142,6 @@ void Generate (Context context, StreamWriter sw) string firstFramework = frameworks [0]; string latestStableFramework = stableFrameworks [stableFrameworks.Count - 1]; - WriteMSBuildCall ( - fileToRemovePath: Path.Combine (monoFrameworksRoot, "v1.0", "Xamarin.Android.NUnitLite.dll"), - projectPath: "src/Xamarin.Android.NUnitLite/Xamarin.Android.NUnitLite.csproj" - ); - WriteMSBuildCall ( fileToRemovePath: $"{monoFrameworksRoot}/{latestStableFramework}/Mono.Android.Export.*", projectPath: "src/Mono.Android.Export/Mono.Android.Export.csproj"