platform_build_soong/java
Jiakai Zhang f98da19a07 Refactor the contruction of the manifest check inputs.
This is a no-op change for a majority of cases.

Before this change, the contruction of the manifest check inputs is
confusing. It mutates uses_libs properties in place just for the
manifest check, by replacing module names with library names for
direct dependencies and merging library names from CLC for both direct
denpendencies and transitive denpendencies, and then constructs manifest
check inputs from those mutated uses_libs properties. This is
error-prone and leads to insistency: the goal is to check that the CLC
matches the manifest, but the inputs to the check don't reflect the CLC.

After this change, we no longer mutate uses_libs properties in place.
Instead, we maintain a separate list of missing denpendencies, and then
construct manifest check inputs directly from the CLC for all existing
libraries, no matter they are direct or transtive, and from the separate
list of missing libraries. This change makes the logic more
consistent and straightforward, and it also allows us to easily do the
next change, which is to propagate transtive missing denpendencies.

In fact, this change revealed several bugs around library optionality
and order in CLC construction, and fixed them.

Bug: 331528424
Test: m --no-skip-soong-tests
Ignore-AOSP-First: Depends on internal changes. Will cherry-pick once merged.
Merged-In: I0de82e76c47995b54aba9efd41538d950256a95f
Change-Id: I0de82e76c47995b54aba9efd41538d950256a95f
2024-04-15 11:15:41 +00:00
..
config Merge "Revert^2 "Switch to JDK 21"" into main 2024-03-11 18:40:04 +00:00
core-libraries Enable non-"everything" stubs generation in java_api_library 2024-02-28 07:55:32 +00:00
aapt2.go Merge changes from topic "aconfig_dump_map" into main am: 25c187cc7d am: 1ed5d5ca20 am: 1befeeb5e8 2023-12-08 11:31:22 +00:00
aar.go Refactor the contruction of the manifest check inputs. 2024-04-15 11:15:41 +00:00
aar_test.go Add aconfig flag support for android_library 2024-03-20 00:06:05 +00:00
Android.bp Add android_ravenwood_test build rule 2024-02-08 09:25:35 -08:00
android_manifest.go Add environment variable UNBUNDLED_BUILD_TARGET_SDK_WITH_DESSERT_SHA 2024-02-12 21:12:58 +00:00
android_manifest_test.go Revert "Revert "Support transitive dependencies through android_..." 2024-03-23 04:43:41 +00:00
android_resources.go Remove sdkPreSingleton and overlaySingleton 2023-11-01 15:29:09 -07:00
androidmk.go Revert^2 "Support static_libs for java_import modules" 2024-03-23 04:43:41 +00:00
androidmk_test.go
app.go Refactor the contruction of the manifest check inputs. 2024-04-15 11:15:41 +00:00
app_builder.go Reapply "Use R8 for resource shrinking" 2023-11-29 05:07:50 +00:00
app_import.go Refactor the contruction of the manifest check inputs. 2024-04-15 11:15:41 +00:00
app_import_test.go Support new property "arch_dpi" for android_import 2024-02-26 10:46:18 +08:00
app_set.go Generate info about the selected app variant in platform builds 2024-03-14 18:12:30 +00:00
app_set_test.go Add skip-sdk-check to extract_apks 2023-03-21 08:13:25 -07:00
app_test.go Refactor the contruction of the manifest check inputs. 2024-04-15 11:15:41 +00:00
base.go Refactor the contruction of the manifest check inputs. 2024-04-15 11:15:41 +00:00
boot_jars.go
bootclasspath.go Refactor dexpreopt for boot jars to make it flexible to config changes. 2023-07-14 12:13:28 +01:00
bootclasspath_fragment.go Export JavaBootLibsSdkMemberType and JavaSystemserverLibsSdkMemberType 2024-03-20 21:41:49 +00:00
bootclasspath_fragment_test.go Make hiddenAPIFlagFileCategory an int 2024-01-23 18:01:47 -08:00
builder.go Add exports for JDK 21 to Kythe extractor 2024-03-14 16:59:49 +00:00
classpath_element.go Convert OtherModuleProvider to generic providers API 2023-12-14 16:12:22 -08:00
classpath_fragment.go Use source_module_name to determine the contents of prebuilt apexes 2024-02-06 21:56:05 +00:00
code_metadata_test.go Write raw files to disk instead of the ninja file 2023-12-19 16:33:46 -08:00
device_host_converter.go Introduce library property is_stubs_module 2024-02-13 16:56:38 -08:00
device_host_converter_test.go Strip META-INF/services from implementation jars when using as header jars 2023-07-19 21:48:11 +00:00
dex.go Add flag for optimized resource shrinking with R8 2024-03-21 12:33:53 +01:00
dex_test.go transitive r8 flags for installable {android,java}_libraries 2023-10-31 18:59:04 +00:00
dexpreopt.go Disable source javalib dexpreopt when using prebuilt apex 2024-03-04 07:57:59 +00:00
dexpreopt_bootjars.go Use source_module_name to determine the contents of prebuilt apexes 2024-02-06 21:56:05 +00:00
dexpreopt_check.go Change OnlyPreoptBootImageAndSystemServer to OnlyPreoptArtBootImage. 2023-11-09 16:50:58 +00:00
dexpreopt_config.go Determine GC type based on BUILT_KERNEL_VERSION_FILE. 2024-02-02 09:23:37 +08:00
dexpreopt_config_test.go Refactor dexpreopt for boot jars to make it flexible to config changes. 2023-07-14 12:13:28 +01:00
dexpreopt_config_testing.go Fix data race in dex_bootjars 2024-01-17 16:10:37 -08:00
dexpreopt_test.go Move dexpreopt processing from java_*_import to prebuilt_apex 2023-12-18 23:17:26 +00:00
droiddoc.go Validate aconfig libs are built with the correct modes. 2024-03-07 18:51:16 +00:00
droiddoc_test.go
droidstubs.go Create rule to generate the exportable api files when checkapi is disabled 2024-03-15 22:30:56 +00:00
droidstubs_test.go Revert "Generate runtime stubs in droidstubs" am: d40c591487 2024-03-05 23:38:46 +00:00
fuzz.go Convert OtherModuleProvider to generic providers API 2023-12-14 16:12:22 -08:00
fuzz_test.go Strip META-INF/services from implementation jars when using as header jars 2023-07-19 21:48:11 +00:00
gen.go Remove ConvertWithBp2build implementations 2023-12-08 13:51:05 -08:00
generated_java_library.go Automatically propagate jarjar rules for aconfig libraries 2024-02-05 22:46:00 +00:00
generated_java_library_test.go Remove ConvertWithBp2build implementations 2023-12-08 13:51:05 -08:00
genrule.go Remove ConvertWithBp2build implementations 2023-12-08 13:51:05 -08:00
genrule_test.go
hiddenapi.go Add better error handling to bootDexJar function 2024-01-17 20:59:43 +00:00
hiddenapi_modular.go Make hiddenAPIFlagFileCategory an int 2024-01-23 18:01:47 -08:00
hiddenapi_monolithic.go Restrict verify_overlaps to pre S modules 2024-02-13 02:33:12 +00:00
hiddenapi_singleton.go Convert OtherModuleProvider to generic providers API 2023-12-14 16:12:22 -08:00
hiddenapi_singleton_test.go Enable hiddenapi check for exportable stubs 2024-01-12 01:03:10 +00:00
jacoco.go Use merge_zips instead of ziptime for resetting timestamps in jacoco outputs 2023-11-01 14:41:48 -07:00
jacoco_test.go
java.go Refactor the contruction of the manifest check inputs. 2024-04-15 11:15:41 +00:00
java_resources.go
java_test.go Revert^2 "Support static_libs for java_import modules" 2024-03-23 04:43:41 +00:00
jdeps.go Convert ModuleProvder to generic providers API 2023-12-14 16:12:22 -08:00
jdeps_test.go
kotlin.go Enable restat for kapt stubs rules 2023-09-20 09:53:39 -07:00
kotlin_test.go
legacy_core_platform_api_usage.go Created empty framework-location non-updatable module 2023-08-28 17:45:30 +00:00
lint.go Prevent disabling checks via flags property 2024-01-29 14:48:23 -08:00
lint_defaults.txt Merge "303434307: Enable flagged API checking" into main 2023-12-11 18:14:56 +00:00
lint_test.go Prevent disabling checks via flags property 2024-01-29 14:48:23 -08:00
platform_bootclasspath.go Use the correct bootjars for hiddneapi when multiple prebuilts exist 2024-01-02 17:56:14 +00:00
platform_bootclasspath_test.go Add srcjar output for platform_bootclasspath 2023-09-28 13:21:21 +00:00
platform_compat_config.go Support mechanism to select a specific version of module sdk prebuilt 2024-03-16 01:41:12 +00:00
platform_compat_config_test.go
plugin.go Remove ConvertWithBp2build implementations 2023-12-08 13:51:05 -08:00
plugin_test.go
prebuilt_apis.go droidstubs depend on the combined last api filegroup modules 2024-03-20 21:29:39 +00:00
prebuilt_apis_test.go Support for incremetal platform prebuilt APIs 2023-08-25 18:03:44 +00:00
proto.go Remove ConvertWithBp2build implementations 2023-12-08 13:51:05 -08:00
proto_test.go
ravenwood.go [Ravenwood] Install transitive JNI libraries too 2024-02-09 16:45:43 -08:00
ravenwood_test.go [Ravenwood] Install transitive JNI libraries too 2024-02-09 16:45:43 -08:00
robolectric.go Convert OtherModuleProvider to generic providers API 2023-12-14 16:12:22 -08:00
rro.go Add aconfig flag support for runtime_resource_overlay 2024-03-20 22:18:17 +00:00
rro_test.go Add aconfig flag support for runtime_resource_overlay 2024-03-20 22:18:17 +00:00
sdk.go Migrate buildinfo.sh script into Soong 2024-03-26 05:55:49 +00:00
sdk_library.go Merge "Support multiple sources for prebuilt_etc" into main 2024-03-21 23:14:48 +00:00
sdk_library_external.go
sdk_library_test.go droidstubs depend on the combined last api filegroup modules 2024-03-20 21:29:39 +00:00
sdk_test.go
sdk_version_test.go Revert "Revert "Limit System SDK to 34 for Java modules in the v..." 2024-01-04 23:20:42 +00:00
support_libraries.go Handle Android.bp files in subdirectories of androidx 2023-10-23 13:25:13 -04:00
system_modules.go Delete jmod workDir 2024-03-14 18:15:28 -07:00
system_modules_test.go Support mechanism to select a specific version of module sdk prebuilt 2024-02-06 21:55:50 +00:00
systemserver_classpath_fragment.go Export JavaBootLibsSdkMemberType and JavaSystemserverLibsSdkMemberType 2024-03-20 21:41:49 +00:00
systemserver_classpath_fragment_test.go
test_spec_test.go Write raw files to disk instead of the ninja file 2023-12-19 16:33:46 -08:00
testing.go Enable non-"everything" stubs generation in java_api_library 2024-02-28 07:55:32 +00:00
tradefed.go Change deps of ctx.Install* from Paths to InstallPaths 2023-11-17 19:06:43 -08:00