Cut the dependency to framework from droiddoc modules
droiddoc modules for the SDK API documentation and stubs library
generations have depended on the 'framework' (which was recently changed
to framework-minus-apex' module to get the list of Java source files to
be processed.
This however caused a circular dependency when we tried to modularize
some classes in the framework library as a separate library. The
separate java library depended on the stubs library (because it should
only use SDK APIs) and the stubs library depended on the framework
library. The framework library itself depended on the separated library
(or its stub) to use APIs from the separated library, thus forming a
circular dependency.
This change fixes the problem by directly giving the framework source
files via a filegroup `framework-sources-to-document` where all Java
and AIDL files that are to be documented are included in.
This change also put the generated R.java and Manifest.java files from
framework-res into the filegroup for framework sources.
Bug: 70046217
Bug: 135922046
Test: m
Exempt-From-Owner-Approval: Approved internally
Merged-In: I09ad88da47540d31ad089aad5e1151a4b6877ec2
(cherry picked from commit 20426538f8)
Change-Id: I09ad88da47540d31ad089aad5e1151a4b6877ec2
This commit is contained in:
169
Android.bp
169
Android.bp
@@ -162,49 +162,54 @@ filegroup {
|
||||
path: "wifi/java",
|
||||
}
|
||||
|
||||
framework_srcs = [
|
||||
// Java/AIDL sources under frameworks/base
|
||||
":framework-core-sources",
|
||||
":framework-drm-sources",
|
||||
":framework-graphics-sources",
|
||||
":framework-keystore-sources",
|
||||
":framework-location-sources",
|
||||
":framework-lowpan-sources",
|
||||
":framework-media-sources",
|
||||
":framework-mca-effect-sources",
|
||||
":framework-mca-filterfw-sources",
|
||||
":framework-mca-filterpacks-sources",
|
||||
":framework-opengl-sources",
|
||||
":framework-rs-sources",
|
||||
":framework-sax-sources",
|
||||
":framework-telecomm-sources",
|
||||
":framework-telephony-sources",
|
||||
":framework-wifi-sources",
|
||||
":PacProcessor-aidl-sources",
|
||||
":ProxyHandler-aidl-sources",
|
||||
filegroup {
|
||||
name: "framework-srcs",
|
||||
srcs: [
|
||||
// Java/AIDL sources under frameworks/base
|
||||
":framework-core-sources",
|
||||
":framework-drm-sources",
|
||||
":framework-graphics-sources",
|
||||
":framework-keystore-sources",
|
||||
":framework-location-sources",
|
||||
":framework-lowpan-sources",
|
||||
":framework-media-sources",
|
||||
":framework-mca-effect-sources",
|
||||
":framework-mca-filterfw-sources",
|
||||
":framework-mca-filterpacks-sources",
|
||||
":framework-opengl-sources",
|
||||
":framework-rs-sources",
|
||||
":framework-sax-sources",
|
||||
":framework-telecomm-sources",
|
||||
":framework-telephony-sources",
|
||||
":framework-wifi-sources",
|
||||
":PacProcessor-aidl-sources",
|
||||
":ProxyHandler-aidl-sources",
|
||||
|
||||
// AIDL sources from external directories
|
||||
":dumpstate_aidl",
|
||||
":framework_native_aidl",
|
||||
":gatekeeper_aidl",
|
||||
":gsiservice_aidl",
|
||||
":incidentcompanion_aidl",
|
||||
":installd_aidl",
|
||||
":keystore_aidl",
|
||||
":libaudioclient_aidl",
|
||||
":libbinder_aidl",
|
||||
":libbluetooth-binder-aidl",
|
||||
":libcamera_client_aidl",
|
||||
":libcamera_client_framework_aidl",
|
||||
":libupdate_engine_aidl",
|
||||
":storaged_aidl",
|
||||
":vold_aidl",
|
||||
// AIDL sources from external directories
|
||||
":dumpstate_aidl",
|
||||
":framework_native_aidl",
|
||||
":gatekeeper_aidl",
|
||||
":gsiservice_aidl",
|
||||
":incidentcompanion_aidl",
|
||||
":installd_aidl",
|
||||
":keystore_aidl",
|
||||
":libaudioclient_aidl",
|
||||
":libbinder_aidl",
|
||||
":libbluetooth-binder-aidl",
|
||||
":libcamera_client_aidl",
|
||||
":libcamera_client_framework_aidl",
|
||||
":libupdate_engine_aidl",
|
||||
":storaged_aidl",
|
||||
":vold_aidl",
|
||||
|
||||
// etc.
|
||||
"core/java/**/*.logtags",
|
||||
":framework-javastream-protos",
|
||||
":framework-statslog-gen",
|
||||
]
|
||||
// For the generated R.java and Manifest.java
|
||||
":framework-res{.aapt.srcjar}",
|
||||
|
||||
// etc.
|
||||
":framework-javastream-protos",
|
||||
":framework-statslog-gen",
|
||||
],
|
||||
}
|
||||
|
||||
java_defaults {
|
||||
name: "framework-aidl-export-defaults",
|
||||
@@ -231,30 +236,10 @@ java_defaults {
|
||||
},
|
||||
}
|
||||
|
||||
java_defaults {
|
||||
name: "framework-defaults",
|
||||
defaults: ["framework-aidl-export-defaults"],
|
||||
installable: true,
|
||||
|
||||
srcs: framework_srcs,
|
||||
|
||||
aidl: {
|
||||
generate_get_transaction_name: true,
|
||||
},
|
||||
|
||||
exclude_srcs: [
|
||||
// See comment on framework-atb-backward-compatibility module below
|
||||
"core/java/android/content/pm/AndroidTestBaseUpdater.java",
|
||||
],
|
||||
|
||||
sdk_version: "core_platform",
|
||||
libs: [
|
||||
"ext",
|
||||
"updatable_media_stubs",
|
||||
],
|
||||
|
||||
jarjar_rules: ":framework-jarjar-rules",
|
||||
|
||||
// Collection of classes that are generated from non-Java files that are not listed in
|
||||
// framework_srcs. These have no or very limited dependency to the framework.
|
||||
java_library {
|
||||
name: "framework-internal-utils",
|
||||
static_libs: [
|
||||
"mimemap",
|
||||
"apex_aidl_interface-java",
|
||||
@@ -290,6 +275,38 @@ java_defaults {
|
||||
"com.android.sysprop.apex",
|
||||
"PlatformProperties",
|
||||
],
|
||||
sdk_version: "core_platform",
|
||||
installable: false,
|
||||
}
|
||||
|
||||
java_defaults {
|
||||
name: "framework-defaults",
|
||||
defaults: ["framework-aidl-export-defaults"],
|
||||
installable: true,
|
||||
|
||||
srcs: [
|
||||
":framework-srcs",
|
||||
"core/java/**/*.logtags",
|
||||
],
|
||||
|
||||
aidl: {
|
||||
generate_get_transaction_name: true,
|
||||
},
|
||||
|
||||
exclude_srcs: [
|
||||
// See comment on framework-atb-backward-compatibility module below
|
||||
"core/java/android/content/pm/AndroidTestBaseUpdater.java",
|
||||
],
|
||||
|
||||
sdk_version: "core_platform",
|
||||
libs: [
|
||||
"ext",
|
||||
"updatable_media_stubs",
|
||||
],
|
||||
|
||||
jarjar_rules: ":framework-jarjar-rules",
|
||||
|
||||
static_libs: ["framework-internal-utils"],
|
||||
|
||||
required: [
|
||||
// TODO: remove gps_debug when the build system propagates "required" properly.
|
||||
@@ -746,7 +763,7 @@ python_binary_host {
|
||||
],
|
||||
}
|
||||
|
||||
// TODO: Don't rely on this list once droiddoc can take a list of packages to document
|
||||
// TODO: Don't rely on this list by switching package.html into package-info.java
|
||||
frameworks_base_subdirs = [
|
||||
"core/java",
|
||||
"graphics/java",
|
||||
@@ -766,13 +783,6 @@ frameworks_base_subdirs = [
|
||||
"rs/java",
|
||||
]
|
||||
|
||||
packages_to_document = [
|
||||
"android",
|
||||
"javax/microedition/khronos",
|
||||
"org/apache/http/conn",
|
||||
"org/apache/http/params",
|
||||
]
|
||||
|
||||
// Make the api/current.txt file available for use by modules in other
|
||||
// directories.
|
||||
filegroup {
|
||||
@@ -873,6 +883,8 @@ metalava_framework_docs_args += " --replace-documentation " +
|
||||
stubs_defaults {
|
||||
name: "framework-doc-stubs-default",
|
||||
srcs: [
|
||||
":framework-srcs",
|
||||
"core/java/**/*.logtags",
|
||||
"test-base/src/**/*.java",
|
||||
":opt-telephony-srcs",
|
||||
":opt-net-voip-srcs",
|
||||
@@ -881,8 +893,6 @@ stubs_defaults {
|
||||
"test-mock/src/**/*.java",
|
||||
"test-runner/src/**/*.java",
|
||||
],
|
||||
srcs_lib: "framework",
|
||||
srcs_lib_whitelist_pkgs: packages_to_document,
|
||||
libs: framework_docs_only_libs,
|
||||
local_sourcepaths: frameworks_base_subdirs,
|
||||
create_doc_stubs: true,
|
||||
@@ -937,13 +947,14 @@ doc_defaults {
|
||||
stubs_defaults {
|
||||
name: "metalava-api-stubs-default",
|
||||
srcs: [
|
||||
":framework-srcs",
|
||||
"core/java/**/*.logtags",
|
||||
":opt-telephony-srcs",
|
||||
":opt-net-voip-srcs",
|
||||
":core_public_api_files",
|
||||
":updatable-media-srcs",
|
||||
],
|
||||
srcs_lib: "framework",
|
||||
srcs_lib_whitelist_pkgs: packages_to_document,
|
||||
libs: ["framework-internal-utils"],
|
||||
local_sourcepaths: frameworks_base_subdirs,
|
||||
installable: false,
|
||||
annotations_enabled: true,
|
||||
@@ -957,6 +968,7 @@ stubs_defaults {
|
||||
"sdk-dir",
|
||||
"api-versions-jars-dir",
|
||||
],
|
||||
sdk_version: "core_platform",
|
||||
}
|
||||
|
||||
droidstubs {
|
||||
@@ -1320,6 +1332,7 @@ droidstubs {
|
||||
":openjdk_java_files",
|
||||
":opt-telephony-common-srcs",
|
||||
],
|
||||
|
||||
arg_files: [
|
||||
"core/res/AndroidManifest.xml",
|
||||
],
|
||||
@@ -1454,7 +1467,7 @@ filegroup {
|
||||
// annotations to private apis
|
||||
aidl_mapping {
|
||||
name: "framework-aidl-mappings",
|
||||
srcs: framework_srcs,
|
||||
srcs: [":framework-srcs"],
|
||||
output: "framework-aidl-mappings.txt",
|
||||
}
|
||||
|
||||
|
||||
8
core/java/com/package.html
Normal file
8
core/java/com/package.html
Normal file
@@ -0,0 +1,8 @@
|
||||
<!--
|
||||
This file is to hide classes in com.* packages from SDK
|
||||
-->
|
||||
<html>
|
||||
<body>
|
||||
{@hide}
|
||||
</body>
|
||||
</html>
|
||||
@@ -16,10 +16,9 @@
|
||||
|
||||
java_sdk_library {
|
||||
name: "com.android.location.provider",
|
||||
srcs: ["java/**/*.java"],
|
||||
srcs: [
|
||||
"java/**/*.java",
|
||||
":framework-srcs",
|
||||
],
|
||||
api_packages: ["com.android.location.provider"],
|
||||
srcs_lib: "framework",
|
||||
// TODO(b/70046217): remove core/java and android below. It was added to provide definitions for
|
||||
// types like android.os.Bundle
|
||||
srcs_lib_whitelist_pkgs: ["android", "com.android.internal.location"],
|
||||
}
|
||||
|
||||
@@ -58,6 +58,7 @@ filegroup {
|
||||
"apex/java/android/media/Session2Link.java",
|
||||
"apex/java/android/media/Session2Token.java",
|
||||
],
|
||||
path: "apex/java",
|
||||
}
|
||||
|
||||
filegroup {
|
||||
@@ -94,18 +95,17 @@ droidstubs {
|
||||
":framework-media-annotation-srcs",
|
||||
],
|
||||
args: metalava_updatable_media_args,
|
||||
// Ideally, sdk_version here should be "current_system", but "current - 1" is used
|
||||
// to avoid dependency cycle with framework.
|
||||
sdk_version: "28",
|
||||
aidl: {
|
||||
// TODO(b/135922046) remove this
|
||||
include_dirs: ["frameworks/base/core/java"],
|
||||
},
|
||||
sdk_version: "system_current",
|
||||
}
|
||||
|
||||
java_library {
|
||||
name: "updatable_media_stubs",
|
||||
srcs: [":updatable-media-stubs"],
|
||||
|
||||
// Ideally, sdk_version here should be "current_system", but "current - 1" is used
|
||||
// to avoid dependency cycle with framework.
|
||||
sdk_version: "28",
|
||||
sdk_version: "system_current",
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
||||
@@ -16,8 +16,9 @@
|
||||
|
||||
java_sdk_library {
|
||||
name: "com.android.mediadrm.signer",
|
||||
srcs: ["java/**/*.java"],
|
||||
srcs: [
|
||||
"java/**/*.java",
|
||||
":framework-srcs",
|
||||
],
|
||||
api_packages: ["com.android.mediadrm.signer"],
|
||||
srcs_lib: "framework",
|
||||
srcs_lib_whitelist_pkgs: ["android.media"],
|
||||
}
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
java_sdk_library {
|
||||
name: "android.test.mock",
|
||||
|
||||
srcs: ["src/**/*.java"],
|
||||
srcs: [
|
||||
"src/**/*.java",
|
||||
":framework-srcs",
|
||||
],
|
||||
|
||||
api_packages: [
|
||||
"android.test.mock",
|
||||
],
|
||||
|
||||
srcs_lib: "framework",
|
||||
srcs_lib_whitelist_pkgs: ["android"],
|
||||
compile_dex: true,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user