Merge "Require prebuilt_bootclasspath_fragment to provide hidden API files"
diff --git a/apex/apex_test.go b/apex/apex_test.go
index e1dec2c..d6c7142 100644
--- a/apex/apex_test.go
+++ b/apex/apex_test.go
@@ -4667,6 +4667,13 @@
prebuilt_bootclasspath_fragment {
name: "art-bootclasspath-fragment",
contents: ["core-oj"],
+ 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",
+ },
}
java_import {
@@ -4932,6 +4939,13 @@
name: "my-bootclasspath-fragment",
contents: ["libfoo", "libbar"],
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",
+ },
}
java_import {
@@ -4955,11 +4969,9 @@
checkBootDexJarPath(t, ctx, "libbar", "out/soong/.intermediates/myapex.deapexer/android_common/deapexer/javalib/libbar.jar")
// Verify the correct module jars contribute to the hiddenapi index file.
- checkHiddenAPIIndexFromClassesInputs(t, ctx, `
- out/soong/.intermediates/libbar.stubs/android_common/combined/libbar.stubs.jar
- out/soong/.intermediates/libfoo/android_common_myapex/combined/libfoo.jar
- `)
+ checkHiddenAPIIndexFromClassesInputs(t, ctx, ``)
checkHiddenAPIIndexFromFlagsInputs(t, ctx, `
+ my-bootclasspath-fragment/index.csv
out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/hiddenapi-monolithic/index-from-classes.csv
`)
})
@@ -4976,6 +4988,13 @@
name: "my-bootclasspath-fragment",
contents: ["libfoo", "libbar"],
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",
+ },
}
java_import {
@@ -4999,11 +5018,9 @@
checkBootDexJarPath(t, ctx, "libbar", "out/soong/.intermediates/myapex.deapexer/android_common/deapexer/javalib/libbar.jar")
// Verify the correct module jars contribute to the hiddenapi index file.
- checkHiddenAPIIndexFromClassesInputs(t, ctx, `
- out/soong/.intermediates/libbar.stubs/android_common/combined/libbar.stubs.jar
- out/soong/.intermediates/libfoo/android_common_myapex/combined/libfoo.jar
- `)
+ checkHiddenAPIIndexFromClassesInputs(t, ctx, ``)
checkHiddenAPIIndexFromFlagsInputs(t, ctx, `
+ my-bootclasspath-fragment/index.csv
out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/hiddenapi-monolithic/index-from-classes.csv
`)
})
@@ -5027,6 +5044,13 @@
name: "my-bootclasspath-fragment",
contents: ["libfoo", "libbar"],
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",
+ },
}
java_import {
@@ -5085,6 +5109,13 @@
name: "my-bootclasspath-fragment",
contents: ["libfoo", "libbar"],
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",
+ },
}
java_import {
@@ -5123,11 +5154,9 @@
checkBootDexJarPath(t, ctx, "libbar", "out/soong/.intermediates/myapex.deapexer/android_common/deapexer/javalib/libbar.jar")
// Verify the correct module jars contribute to the hiddenapi index file.
- checkHiddenAPIIndexFromClassesInputs(t, ctx, `
- out/soong/.intermediates/prebuilt_libbar.stubs/android_common/combined/libbar.stubs.jar
- out/soong/.intermediates/prebuilt_libfoo/android_common_myapex/combined/libfoo.jar
- `)
+ checkHiddenAPIIndexFromClassesInputs(t, ctx, ``)
checkHiddenAPIIndexFromFlagsInputs(t, ctx, `
+ my-bootclasspath-fragment/index.csv
out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/hiddenapi-monolithic/index-from-classes.csv
`)
})
@@ -5164,6 +5193,13 @@
name: "my-bootclasspath-fragment",
contents: ["libfoo", "libbar"],
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",
+ },
}
java_import {
@@ -5200,11 +5236,9 @@
checkBootDexJarPath(t, ctx, "libbar", "out/soong/.intermediates/libbar/android_common_myapex/hiddenapi/libbar.jar")
// Verify the correct module jars contribute to the hiddenapi index file.
- checkHiddenAPIIndexFromClassesInputs(t, ctx, `
- out/soong/.intermediates/libbar/android_common_myapex/javac/libbar.jar
- out/soong/.intermediates/libfoo/android_common_apex10000/javac/libfoo.jar
- `)
+ checkHiddenAPIIndexFromClassesInputs(t, ctx, ``)
checkHiddenAPIIndexFromFlagsInputs(t, ctx, `
+ my-bootclasspath-fragment/index.csv
out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/hiddenapi-monolithic/index-from-classes.csv
`)
})
@@ -5241,6 +5275,13 @@
name: "my-bootclasspath-fragment",
contents: ["libfoo", "libbar"],
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",
+ },
}
java_import {
@@ -5279,11 +5320,9 @@
checkBootDexJarPath(t, ctx, "libbar", "out/soong/.intermediates/myapex.deapexer/android_common/deapexer/javalib/libbar.jar")
// Verify the correct module jars contribute to the hiddenapi index file.
- checkHiddenAPIIndexFromClassesInputs(t, ctx, `
- out/soong/.intermediates/prebuilt_libbar.stubs/android_common/combined/libbar.stubs.jar
- out/soong/.intermediates/prebuilt_libfoo/android_common_myapex/combined/libfoo.jar
- `)
+ checkHiddenAPIIndexFromClassesInputs(t, ctx, ``)
checkHiddenAPIIndexFromFlagsInputs(t, ctx, `
+ my-bootclasspath-fragment/index.csv
out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/hiddenapi-monolithic/index-from-classes.csv
`)
})
@@ -7207,6 +7246,13 @@
name: "my-bootclasspath-fragment",
contents: ["libfoo"],
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",
+ },
}
java_import {
diff --git a/apex/bootclasspath_fragment_test.go b/apex/bootclasspath_fragment_test.go
index 4b1600e..5cd3eab 100644
--- a/apex/bootclasspath_fragment_test.go
+++ b/apex/bootclasspath_fragment_test.go
@@ -383,6 +383,13 @@
apex_available: [
"com.android.art",
],
+ hidden_api: {
+ annotation_flags: "mybootclasspathfragment/annotation-flags.csv",
+ metadata: "mybootclasspathfragment/metadata.csv",
+ index: "mybootclasspathfragment/index.csv",
+ stub_flags: "mybootclasspathfragment/stub-flags.csv",
+ all_flags: "mybootclasspathfragment/all-flags.csv",
+ },
}
`, contentsInsert(contents), prefer)
return android.FixtureAddTextFile("prebuilts/module_sdk/art/Android.bp", text)
@@ -582,6 +589,13 @@
apex_available: [
"com.android.art",
],
+ hidden_api: {
+ annotation_flags: "mybootclasspathfragment/annotation-flags.csv",
+ metadata: "mybootclasspathfragment/metadata.csv",
+ index: "mybootclasspathfragment/index.csv",
+ stub_flags: "mybootclasspathfragment/stub-flags.csv",
+ all_flags: "mybootclasspathfragment/all-flags.csv",
+ },
}
`)
diff --git a/java/bootclasspath_fragment.go b/java/bootclasspath_fragment.go
index 503c31f..1ce9911 100644
--- a/java/bootclasspath_fragment.go
+++ b/java/bootclasspath_fragment.go
@@ -599,7 +599,7 @@
// The monolithic hidden API processing also needs access to all the output files produced by
// hidden API processing of this fragment.
- hiddenAPIInfo.HiddenAPIFlagOutput = (*output).HiddenAPIFlagOutput
+ hiddenAPIInfo.HiddenAPIFlagOutput = output.HiddenAPIFlagOutput
// Provide it for use by other modules.
ctx.SetProvider(HiddenAPIInfoProvider, hiddenAPIInfo)
@@ -896,10 +896,10 @@
// produceHiddenAPIOutput returns a path to the prebuilt all-flags.csv or nil if none is specified.
func (module *prebuiltBootclasspathFragmentModule) produceHiddenAPIOutput(ctx android.ModuleContext, contents []android.Module, input HiddenAPIFlagInput) *HiddenAPIOutput {
- pathForOptionalSrc := func(src *string) android.Path {
+ pathForSrc := func(property string, src *string) android.Path {
if src == nil {
- // TODO(b/179354495): Fail if this is not provided once prebuilts have been updated.
- return nil
+ ctx.PropertyErrorf(property, "is required but was not specified")
+ return android.PathForModuleSrc(ctx, "missing", property)
}
return android.PathForModuleSrc(ctx, *src)
}
@@ -910,11 +910,11 @@
output := HiddenAPIOutput{
HiddenAPIFlagOutput: HiddenAPIFlagOutput{
- StubFlagsPath: pathForOptionalSrc(module.prebuiltProperties.Hidden_api.Stub_flags),
- AnnotationFlagsPath: pathForOptionalSrc(module.prebuiltProperties.Hidden_api.Annotation_flags),
- MetadataPath: pathForOptionalSrc(module.prebuiltProperties.Hidden_api.Metadata),
- IndexPath: pathForOptionalSrc(module.prebuiltProperties.Hidden_api.Index),
- AllFlagsPath: pathForOptionalSrc(module.prebuiltProperties.Hidden_api.All_flags),
+ AnnotationFlagsPath: pathForSrc("hidden_api.annotation_flags", module.prebuiltProperties.Hidden_api.Annotation_flags),
+ MetadataPath: pathForSrc("hidden_api.metadata", module.prebuiltProperties.Hidden_api.Metadata),
+ IndexPath: pathForSrc("hidden_api.index", module.prebuiltProperties.Hidden_api.Index),
+ StubFlagsPath: pathForSrc("hidden_api.stub_flags", module.prebuiltProperties.Hidden_api.Stub_flags),
+ AllFlagsPath: pathForSrc("hidden_api.all_flags", module.prebuiltProperties.Hidden_api.All_flags),
},
EncodedBootDexFilesByModule: encodedBootDexJarsByModule,
}