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

Commit c38757d0 authored by Anton Hansson's avatar Anton Hansson Committed by Gerrit Code Review
Browse files

Merge "Add srcjar output for platform_bootclasspath" into main

parents 92311320 57162c51
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -173,6 +173,18 @@ func (b *platformBootclasspathModule) GenerateAndroidBuildActions(ctx android.Mo
	allModules = append(allModules, apexModules...)
	b.configuredModules = allModules

	var transitiveSrcFiles android.Paths
	for _, module := range allModules {
		depInfo := ctx.OtherModuleProvider(module, JavaInfoProvider).(JavaInfo)
		if depInfo.TransitiveSrcFiles != nil {
			transitiveSrcFiles = append(transitiveSrcFiles, depInfo.TransitiveSrcFiles.ToList()...)
		}
	}
	jarArgs := resourcePathsToJarArgs(transitiveSrcFiles)
	jarArgs = append(jarArgs, "-srcjar") // Move srcfiles to the right package
	transitiveSrcJar := android.PathForModuleOut(ctx, ctx.ModuleName()+"-transitive.srcjar")
	TransformResourcesToJar(ctx, transitiveSrcJar, jarArgs, transitiveSrcFiles)

	// Gather all the fragments dependencies.
	b.fragments = gatherApexModulePairDepsWithTag(ctx, bootclasspathFragmentDepTag)

+29 −0
Original line number Diff line number Diff line
@@ -81,6 +81,15 @@ func TestPlatformBootclasspath(t *testing.T) {
			RunTest(t)
	})

	fooSourceSrc := "source/a.java"
	barSrc := "a.java"

	checkSrcJarInputs := func(t *testing.T, result *android.TestResult, name string, expected []string) {
		t.Helper()
		srcjar := result.ModuleForTests(name, "android_common").Output(name + "-transitive.srcjar")
		android.AssertStringDoesContain(t, "srcjar arg", srcjar.Args["jarArgs"], "-srcjar")
		android.AssertArrayString(t, "srcjar inputs", expected, srcjar.Implicits.Strings())
	}
	t.Run("source", func(t *testing.T) {
		result := android.GroupFixturePreparers(
			preparer,
@@ -91,6 +100,10 @@ func TestPlatformBootclasspath(t *testing.T) {
			"platform:foo",
			"platform:bar",
		})
		checkSrcJarInputs(t, result, "platform-bootclasspath", []string{
			fooSourceSrc,
			barSrc,
		})
	})

	t.Run("prebuilt", func(t *testing.T) {
@@ -103,6 +116,10 @@ func TestPlatformBootclasspath(t *testing.T) {
			"platform:prebuilt_foo",
			"platform:bar",
		})
		checkSrcJarInputs(t, result, "platform-bootclasspath", []string{
			// TODO(b/151360309): This should also have the srcs for prebuilt_foo
			barSrc,
		})
	})

	t.Run("source+prebuilt - source preferred", func(t *testing.T) {
@@ -116,6 +133,10 @@ func TestPlatformBootclasspath(t *testing.T) {
			"platform:foo",
			"platform:bar",
		})
		checkSrcJarInputs(t, result, "platform-bootclasspath", []string{
			fooSourceSrc,
			barSrc,
		})
	})

	t.Run("source+prebuilt - prebuilt preferred", func(t *testing.T) {
@@ -129,6 +150,10 @@ func TestPlatformBootclasspath(t *testing.T) {
			"platform:prebuilt_foo",
			"platform:bar",
		})
		checkSrcJarInputs(t, result, "platform-bootclasspath", []string{
			// TODO(b/151360309): This should also have the srcs for prebuilt_foo
			barSrc,
		})
	})

	t.Run("dex import", func(t *testing.T) {
@@ -146,6 +171,10 @@ func TestPlatformBootclasspath(t *testing.T) {
			"platform:prebuilt_foo",
			"platform:bar",
		})
		checkSrcJarInputs(t, result, "platform-bootclasspath", []string{
			// TODO(b/151360309): This should also have the srcs for prebuilt_foo
			barSrc,
		})
	})
}