From 2fa5338db13ba58fa8debcae1fd64d97caa655e0 Mon Sep 17 00:00:00 2001 From: Redth Date: Fri, 6 Oct 2017 12:54:24 -0400 Subject: [PATCH 1/7] [Xamarin.Android.Build.Tasks] Add ApiXmlPaths to ClassParse This will allow api.xml style documents to be specified as java doc inputs for the ClassParse task. Java.Interop already knows how to handle this doc source type. --- src/Xamarin.Android.Build.Tasks/Tasks/ClassParse.cs | 5 ++++- .../Xamarin.Android.Bindings.targets | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/ClassParse.cs b/src/Xamarin.Android.Build.Tasks/Tasks/ClassParse.cs index 678c9c73380..e66a54f3eac 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/ClassParse.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/ClassParse.cs @@ -31,12 +31,14 @@ public class ClassParse : Task public ITaskItem [] DroidDoc2Paths { get; set; } + public ITaskItem [] ApiXmlDocPaths { get; set; } + public ITaskItem [] JavaDocs { get; set; } public IEnumerable DocsPaths { get { Func> f = l => l ?? Enumerable.Empty (); - return f (JavaDocPaths).Concat (f (Java7DocPaths)).Concat (f (Java8DocPaths)).Concat (f (DroidDocPaths)).Concat (f (DroidDoc2Paths)).Concat (f (JavaDocs)); + return f (JavaDocPaths).Concat (f (Java7DocPaths)).Concat (f (Java8DocPaths)).Concat (f (DroidDocPaths)).Concat (f (DroidDoc2Paths)).Concat (f (ApiXmlDocPaths)).Concat (f (JavaDocs)); } } @@ -50,6 +52,7 @@ public override bool Execute () Log.LogTaskItems (" Java8DocPaths: ", Java8DocPaths); Log.LogTaskItems (" DroidDocPaths: ", DroidDocPaths); Log.LogTaskItems (" DroidDoc2Paths: ", DroidDoc2Paths); + Log.LogTaskItems (" ApiXmlDocPaths: ", ApiXmlDocPaths); Log.LogTaskItems (" JavaDocs: ", JavaDocs); using (var output = new StreamWriter (OutputFile, append: false, diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets index 4016c475b69..48fd6fb2c4b 100755 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets @@ -375,6 +375,7 @@ Copyright (C) 2012 Xamarin Inc. All rights reserved. Java7DocPaths="$(Java7DocPaths)" Java8DocPaths="$(Java8DocPaths)" DroidDocPaths="$(DroidDocPaths)" + ApiXmlDocPaths="$(ApiXmlDocPaths)" JavaDocs="@(JavaDocJar->'$(IntermediateOutputPath)javadocs\%(FileName)')" /> From 73598ce5e9f9634fae9546ca91ab859eae76fff9 Mon Sep 17 00:00:00 2001 From: Redth Date: Mon, 30 Oct 2017 10:09:48 -0400 Subject: [PATCH 2/7] Bump java.interop --- external/Java.Interop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/Java.Interop b/external/Java.Interop index 00ad8d6f597..61c70ece24e 160000 --- a/external/Java.Interop +++ b/external/Java.Interop @@ -1 +1 @@ -Subproject commit 00ad8d6f5972d3b81d4a51225031e51c31a5a4a6 +Subproject commit 61c70ece24e5e59118fe4b093c60ef2898eb2748 From 1209f1cb36a144f45366d2f1ef20209fd5be3d07 Mon Sep 17 00:00:00 2001 From: Redth Date: Mon, 30 Oct 2017 20:50:41 -0400 Subject: [PATCH 3/7] Condense multi task parameters into one itemgroup We previously had JavaDocPaths, Java7DocPaths, etc. etc which were all separate task input parameters and itemgroups, but ultimately were concatenated into one single list anyway. This merges the existing separate itemgroups into one new itemgroup and one single ClassParse task parameter. --- .../Tasks/ClassParse.cs | 31 ++----------------- .../Xamarin.Android.Bindings.targets | 17 +++++----- 2 files changed, 13 insertions(+), 35 deletions(-) diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/ClassParse.cs b/src/Xamarin.Android.Build.Tasks/Tasks/ClassParse.cs index e66a54f3eac..a8e75ced172 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/ClassParse.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/ClassParse.cs @@ -21,46 +21,21 @@ public class ClassParse : Task [Required] public ITaskItem[] SourceJars { get; set; } - public ITaskItem[] JavaDocPaths { get; set; } - - public ITaskItem[] Java7DocPaths { get; set; } - - public ITaskItem[] Java8DocPaths { get; set; } - - public ITaskItem[] DroidDocPaths { get; set; } - - public ITaskItem [] DroidDoc2Paths { get; set; } - - public ITaskItem [] ApiXmlDocPaths { get; set; } - - public ITaskItem [] JavaDocs { get; set; } - - public IEnumerable DocsPaths { - get { - Func> f = l => l ?? Enumerable.Empty (); - return f (JavaDocPaths).Concat (f (Java7DocPaths)).Concat (f (Java8DocPaths)).Concat (f (DroidDocPaths)).Concat (f (DroidDoc2Paths)).Concat (f (ApiXmlDocPaths)).Concat (f (JavaDocs)); - } - } + public ITaskItem [] DocumentationPaths { get; set; } public override bool Execute () { Log.LogDebugMessage ("ClassParse Task"); Log.LogDebugMessage (" OutputFile: {0}", OutputFile); Log.LogTaskItems (" SourceJars: ", SourceJars); - Log.LogTaskItems (" JavaDocPaths: ", JavaDocPaths); - Log.LogTaskItems (" Java7DocPaths: ", Java7DocPaths); - Log.LogTaskItems (" Java8DocPaths: ", Java8DocPaths); - Log.LogTaskItems (" DroidDocPaths: ", DroidDocPaths); - Log.LogTaskItems (" DroidDoc2Paths: ", DroidDoc2Paths); - Log.LogTaskItems (" ApiXmlDocPaths: ", ApiXmlDocPaths); - Log.LogTaskItems (" JavaDocs: ", JavaDocs); + Log.LogTaskItems (" DocumentationPaths: ", DocumentationPaths); using (var output = new StreamWriter (OutputFile, append: false, encoding: new UTF8Encoding (encoderShouldEmitUTF8Identifier: false))) { Bytecode.Log.OnLog = LogEventHandler; var classPath = new Bytecode.ClassPath () { ApiSource = "class-parse", - DocumentationPaths = (DocsPaths ?? Enumerable.Empty ()).Select(x => x.ItemSpec) + DocumentationPaths = (DocumentationPaths ?? Enumerable.Empty ()).Select(x => x.ItemSpec) }; foreach (var jar in SourceJars) { if (Bytecode.ClassPath.IsJarFile (jar.ItemSpec)) { diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets index 48fd6fb2c4b..ab2903ef381 100755 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets @@ -366,17 +366,20 @@ Copyright (C) 2012 Xamarin Inc. All rights reserved. + + <_AndroidDocumentationPath Include="$(AndroidDocumentationPath)" /> + <_AndroidDocumentationPath Include="$(JavaDocPaths)" /> + <_AndroidDocumentationPath Include="$(Java7DocPaths)" /> + <_AndroidDocumentationPath Include="$(Java8DocPaths)" /> + <_AndroidDocumentationPath Include="$(DroidDocPaths)" /> + <_AndroidDocumentationPath Include="@(JavaDocJar->'$(IntermediateOutputPath)javadocs\%(FileName)')" /> + + - Date: Mon, 30 Oct 2017 22:11:14 -0400 Subject: [PATCH 4/7] Add AndroidDocumentation to AvailableItemName grp So we get the option to pick this from within the IDE. --- src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets index ab2903ef381..807c20ae9b4 100755 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets @@ -68,6 +68,7 @@ Copyright (C) 2012 Xamarin Inc. All rights reserved. + From 140e18750c81426fdd49252e43477fbc9095c2ad Mon Sep 17 00:00:00 2001 From: Redth Date: Mon, 30 Oct 2017 22:12:09 -0400 Subject: [PATCH 5/7] Fix item group include AndroidDocumentationPath will be assumed to be an `` entry, not a `` property unlike the other doc paths have historically been. `$` was therefore incorrect and should be `@` --- .../Xamarin.Android.Bindings.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets index 807c20ae9b4..66e57536311 100755 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets @@ -368,7 +368,7 @@ Copyright (C) 2012 Xamarin Inc. All rights reserved. - <_AndroidDocumentationPath Include="$(AndroidDocumentationPath)" /> + <_AndroidDocumentationPath Include="@(AndroidDocumentationPath)" /> <_AndroidDocumentationPath Include="$(JavaDocPaths)" /> <_AndroidDocumentationPath Include="$(Java7DocPaths)" /> <_AndroidDocumentationPath Include="$(Java8DocPaths)" /> From 72d0f56605eae9746b74f4a33a01adda31f4daeb Mon Sep 17 00:00:00 2001 From: Redth Date: Mon, 30 Oct 2017 22:14:26 -0400 Subject: [PATCH 6/7] Revert bump to java.interop --- external/Java.Interop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/Java.Interop b/external/Java.Interop index 61c70ece24e..00ad8d6f597 160000 --- a/external/Java.Interop +++ b/external/Java.Interop @@ -1 +1 @@ -Subproject commit 61c70ece24e5e59118fe4b093c60ef2898eb2748 +Subproject commit 00ad8d6f5972d3b81d4a51225031e51c31a5a4a6 From d0480801c35ebe7f6e9fa932f313a049e0af9d17 Mon Sep 17 00:00:00 2001 From: Redth Date: Fri, 3 Nov 2017 12:54:17 -0400 Subject: [PATCH 7/7] Revert AndroidDocumentationPath creation Use JavaDocIndex instead which already exists. --- .../Xamarin.Android.Bindings.targets | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets index 66e57536311..c063e092880 100755 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets @@ -68,7 +68,6 @@ Copyright (C) 2012 Xamarin Inc. All rights reserved. - @@ -368,7 +367,7 @@ Copyright (C) 2012 Xamarin Inc. All rights reserved. - <_AndroidDocumentationPath Include="@(AndroidDocumentationPath)" /> + <_AndroidDocumentationPath Include="@(JavaDocIndex)" /> <_AndroidDocumentationPath Include="$(JavaDocPaths)" /> <_AndroidDocumentationPath Include="$(Java7DocPaths)" /> <_AndroidDocumentationPath Include="$(Java8DocPaths)" />