Use filegroup to simplify Android.bp for frameworks and its friends
Java and AIDL source files under frameworks/base are now modularized
using filegroup. Each filegroup has 'path' property set to the base
directory of the ssource files. This allows us to not rely on
aidl.[local_]include_dirs and srcs_lib_whitelist_dirs to get the base
directories.
Bug: 70046217
Test: m
Change-Id: I0705ddf76b3c628127f65d75e0a8b06c6c250fe2
diff --git a/Android.bp b/Android.bp
index b2ed0de..af2f112 100644
--- a/Android.bp
+++ b/Android.bp
@@ -26,47 +26,164 @@
// READ ME: ########################################################
filegroup {
- name: "framework-defaults-java-srcs",
+ name: "framework-core-sources",
srcs: [
- // java sources under this directory
"core/java/**/*.java",
- "drm/java/**/*.java",
- "graphics/java/**/*.java",
- "keystore/java/**/*.java",
- "location/java/**/*.java",
- "lowpan/java/**/*.java",
- "media/java/**/*.java",
- "media/mca/effect/java/**/*.java",
- "media/mca/filterfw/java/**/*.java",
- "media/mca/filterpacks/java/**/*.java",
- "opengl/java/**/*.java",
- "rs/java/**/*.java",
- "sax/java/**/*.java",
- "telecomm/java/**/*.java",
- "telephony/java/**/*.java",
- "wifi/java/**/*.java",
+ "core/java/**/*.aidl",
],
+ path: "core/java",
}
-// TODO(b/70046217): make these as filegroups where the base directory for aidl files
-// is given as 'path'. Eliminate the need for aidl_local_include_dirs.
-framework_srcs = [
- // aidl under this directory
- // b/70046217#comment15 These MUST come after all java srcs.
- // TODO(b/70046217) remove the above requirement
- "core/java/**/*.aidl",
- "graphics/java/**/*.aidl",
- "keystore/java/**/*.aidl",
- "location/java/**/*.aidl",
- "lowpan/java/**/*.aidl",
- "media/java/**/*.aidl",
- "packages/services/PacProcessor/**/*.aidl",
- "packages/services/Proxy/**/*.aidl",
- "telecomm/java/**/*.aidl",
- "telephony/java/**/*.aidl",
- "wifi/java/**/*.aidl",
+filegroup {
+ name: "framework-drm-sources",
+ srcs: [
+ "drm/java/**/*.java",
+ ],
+ path: "drm/java",
+}
- // aidl from external directories
+filegroup {
+ name: "framework-graphics-sources",
+ srcs: [
+ "graphics/java/**/*.java",
+ "graphics/java/**/*.aidl",
+ ],
+ path: "graphics/java",
+}
+
+filegroup {
+ name: "framework-keystore-sources",
+ srcs: [
+ "keystore/java/**/*.java",
+ "keystore/java/**/*.aidl",
+ ],
+ path: "keystore/java",
+}
+
+filegroup {
+ name: "framework-location-sources",
+ srcs: [
+ "location/java/**/*.java",
+ "location/java/**/*.aidl",
+ ],
+ path: "location/java",
+}
+
+filegroup {
+ name: "framework-lowpan-sources",
+ srcs: [
+ "lowpan/java/**/*.java",
+ "lowpan/java/**/*.aidl",
+ ],
+ path: "lowpan/java",
+}
+
+filegroup {
+ name: "framework-media-sources",
+ srcs: [
+ "media/java/**/*.java",
+ "media/java/**/*.aidl",
+ ],
+ path: "media/java",
+}
+
+filegroup {
+ name: "framework-mca-effect-sources",
+ srcs: [
+ "media/mca/effect/java/**/*.java",
+ ],
+ path: "media/mca/effect/java",
+}
+
+filegroup {
+ name: "framework-mca-filterfw-sources",
+ srcs: [
+ "media/mca/filterfw/java/**/*.java",
+ ],
+ path: "media/mca/filterfw/java",
+}
+
+filegroup {
+ name: "framework-mca-filterpacks-sources",
+ srcs: [
+ "media/mca/filterpacks/java/**/*.java",
+ ],
+ path: "media/mca/filterpacks/java",
+}
+
+filegroup {
+ name: "framework-opengl-sources",
+ srcs: [
+ "opengl/java/**/*.java",
+ ],
+ path: "opengl/java",
+}
+
+filegroup {
+ name: "framework-rs-sources",
+ srcs: [
+ "rs/java/**/*.java",
+ ],
+ path: "rs/java",
+}
+
+filegroup {
+ name: "framework-sax-sources",
+ srcs: [
+ "sax/java/**/*.java",
+ ],
+ path: "sax/java",
+}
+
+filegroup {
+ name: "framework-telecomm-sources",
+ srcs: [
+ "telecomm/java/**/*.java",
+ "telecomm/java/**/*.aidl",
+ ],
+ path: "telecomm/java",
+}
+
+filegroup {
+ name: "framework-telephony-sources",
+ srcs: [
+ "telephony/java/**/*.java",
+ "telephony/java/**/*.aidl",
+ ],
+ path: "telephony/java",
+}
+
+filegroup {
+ name: "framework-wifi-sources",
+ srcs: [
+ "wifi/java/**/*.java",
+ "wifi/java/**/*.aidl",
+ ],
+ 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",
+
+ // AIDL sources from external directories
":dumpstate_aidl",
":gatekeeper_aidl",
":gsiservice_aidl",
@@ -88,47 +205,28 @@
":framework-statslog-gen",
]
-framework_aidl_local_include_dirs = [
- "core/java",
- "drm/java",
- "graphics/java",
- "keystore/java",
- "location/java",
- "lowpan/java",
- "media/java",
- "media/apex/java",
- "media/mca/effect/java",
- "media/mca/filterfw/java",
- "media/mca/filterpacks/java",
- "opengl/java",
- "rs/java",
- "sax/java",
- "telecomm/java",
- "telephony/java",
- "wifi/java",
-]
-
-framework_aidl_external_include_dirs = [
- "frameworks/av/camera/aidl",
- "frameworks/av/media/libaudioclient/aidl",
- "frameworks/native/aidl/binder",
- "frameworks/native/aidl/gui",
- "frameworks/native/cmds/dumpstate/binder",
- "frameworks/native/libs/incidentcompanion/binder",
- "system/bt/binder",
- "system/core/gatekeeperd/binder",
- "system/core/storaged/binder",
- "system/gsid/aidl",
- "system/security/keystore/binder",
- "system/update_engine/binder_bindings",
- "system/vold/binder",
-]
-
java_defaults {
name: "framework-aidl-export-defaults",
-
aidl: {
- export_include_dirs: framework_aidl_local_include_dirs,
+ export_include_dirs: [
+ "core/java",
+ "drm/java",
+ "graphics/java",
+ "keystore/java",
+ "location/java",
+ "lowpan/java",
+ "media/java",
+ "media/apex/java",
+ "media/mca/effect/java",
+ "media/mca/filterfw/java",
+ "media/mca/filterpacks/java",
+ "opengl/java",
+ "rs/java",
+ "sax/java",
+ "telecomm/java",
+ "telephony/java",
+ "wifi/java",
+ ],
},
}
@@ -137,13 +235,15 @@
defaults: ["framework-aidl-export-defaults"],
installable: true,
- srcs: [
- ":framework-defaults-java-srcs",
- ] + framework_srcs,
+ srcs: framework_srcs,
aidl: {
- local_include_dirs: framework_aidl_local_include_dirs,
- include_dirs: framework_aidl_external_include_dirs,
+ // TODO(b/70046217) remove this by moving the AIDL files into frameworks/base
+ // so that they are referenced via framework-core-sources
+ include_dirs: [
+ "frameworks/native/aidl/binder",
+ "frameworks/native/aidl/gui",
+ ],
generate_get_transaction_name: true,
},
@@ -793,7 +893,6 @@
":jobscheduler-framework-source",
],
srcs_lib: "framework-minus-apex",
- srcs_lib_whitelist_dirs: frameworks_base_subdirs,
srcs_lib_whitelist_pkgs: packages_to_document,
libs: framework_docs_only_libs,
local_sourcepaths: frameworks_base_subdirs,
@@ -851,7 +950,6 @@
":jobscheduler-framework-source",
],
srcs_lib: "framework-minus-apex",
- srcs_lib_whitelist_dirs: frameworks_base_subdirs,
srcs_lib_whitelist_pkgs: packages_to_document,
local_sourcepaths: frameworks_base_subdirs,
installable: false,
@@ -1172,8 +1270,7 @@
droidstubs {
name: "hiddenapi-mappings",
defaults: ["metalava-api-stubs-default"],
- srcs: [
- ":framework-defaults-java-srcs",
+ srcs: framework_srcs + [
":non_openjdk_java_files",
":openjdk_java_files",
":opt-telephony-common-srcs",
@@ -1313,8 +1410,6 @@
aidl_mapping {
name: "framework-aidl-mappings",
srcs: framework_srcs,
- local_include_dirs: framework_aidl_local_include_dirs,
- include_dirs: framework_aidl_external_include_dirs,
output: "framework-aidl-mappings.txt",
}