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

Commit 92bacc72 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 am: d9569528

parents 65ecec24 d9569528
Loading
Loading
Loading
Loading
+5 −6
Original line number Original line Diff line number Diff line
@@ -811,8 +811,11 @@ func (a *AndroidLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext)
	a.linter.manifest = a.aapt.manifestPath
	a.linter.manifest = a.aapt.manifestPath
	a.linter.resources = a.aapt.resourceFiles
	a.linter.resources = a.aapt.resourceFiles


	a.Module.extraProguardFlagFiles = append(a.Module.extraProguardFlagFiles,
	proguardSpecInfo := a.collectProguardSpecInfo(ctx)
		a.proguardOptionsFile)
	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 extraSrcJars android.Paths
	var extraCombinedJars android.Paths
	var extraCombinedJars android.Paths
@@ -838,10 +841,6 @@ func (a *AndroidLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext)
		ctx.CheckbuildFile(a.aarFile)
		ctx.CheckbuildFile(a.aarFile)
	}
	}


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

	prebuiltJniPackages := android.Paths{}
	prebuiltJniPackages := android.Paths{}
	ctx.VisitDirectDeps(func(module android.Module) {
	ctx.VisitDirectDeps(func(module android.Module) {
		if info, ok := ctx.OtherModuleProvider(module, JniPackageProvider).(JniPackageInfo); ok {
		if info, ok := ctx.OtherModuleProvider(module, JniPackageProvider).(JniPackageInfo); ok {
+2 −0
Original line number Original line 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 = append(flagFiles, android.PathsForModuleSrc(ctx, opt.Proguard_flags_files)...)


	flagFiles = android.FirstUniquePaths(flagFiles)

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


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

	topLevelModules := []struct {
		name       string
		definition string
	}{
		{
			name: "android_app",
			definition: `
				android_app {
				android_app {
					name: "app",
					name: "app",
					static_libs: ["androidlib"], // this must be static_libs to initate dexing
					static_libs: ["androidlib"], // this must be static_libs to initate dexing
					platform_apis: true,
					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 {
		android_library {
			name: "androidlib",
			name: "androidlib",
			static_libs: ["app_dep"],
			static_libs: ["app_dep"],
@@ -558,8 +598,9 @@ func TestProguardFlagsInheritance(t *testing.T) {
		},
		},
	}
	}


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


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


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

		android_library_import {
		android_library_import {
			name: "aarimport",
			name: "aarimport",
			aars: ["import.aar"],
			aars: ["import.aar"],
+5 −4
Original line number Original line 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())
	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)
	apexInfo := ctx.Provider(android.ApexInfoProvider).(android.ApexInfo)
	if !apexInfo.IsForPlatform() {
	if !apexInfo.IsForPlatform() {
		j.hideApexVariantFromMake = true
		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...)
		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) {
func (j *Library) DepsMutator(ctx android.BottomUpMutatorContext) {