Restrict validateApexClasspathFragments to active apex prebuilts
This is a followup to https://r.android.com/3073624 that moved validation of bcp jars to the top-level prebuilt apex. It is possible that there can be multiple prebuilt variants of a mainline module and each prebuilt might have a skew in bcp jars. This CL limits the check to only the selected apex prebuilt. Test: go test ./apex Bug: 328578801 Change-Id: If225a1af6004b6584b86ec442f99672f0d1f8314
This commit is contained in:
@@ -865,6 +865,36 @@ func TestNonBootJarMissingInPrebuiltFragment(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Another prebuilt apex, but this is not selected during the build.
|
||||||
|
prebuilt_apex {
|
||||||
|
name: "com.google.android.myapex.v2", // mainline prebuilt selection logic in soong relies on the naming convention com.google.android
|
||||||
|
apex_name: "myapex",
|
||||||
|
source_apex_name: "myapex",
|
||||||
|
src: "myapex.apex",
|
||||||
|
exported_bootclasspath_fragments: ["apex-fragment.v2"],
|
||||||
|
}
|
||||||
|
|
||||||
|
java_import {
|
||||||
|
name: "bar",
|
||||||
|
jars: ["bar.jar"],
|
||||||
|
apex_available: ["myapex"],
|
||||||
|
permitted_packages: ["bar"],
|
||||||
|
}
|
||||||
|
|
||||||
|
prebuilt_bootclasspath_fragment {
|
||||||
|
name: "apex-fragment.v2",
|
||||||
|
contents: ["bar"], // Unlike the source fragment, this is missing foo
|
||||||
|
apex_available:[ "myapex" ],
|
||||||
|
hidden_api: {
|
||||||
|
annotation_flags: "my-bootclasspath-fragment/annotation-flags.csv",
|
||||||
|
metadata: "my-bootclasspath-fragment/metadata.csv",
|
||||||
|
index: "my-bootclasspath-fragment/index.csv",
|
||||||
|
stub_flags: "my-bootclasspath-fragment/stub-flags.csv",
|
||||||
|
all_flags: "my-bootclasspath-fragment/all-flags.csv",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
apex_contributions {
|
apex_contributions {
|
||||||
name: "my_apex_contributions",
|
name: "my_apex_contributions",
|
||||||
api_domain: "myapex",
|
api_domain: "myapex",
|
||||||
|
@@ -848,7 +848,9 @@ func validateApexClasspathFragments(ctx android.ModuleContext) {
|
|||||||
|
|
||||||
func (p *Prebuilt) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
func (p *Prebuilt) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||||
// Validate contents of classpath fragments
|
// Validate contents of classpath fragments
|
||||||
validateApexClasspathFragments(ctx)
|
if !p.IsHideFromMake() {
|
||||||
|
validateApexClasspathFragments(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
p.apexKeysPath = writeApexKeys(ctx, p)
|
p.apexKeysPath = writeApexKeys(ctx, p)
|
||||||
// TODO(jungjw): Check the key validity.
|
// TODO(jungjw): Check the key validity.
|
||||||
@@ -1074,7 +1076,9 @@ func (a *ApexSet) ApexInfoMutator(mctx android.TopDownMutatorContext) {
|
|||||||
|
|
||||||
func (a *ApexSet) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
func (a *ApexSet) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||||
// Validate contents of classpath fragments
|
// Validate contents of classpath fragments
|
||||||
validateApexClasspathFragments(ctx)
|
if !a.IsHideFromMake() {
|
||||||
|
validateApexClasspathFragments(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
a.apexKeysPath = writeApexKeys(ctx, a)
|
a.apexKeysPath = writeApexKeys(ctx, a)
|
||||||
a.installFilename = a.InstallFilename()
|
a.installFilename = a.InstallFilename()
|
||||||
|
Reference in New Issue
Block a user