diff --git a/.gitmodules b/.gitmodules index 02c34fcbc01..f7ad716dd35 100644 --- a/.gitmodules +++ b/.gitmodules @@ -12,8 +12,8 @@ branch = master [submodule "external/Java.Interop"] path = external/Java.Interop - url = https://github.com/xamarin/java.interop.git - branch = master + url = https://github.com/jonpryor/java.interop.git + branch = jonp-generator-javadoc-xml [submodule "external/lz4"] path = external/lz4 url = https://github.com/lz4/lz4.git diff --git a/Xamarin.Android.sln b/Xamarin.Android.sln index 5f4525a319d..f672d86ece7 100644 --- a/Xamarin.Android.sln +++ b/Xamarin.Android.sln @@ -142,6 +142,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.SourceWriter", "ext EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "apksigner", "src\apksigner\apksigner.csproj", "{9A9EF774-6EA6-414F-9D2F-DCD66C56B92A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "java-source-utils", "external\Java.Interop\tools\java-source-utils\java-source-utils.csproj", "{37FCD325-1077-4603-98E7-4509CAD648D6}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution src\Xamarin.Android.NamingCustomAttributes\Xamarin.Android.NamingCustomAttributes.projitems*{3f1f2f50-af1a-4a5a-bedb-193372f068d7}*SharedItemsImports = 4 @@ -376,7 +378,7 @@ Global {071D9096-65BB-4359-822E-09788439F210}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU {071D9096-65BB-4359-822E-09788439F210}.Debug|AnyCPU.Build.0 = Debug|Any CPU {071D9096-65BB-4359-822E-09788439F210}.Release|AnyCPU.ActiveCfg = Release|Any CPU - {071D9096-65BB-4359-822E-09788439F210}.Release|AnyCPU.Build.0 = Release|Any CPU EndGlobalSection + {071D9096-65BB-4359-822E-09788439F210}.Release|AnyCPU.Build.0 = Release|Any CPU {2CE4CD4B-B7B7-4EAE-A9BE-2699824D6096}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU {2CE4CD4B-B7B7-4EAE-A9BE-2699824D6096}.Debug|AnyCPU.Build.0 = Debug|Any CPU {2CE4CD4B-B7B7-4EAE-A9BE-2699824D6096}.Release|AnyCPU.ActiveCfg = Release|Any CPU @@ -389,6 +391,10 @@ Global {9A9EF774-6EA6-414F-9D2F-DCD66C56B92A}.Debug|AnyCPU.Build.0 = Debug|Any CPU {9A9EF774-6EA6-414F-9D2F-DCD66C56B92A}.Release|AnyCPU.ActiveCfg = Release|Any CPU {9A9EF774-6EA6-414F-9D2F-DCD66C56B92A}.Release|AnyCPU.Build.0 = Release|Any CPU + {37FCD325-1077-4603-98E7-4509CAD648D6}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU + {37FCD325-1077-4603-98E7-4509CAD648D6}.Debug|AnyCPU.Build.0 = Debug|Any CPU + {37FCD325-1077-4603-98E7-4509CAD648D6}.Release|AnyCPU.ActiveCfg = Release|Any CPU + {37FCD325-1077-4603-98E7-4509CAD648D6}.Release|AnyCPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -454,6 +460,7 @@ Global {2CE4CD4B-B7B7-4EAE-A9BE-2699824D6096} = {04E3E11E-B47D-4599-8AFC-50515A95E715} {86A8DEFE-7ABB-4097-9389-C249581E243D} = {04E3E11E-B47D-4599-8AFC-50515A95E715} {9A9EF774-6EA6-414F-9D2F-DCD66C56B92A} = {04E3E11E-B47D-4599-8AFC-50515A95E715} + {37FCD325-1077-4603-98E7-4509CAD648D6} = {864062D3-A415-4A6F-9324-5820237BA058} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {53A1F287-EFB2-4D97-A4BB-4A5E145613F6} diff --git a/build-tools/installers/create-installers.targets b/build-tools/installers/create-installers.targets index eda42c0f35f..efce109fa94 100644 --- a/build-tools/installers/create-installers.targets +++ b/build-tools/installers/create-installers.targets @@ -132,6 +132,7 @@ <_MSBuildFiles Include="$(MSBuildSrcDir)\illinkanalyzer.pdb" ExcludeFromAndroidNETSdk="true" /> <_MSBuildFiles Include="$(MSBuildSrcDir)\Irony.dll" /> <_MSBuildFiles Include="$(MSBuildSrcDir)\java-interop.jar" /> + <_MSBuildFiles Include="$(MSBuildSrcDir)\java-source-utils.jar" /> <_MSBuildFiles Include="$(MSBuildSrcDir)\javadoc-to-mdoc.exe" ExcludeFromAndroidNETSdk="true" /> <_MSBuildFiles Include="$(MSBuildSrcDir)\javadoc-to-mdoc.pdb" ExcludeFromAndroidNETSdk="true" /> <_MSBuildFiles Include="$(MSBuildSrcDir)\Java.Interop.dll" /> @@ -149,6 +150,8 @@ <_MSBuildFiles Include="$(MSBuildSrcDir)\Java.Interop.Tools.Generator.pdb" ExcludeFromAndroidNETSdk="true" /> <_MSBuildFiles Include="$(MSBuildSrcDir)\Java.Interop.Tools.JavaCallableWrappers.dll" /> <_MSBuildFiles Include="$(MSBuildSrcDir)\Java.Interop.Tools.JavaCallableWrappers.pdb" /> + <_MSBuildFiles Include="$(MSBuildSrcDir)\Java.Interop.Tools.JavaSource.dll" /> + <_MSBuildFiles Include="$(MSBuildSrcDir)\Java.Interop.Tools.JavaSource.pdb" /> <_MSBuildFiles Include="$(MSBuildSrcDir)\Java.Runtime.Environment.dll" /> <_MSBuildFiles Include="$(MSBuildSrcDir)\Java.Runtime.Environment.pdb" /> <_MSBuildFiles Include="$(MSBuildSrcDir)\Java.Runtime.Environment.dll.config" Condition=" '$(HostOS)' != 'Windows' " /> diff --git a/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/AndroidToolchain.cs b/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/AndroidToolchain.cs index b2286001e72..6266f200528 100644 --- a/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/AndroidToolchain.cs +++ b/build-tools/xaprepare/xaprepare/ConfigAndData/Dependencies/AndroidToolchain.cs @@ -62,6 +62,8 @@ public AndroidToolchain () new AndroidPlatformComponent ("platform-29_r01", apiLevel: "29", pkgRevision: "1"), new AndroidPlatformComponent ("platform-30_r01", apiLevel: "30", pkgRevision: "1"), + new AndroidToolchainComponent ("sources-30_r01", destDir: Path.Combine ("platforms", $"android-30", "src"), pkgRevision: "1", dependencyType: AndroidToolchainComponentType.BuildDependency), + new AndroidToolchainComponent ("docs-24_r01", destDir: "docs", pkgRevision: "1", dependencyType: AndroidToolchainComponentType.BuildDependency), new AndroidToolchainComponent ("android_m2repository_r47", destDir: Path.Combine ("extras", "android", "m2repository"), pkgRevision: "47.0.0", dependencyType: AndroidToolchainComponentType.BuildDependency), new AndroidToolchainComponent ($"x86_64-29_r07-{osTag}", destDir: Path.Combine ("system-images", "android-29", "default", "x86_64"), relativeUrl: new Uri ("sys-img/android/", UriKind.Relative), pkgRevision: "7", dependencyType: AndroidToolchainComponentType.EmulatorDependency), diff --git a/build-tools/xaprepare/xaprepare/ThirdPartyNotices/Java.Interop.cs b/build-tools/xaprepare/xaprepare/ThirdPartyNotices/Java.Interop.cs index c76d89ff01f..7128b63c9ca 100644 --- a/build-tools/xaprepare/xaprepare/ThirdPartyNotices/Java.Interop.cs +++ b/build-tools/xaprepare/xaprepare/ThirdPartyNotices/Java.Interop.cs @@ -12,6 +12,7 @@ class JavaInterop_External_Dependencies_Group : ThirdPartyNoticeGroup public override List Notices => new List { new JavaInterop_xamarin_Java_Interop_TPN (), new JavaInterop_gityf_crc_TPN (), + new JavaInterop_javaparser_javaparser_TPN (), new JavaInterop_jbevain_mono_linq_expressions_TPN (), new JavaInterop_mono_csharp_TPN (), new JavaInterop_mono_LineEditor_TPN (), @@ -69,6 +70,18 @@ POSSIBILITY OF SUCH DAMAGE. "; } + // via: https://github.com/xamarin/java.interop/blob/b588ef502d8d3b4c32e0ad731115e1b71fd56b5c/tools/java-source-utils/build.gradle#L33-L34 + class JavaInterop_javaparser_javaparser_TPN : ThirdPartyNotice + { + static readonly Uri url = new Uri ("https://github.com/javaparser/javaparser/"); + static readonly string licenseFile = Path.Combine (Configurables.Paths.ExternalJavaInteropDir, "LICENSE"); + + public override string LicenseFile => CommonLicenses.Apache20Path; + public override string Name => "javaparser/javaparser"; + public override Uri SourceUrl => url; + public override string LicenseText => String.Empty; + } + // git submodules of Java.Interop class JavaInterop_jbevain_mono_linq_expressions_TPN : ThirdPartyNotice { diff --git a/external/Java.Interop b/external/Java.Interop index 99897b24ead..36410215a7d 160000 --- a/external/Java.Interop +++ b/external/Java.Interop @@ -1 +1 @@ -Subproject commit 99897b24eada3b68fa1eedae41efd15fbf128ae1 +Subproject commit 36410215a7de81afceeebc4a8e60dfca7173ca32 diff --git a/src/Mono.Android/Mono.Android.csproj b/src/Mono.Android/Mono.Android.csproj index 8377a02c8f9..2fdba68da06 100644 --- a/src/Mono.Android/Mono.Android.csproj +++ b/src/Mono.Android/Mono.Android.csproj @@ -24,6 +24,16 @@ true + + + True + + + + $(OutputPath)Mono.Android.xml + CS1573;CS1591 + + MonoAndroid v1.0 @@ -344,7 +354,8 @@ - + + diff --git a/src/Mono.Android/Mono.Android.targets b/src/Mono.Android/Mono.Android.targets index 76f9388fb5f..13343a093f3 100644 --- a/src/Mono.Android/Mono.Android.targets +++ b/src/Mono.Android/Mono.Android.targets @@ -53,6 +53,50 @@ Replacements="@PACKAGE_VERSION@=$(_PackageVersion);@PACKAGE_VERSION_BUILD@=$(_PackageVersionBuild);@PACKAGE_HEAD_REV@=$(XAVersionHash);@PACKAGE_HEAD_BRANCH@=$(XAVersionBranch)"> + + <_JavaSourceUtilsJar>$(XAInstallPrefix)xbuild\Xamarin\Android\java-source-utils.jar + <_AndroidStableSrcDir>$(AndroidSdkDirectory)\platforms\android-$(AndroidLatestStableApiLevel)\src + <_AndroidJavadocXml>..\..\bin\Build$(Configuration)\android-javadoc.xml + + + + <_Doclink Include="--doc-copyright" /> + <_Doclink Include="$(MSBuildThisFileDirectory)javadoc-copyright.xml" /> + <_Doclink Include="--doc-url-prefix" /> + <_Doclink Include="https://developer.android.com/reference" /> + <_Doclink Include="--doc-url-style" /> + <_Doclink Include="developer.android.com/reference@2020-Nov" /> + + + <_AndroidSources Include="$(_AndroidStableSrcDir)\android\**\*.java" /> + <_AndroidSources Include="$(_AndroidStableSrcDir)\java\**\*.java" /> + <_AndroidSources Include="$(_AndroidStableSrcDir)\javax\**\*.java" /> + <_AndroidSources Include="$(_AndroidStableSrcDir)\org\**\*.java" /> + <_AndroidSources Remove="$(_AndroidStableSrcDir)\**\*.annotated.java" /> + + + <_Filenames>$(IntermediateOutputPath)\java-sources.txt + + + + <_JSIArg Include="-v" /> + <_JSIArg Include="--source "$(_AndroidStableSrcDir)"" /> + <_JSIArg Include="--output-javadoc "$(_AndroidJavadocXml)"" /> + <_JSIArg Include="@$(_Filenames)" /> + + + + --type-map-report=$(IntermediateOutputPath)mcw\type-mapping.txt <_Api>$(IntermediateOutputPath)mcw\api.xml <_Dirs>--enumdir=$(IntermediateOutputPath)mcw + <_WithJavadocXml Condition=" '$(IncludeAndroidJavadoc)' == 'True' ">"--with-javadoc-xml=$(_AndroidJavadocXml)" <_FullIntermediateOutputPath>$([System.IO.Path]::GetFullPath('$(IntermediateOutputPath)')) <_LangFeatures>--lang-features=nullable-reference-types <_LangFeatures Condition="$(AndroidApiLevel) >= 30">$(_LangFeatures),default-interface-methods,nested-interface-types,interface-constants diff --git a/src/Mono.Android/javadoc-copyright.xml b/src/Mono.Android/javadoc-copyright.xml new file mode 100644 index 00000000000..2d0793f1eca --- /dev/null +++ b/src/Mono.Android/javadoc-copyright.xml @@ -0,0 +1,11 @@ + + Portions of this page are modifications based on work created + and shared by the + + Android Open Source Project + + and used according to terms described in the + + Creative Commons 2.5 Attribution License. + +