Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4be908d9 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Require prebuilt_bootclasspath_fragment to provide hidden API files"...

Merge "Require prebuilt_bootclasspath_fragment to provide hidden API files" am: 41461f36 am: 70d39ce0 am: 47609031

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1772628

Change-Id: Ie562574883f5fe7c9e146550f0d14db77caef367
parents 0ceb6355 47609031
Loading
Loading
Loading
Loading
+66 −20
Original line number Original line Diff line number Diff line
@@ -4517,6 +4517,13 @@ func TestPrebuiltApexNameWithPlatformBootclasspath(t *testing.T) {
			prebuilt_bootclasspath_fragment {
			prebuilt_bootclasspath_fragment {
				name: "art-bootclasspath-fragment",
				name: "art-bootclasspath-fragment",
				contents: ["core-oj"],
				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 {
			java_import {
@@ -4782,6 +4789,13 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
			name: "my-bootclasspath-fragment",
			name: "my-bootclasspath-fragment",
			contents: ["libfoo", "libbar"],
			contents: ["libfoo", "libbar"],
			apex_available: ["myapex"],
			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 {
		java_import {
@@ -4805,11 +4819,9 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
		checkBootDexJarPath(t, ctx, "libbar", "out/soong/.intermediates/myapex.deapexer/android_common/deapexer/javalib/libbar.jar")
		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.
		// Verify the correct module jars contribute to the hiddenapi index file.
		checkHiddenAPIIndexFromClassesInputs(t, ctx, `
		checkHiddenAPIIndexFromClassesInputs(t, ctx, ``)
			out/soong/.intermediates/libbar.stubs/android_common/combined/libbar.stubs.jar
			out/soong/.intermediates/libfoo/android_common_myapex/combined/libfoo.jar
		`)
		checkHiddenAPIIndexFromFlagsInputs(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
			out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/hiddenapi-monolithic/index-from-classes.csv
		`)
		`)
	})
	})
@@ -4826,6 +4838,13 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
			name: "my-bootclasspath-fragment",
			name: "my-bootclasspath-fragment",
			contents: ["libfoo", "libbar"],
			contents: ["libfoo", "libbar"],
			apex_available: ["myapex"],
			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 {
		java_import {
@@ -4849,11 +4868,9 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
		checkBootDexJarPath(t, ctx, "libbar", "out/soong/.intermediates/myapex.deapexer/android_common/deapexer/javalib/libbar.jar")
		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.
		// Verify the correct module jars contribute to the hiddenapi index file.
		checkHiddenAPIIndexFromClassesInputs(t, ctx, `
		checkHiddenAPIIndexFromClassesInputs(t, ctx, ``)
			out/soong/.intermediates/libbar.stubs/android_common/combined/libbar.stubs.jar
			out/soong/.intermediates/libfoo/android_common_myapex/combined/libfoo.jar
		`)
		checkHiddenAPIIndexFromFlagsInputs(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
			out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/hiddenapi-monolithic/index-from-classes.csv
		`)
		`)
	})
	})
@@ -4877,6 +4894,13 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
			name: "my-bootclasspath-fragment",
			name: "my-bootclasspath-fragment",
			contents: ["libfoo", "libbar"],
			contents: ["libfoo", "libbar"],
			apex_available: ["myapex"],
			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 {
		java_import {
@@ -4935,6 +4959,13 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
			name: "my-bootclasspath-fragment",
			name: "my-bootclasspath-fragment",
			contents: ["libfoo", "libbar"],
			contents: ["libfoo", "libbar"],
			apex_available: ["myapex"],
			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 {
		java_import {
@@ -4973,11 +5004,9 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
		checkBootDexJarPath(t, ctx, "libbar", "out/soong/.intermediates/myapex.deapexer/android_common/deapexer/javalib/libbar.jar")
		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.
		// Verify the correct module jars contribute to the hiddenapi index file.
		checkHiddenAPIIndexFromClassesInputs(t, ctx, `
		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
		`)
		checkHiddenAPIIndexFromFlagsInputs(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
			out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/hiddenapi-monolithic/index-from-classes.csv
		`)
		`)
	})
	})
@@ -5014,6 +5043,13 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
			name: "my-bootclasspath-fragment",
			name: "my-bootclasspath-fragment",
			contents: ["libfoo", "libbar"],
			contents: ["libfoo", "libbar"],
			apex_available: ["myapex"],
			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 {
		java_import {
@@ -5050,11 +5086,9 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
		checkBootDexJarPath(t, ctx, "libbar", "out/soong/.intermediates/libbar/android_common_myapex/hiddenapi/libbar.jar")
		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.
		// Verify the correct module jars contribute to the hiddenapi index file.
		checkHiddenAPIIndexFromClassesInputs(t, ctx, `
		checkHiddenAPIIndexFromClassesInputs(t, ctx, ``)
			out/soong/.intermediates/libbar/android_common_myapex/javac/libbar.jar
			out/soong/.intermediates/libfoo/android_common_apex10000/javac/libfoo.jar
		`)
		checkHiddenAPIIndexFromFlagsInputs(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
			out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/hiddenapi-monolithic/index-from-classes.csv
		`)
		`)
	})
	})
