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

Commit 1f2d5681 authored by Sam Delmerico's avatar Sam Delmerico Committed by Automerger Merge Worker
Browse files

Merge "transitive r8 flags for installable {android,java}_libraries" into main...

Merge "transitive r8 flags for installable {android,java}_libraries" into main am: d9569528 am: 0b74fbb6 am: 727dc7ce

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



Change-Id: I3a029e51decdbcc76959cc056c5c2c69cbfe77d7
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 8649f30a 727dc7ce
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -813,8 +813,11 @@ func (a *AndroidLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext)
	a.linter.manifest = a.aapt.manifestPath
	a.linter.resources = a.aapt.resourceFiles

	a.Module.extraProguardFlagFiles = append(a.Module.extraProguardFlagFiles,
		a.proguardOptionsFile)
	proguardSpecInfo := a.collectProguardSpecInfo(ctx)
	ctx.SetProvider(ProguardSpecInfoProvider, proguardSpecInfo)
	a.exportedProguardFlagFiles = proguardSpecInfo.ProguardFlagsFiles.ToList()
	a.extraProguardFlagFiles = append(a.extraProguardFlagFiles, a.exportedProguardFlagFiles...)
	a.extraProguardFlagFiles = append(a.extraProguardFlagFiles, a.proguardOptionsFile)

	var extraSrcJars android.Paths
	var extraCombinedJars android.Paths
@@ -840,10 +843,6 @@ func (a *AndroidLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext)
		ctx.CheckbuildFile(a.aarFile)
	}

	proguardSpecInfo := a.collectProguardSpecInfo(ctx)
	ctx.SetProvider(ProguardSpecInfoProvider, proguardSpecInfo)
	a.exportedProguardFlagFiles = proguardSpecInfo.ProguardFlagsFiles.ToList()

	prebuiltJniPackages := android.Paths{}
	ctx.VisitDirectDeps(func(module android.Module) {
		if info, ok := ctx.OtherModuleProvider(module, JniPackageProvider).(JniPackageInfo); ok {
+2 −0
Original line number Diff line number Diff line
@@ -300,6 +300,8 @@ func (d *dexer) r8Flags(ctx android.ModuleContext, flags javaBuilderFlags) (r8Fl

	flagFiles = append(flagFiles, android.PathsForModuleSrc(ctx, opt.Proguard_flags_files)...)

	flagFiles = android.FirstUniquePaths(flagFiles)

	r8Flags = append(r8Flags, android.JoinWithPrefix(flagFiles.Strings(), "-include "))
	r8Deps = append(r8Deps, flagFiles...)

+86 −48
Original line number Diff line number Diff line
@@ -385,13 +385,53 @@ func TestProguardFlagsInheritanceStatic(t *testing.T) {
func TestProguardFlagsInheritance(t *testing.T) {
	directDepFlagsFileName := "direct_dep.flags"
	transitiveDepFlagsFileName := "transitive_dep.flags"
	bp := `

	topLevelModules := []struct {
		name       string
		definition string
	}{
		{
			name: "android_app",
			definition: `
				android_app {
					name: "app",
					static_libs: ["androidlib"], // this must be static_libs to initate dexing
					platform_apis: true,
				}
			`,
		},
		{
			name: "android_library",
			definition: `
				android_library {
					name: "app",
					static_libs: ["androidlib"], // this must be static_libs to initate dexing
					installable: true,
					optimize: {
						enabled: true,
						shrink: true,
					},
				}
			`,
		},
		{
			name: "java_library",
			definition: `
				java_library {
					name: "app",
					static_libs: ["androidlib"], // this must be static_libs to initate dexing
					srcs: ["Foo.java"],
					installable: true,
					optimize: {
						enabled: true,
						shrink: true,
					},
				}
			`,
		},
	}

	bp := `
		android_library {
			name: "androidlib",
			static_libs: ["app_dep"],
@@ -558,8 +598,9 @@ func TestProguardFlagsInheritance(t *testing.T) {
		},
	}

	for _, topLevelModuleDef := range topLevelModules {
		for _, tc := range testcases {
		t.Run(tc.name, func(t *testing.T) {
			t.Run(topLevelModuleDef.name+"-"+tc.name, func(t *testing.T) {
				result := android.GroupFixturePreparers(
					PrepareForTestWithJavaDefaultModules,
					android.FixtureMergeMockFs(android.MockFS{
@@ -567,6 +608,7 @@ func TestProguardFlagsInheritance(t *testing.T) {
						transitiveDepFlagsFileName: nil,
					}),
				).RunTestWithBp(t,
					topLevelModuleDef.definition+
						fmt.Sprintf(
							bp,
							tc.depType,
@@ -597,6 +639,7 @@ func TestProguardFlagsInheritance(t *testing.T) {
			})
		}
	}
}

func TestProguardFlagsInheritanceAppImport(t *testing.T) {
	bp := `
@@ -606,11 +649,6 @@ func TestProguardFlagsInheritanceAppImport(t *testing.T) {
			platform_apis: true,
		}

		android_library {
			name: "androidlib",
			static_libs: ["aarimport"],
		}

		android_library_import {
			name: "aarimport",
			aars: ["import.aar"],
+5 −4
Original line number Diff line number Diff line
@@ -697,6 +697,11 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) {

	j.stem = proptools.StringDefault(j.overridableDeviceProperties.Stem, ctx.ModuleName())

	proguardSpecInfo := j.collectProguardSpecInfo(ctx)
	ctx.SetProvider(ProguardSpecInfoProvider, proguardSpecInfo)
	j.exportedProguardFlagFiles = proguardSpecInfo.ProguardFlagsFiles.ToList()
	j.extraProguardFlagFiles = append(j.extraProguardFlagFiles, j.exportedProguardFlagFiles...)

	apexInfo := ctx.Provider(android.ApexInfoProvider).(android.ApexInfo)
	if !apexInfo.IsForPlatform() {
		j.hideApexVariantFromMake = true
@@ -741,10 +746,6 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) {
		}
		j.installFile = ctx.InstallFile(installDir, j.Stem()+".jar", j.outputFile, extraInstallDeps...)
	}

	proguardSpecInfo := j.collectProguardSpecInfo(ctx)
	ctx.SetProvider(ProguardSpecInfoProvider, proguardSpecInfo)
	j.exportedProguardFlagFiles = proguardSpecInfo.ProguardFlagsFiles.ToList()
}

func (j *Library) DepsMutator(ctx android.BottomUpMutatorContext) {