From dd567f9c1430ea3fc3b30308284f9eeb5cf01aa2 Mon Sep 17 00:00:00 2001 From: Sundong Ahn Date: Tue, 31 Jul 2018 17:19:11 +0900 Subject: Add new properties Droiddoc_options is added, since all sdk libraries don't builds with the same argument. We provide basic droiddoc argument and options can be added like "stubsourceonly" by this property. When building stubs, soong don't make dex files, but some module uses dex files from stubs. So Complie_dex is added for compiling dex regardless of installable. Srcs_lib_whitelist_pkgs property is added for using other whitelist pkgs instead of "android.annotation". Bug: 77577799 Test: m -j Change-Id: Ic2fb7bc9c49a825550dbebe3e9132ad9a735322f --- java/sdk_library.go | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'java/sdk_library.go') diff --git a/java/sdk_library.go b/java/sdk_library.go index 57a0c3ab..525652a5 100644 --- a/java/sdk_library.go +++ b/java/sdk_library.go @@ -117,6 +117,17 @@ type sdkLibraryProperties struct { Javacflags []string } + // Additional droiddoc options + Droiddoc_options []string + + // If set to true, compile dex regardless of installable. Defaults to false. + // This applies to the stubs lib. + Compile_dex *bool + + // the sub dirs under srcs_lib_whitelist_dirs will be scanned for java srcs. + // Defaults to "android.annotation". + Srcs_lib_whitelist_pkgs []string + // TODO: determines whether to create HTML doc or not //Html_doc *bool } @@ -359,6 +370,7 @@ func (module *sdkLibrary) createStubsLibrary(mctx android.TopDownMutatorContext, Soc_specific *bool Device_specific *bool Product_specific *bool + Compile_dex *bool Product_variables struct { Unbundled_build struct { Enabled *bool @@ -377,6 +389,9 @@ func (module *sdkLibrary) createStubsLibrary(mctx android.TopDownMutatorContext, // Unbundled apps will use the prebult one from /prebuilts/sdk props.Product_variables.Unbundled_build.Enabled = proptools.BoolPtr(false) props.Product_variables.Pdk.Enabled = proptools.BoolPtr(false) + if module.properties.Compile_dex != nil { + props.Compile_dex = module.properties.Compile_dex + } if module.SocSpecific() { props.Soc_specific = proptools.BoolPtr(true) @@ -430,7 +445,7 @@ func (module *sdkLibrary) createDocs(mctx android.TopDownMutatorContext, apiScop droiddocArgs := " -hide 110 -hide 111 -hide 113 -hide 121 -hide 125 -hide 126 -hide 127 -hide 128" + " -stubpackages " + strings.Join(module.properties.Api_packages, ":") + " " + android.JoinWithPrefix(module.properties.Hidden_api_packages, "-hidePackage ") + - " -nodocs" + " " + android.JoinWithPrefix(module.properties.Droiddoc_options, "-") + " -nodocs" switch apiScope { case apiScopeSystem: droiddocArgs = droiddocArgs + " -showAnnotation android.annotation.SystemApi" @@ -488,7 +503,11 @@ func (module *sdkLibrary) createDocs(mctx android.TopDownMutatorContext, apiScop props.Srcs_lib_whitelist_dirs = []string{"core/java"} // Add android.annotation package to give access to the framework-defined // annotations such as SystemApi, NonNull, etc. - props.Srcs_lib_whitelist_pkgs = []string{"android.annotation"} + if module.properties.Srcs_lib_whitelist_pkgs != nil { + props.Srcs_lib_whitelist_pkgs = module.properties.Srcs_lib_whitelist_pkgs + } else { + props.Srcs_lib_whitelist_pkgs = []string{"android.annotation"} + } // These libs are required by doclava to parse the framework sources add via // Src_lib and Src_lib_whitelist_* properties just above. // If we don't add them to the classpath, errors messages are generated by doclava, -- cgit v1.2.3