@@ -5091,6 +5125,13 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
			name: "my-bootclasspath-fragment",
			name: "my-bootclasspath-fragment",
			contents: ["libfoo", "libbar"],
			contents: ["libfoo", "libbar"],
			apex_available: ["myapex"],
			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 {
		java_import {
@@ -5129,11 +5170,9 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
		checkBootDexJarPath(t, ctx, "libbar", "out/soong/.intermediates/myapex.deapexer/android_common/deapexer/javalib/libbar.jar")
		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.
		// Verify the correct module jars contribute to the hiddenapi index file.
		checkHiddenAPIIndexFromClassesInputs(t, ctx, `
		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
		`)
		checkHiddenAPIIndexFromFlagsInputs(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
			out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/hiddenapi-monolithic/index-from-classes.csv
		`)
		`)
	})
	})
@@ -7057,6 +7096,13 @@ func TestDexpreoptAccessDexFilesFromPrebuiltApex(t *testing.T) {
				name: "my-bootclasspath-fragment",
				name: "my-bootclasspath-fragment",
				contents: ["libfoo"],
				contents: ["libfoo"],
				apex_available: ["myapex"],
				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 {
			java_import {
+14 −0
Original line number Original line Diff line number Diff line
@@ -383,6 +383,13 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
				apex_available: [
				apex_available: [
					"com.android.art",
					"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)
		`, contentsInsert(contents), prefer)
		return android.FixtureAddTextFile("prebuilts/module_sdk/art/Android.bp", text)
		return android.FixtureAddTextFile("prebuilts/module_sdk/art/Android.bp", text)
@@ -582,6 +589,13 @@ func TestBootclasspathFragmentInPrebuiltArtApex(t *testing.T) {
			apex_available: [
			apex_available: [
				"com.android.art",
				"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",
			},
		}
		}
	`)
	`)


+9 −9
Original line number Original line Diff line number Diff line
@@ -599,7 +599,7 @@ func (b *BootclasspathFragmentModule) generateHiddenAPIBuildActions(ctx android.


	// The monolithic hidden API processing also needs access to all the output files produced by
	// The monolithic hidden API processing also needs access to all the output files produced by
	// hidden API processing of this fragment.
	// hidden API processing of this fragment.
	hiddenAPIInfo.HiddenAPIFlagOutput = (*output).HiddenAPIFlagOutput
	hiddenAPIInfo.HiddenAPIFlagOutput = output.HiddenAPIFlagOutput


	//  Provide it for use by other modules.
	//  Provide it for use by other modules.
	ctx.SetProvider(HiddenAPIInfoProvider, hiddenAPIInfo)
	ctx.SetProvider(HiddenAPIInfoProvider, hiddenAPIInfo)
@@ -896,10 +896,10 @@ func (module *prebuiltBootclasspathFragmentModule) Name() string {


// produceHiddenAPIOutput returns a path to the prebuilt all-flags.csv or nil if none is specified.
// 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 {
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 {
		if src == nil {
			// TODO(b/179354495): Fail if this is not provided once prebuilts have been updated.
			ctx.PropertyErrorf(property, "is required but was not specified")
			return nil
			return android.PathForModuleSrc(ctx, "missing", property)
		}
		}
		return android.PathForModuleSrc(ctx, *src)
		return android.PathForModuleSrc(ctx, *src)
	}
	}
@@ -910,11 +910,11 @@ func (module *prebuiltBootclasspathFragmentModule) produceHiddenAPIOutput(ctx an


	output := HiddenAPIOutput{
	output := HiddenAPIOutput{
		HiddenAPIFlagOutput: HiddenAPIFlagOutput{
		HiddenAPIFlagOutput: HiddenAPIFlagOutput{
			StubFlagsPath:       pathForOptionalSrc(module.prebuiltProperties.Hidden_api.Stub_flags),
			AnnotationFlagsPath: pathForSrc("hidden_api.annotation_flags", module.prebuiltProperties.Hidden_api.Annotation_flags),
			AnnotationFlagsPath: pathForOptionalSrc(module.prebuiltProperties.Hidden_api.Annotation_flags),
			MetadataPath:        pathForSrc("hidden_api.metadata", module.prebuiltProperties.Hidden_api.Metadata),
			MetadataPath:        pathForOptionalSrc(module.prebuiltProperties.Hidden_api.Metadata),
			IndexPath:           pathForSrc("hidden_api.index", module.prebuiltProperties.Hidden_api.Index),
			IndexPath:           pathForOptionalSrc(module.prebuiltProperties.Hidden_api.Index),
			StubFlagsPath:       pathForSrc("hidden_api.stub_flags", module.prebuiltProperties.Hidden_api.Stub_flags),
			AllFlagsPath:        pathForOptionalSrc(module.prebuiltProperties.Hidden_api.All_flags),
			AllFlagsPath:        pathForSrc("hidden_api.all_flags", module.prebuiltProperties.Hidden_api.All_flags),
		},
		},
		EncodedBootDexFilesByModule: encodedBootDexJarsByModule,
		EncodedBootDexFilesByModule: encodedBootDexJarsByModule,
	}
	}