Skip contents
validation of source bootclasspath fragments
... if prebuilts are selected. This is a special case of b/361771739 where a apex starts contributing a jar to the BCP. `disableSourceApexVariant` uses `PrebuiltSelectionInfoProvider` and this gets populated via the following dep chain ``` source --> prebuilt --> all_apex_contributions ``` This runs into issues if a prebuilt bootclasspath_fragment does not exist. This CL creates a dependency edge between the source module and all_apex_contributions singleton module so that `PrebuiltSelectionInfoProvider` is available for `disableSourceApexVariant` Bug: 361771739 Test: lunch cf_x86_64-next-userdebug Test: m nothing with ag/28851886 Change-Id: I92d88199a27579d3c9879d40fd354653370efcce
This commit is contained in:
@@ -833,6 +833,7 @@ func TestBootclasspathFragment_HiddenAPIList(t *testing.T) {
|
||||
`)
|
||||
|
||||
java.CheckModuleDependencies(t, result.TestContext, "mybootclasspathfragment", "android_common_apex10000", []string{
|
||||
"all_apex_contributions",
|
||||
"art-bootclasspath-fragment",
|
||||
"bar",
|
||||
"dex2oatd",
|
||||
@@ -1003,6 +1004,7 @@ func TestBootclasspathFragment_AndroidNonUpdatable_FromSource(t *testing.T) {
|
||||
`)
|
||||
|
||||
java.CheckModuleDependencies(t, result.TestContext, "mybootclasspathfragment", "android_common_apex10000", []string{
|
||||
"all_apex_contributions",
|
||||
"android-non-updatable.stubs",
|
||||
"android-non-updatable.stubs.module_lib",
|
||||
"android-non-updatable.stubs.system",
|
||||
@@ -1174,6 +1176,7 @@ func TestBootclasspathFragment_AndroidNonUpdatable_FromText(t *testing.T) {
|
||||
`)
|
||||
|
||||
java.CheckModuleDependencies(t, result.TestContext, "mybootclasspathfragment", "android_common_apex10000", []string{
|
||||
"all_apex_contributions",
|
||||
"android-non-updatable.stubs",
|
||||
"android-non-updatable.stubs.system",
|
||||
"android-non-updatable.stubs.test",
|
||||
@@ -1326,6 +1329,7 @@ func TestBootclasspathFragment_AndroidNonUpdatable_AlwaysUsePrebuiltSdks(t *test
|
||||
`)
|
||||
|
||||
java.CheckModuleDependencies(t, result.TestContext, "mybootclasspathfragment", "android_common_apex10000", []string{
|
||||
"all_apex_contributions",
|
||||
"art-bootclasspath-fragment",
|
||||
"bar",
|
||||
"dex2oatd",
|
||||
|
@@ -463,6 +463,12 @@ func (b *BootclasspathFragmentModule) DepsMutator(ctx android.BottomUpMutatorCon
|
||||
// Add a dependency onto the dex2oat tool which is needed for creating the boot image. The
|
||||
// path is retrieved from the dependency by GetGlobalSoongConfig(ctx).
|
||||
dexpreopt.RegisterToolDeps(ctx)
|
||||
|
||||
// Add a dependency to `all_apex_contributions` to determine if prebuilts are active.
|
||||
// If prebuilts are active, `contents` validation on the source bootclasspath fragment should be disabled.
|
||||
if _, isPrebuiltModule := ctx.Module().(*PrebuiltBootclasspathFragmentModule); !isPrebuiltModule {
|
||||
ctx.AddDependency(b, android.AcDepTag, "all_apex_contributions")
|
||||
}
|
||||
}
|
||||
|
||||
func (b *BootclasspathFragmentModule) BootclasspathDepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
|
Reference in New Issue
Block a user