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

Commit 4753b39c authored by Jeongik Cha's avatar Jeongik Cha
Browse files

Get rid of DeviceName() from path related to dexpreopt

As-is, dexpreopt config and bootjar is in the dir including
DeviceName(). It causes unnecessary dexpreopt invocation when target is
changed repeatly. To avoid it, rename dir to common name.

Bug: 278833696
Test: m
Change-Id: I2818d9ae09e6c22ca6989cc8efdb70b470ec502c
parent aea34a38
Loading
Loading
Loading
Loading
+15 −15
Original line number Diff line number Diff line
@@ -116,18 +116,18 @@ func TestBootclasspathFragments(t *testing.T) {
	// Make sure that the art-bootclasspath-fragment is using the correct configuration.
	checkBootclasspathFragment(t, result, "art-bootclasspath-fragment", "android_common_apex10000",
		"com.android.art:baz,com.android.art:quuz", `
test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art
test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat
test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex
test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-quuz.art
test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-quuz.oat
test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-quuz.vdex
test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art
test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat
test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex
test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-quuz.art
test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-quuz.oat
test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-quuz.vdex
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-quuz.art
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-quuz.oat
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-quuz.vdex
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-quuz.art
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-quuz.oat
dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-quuz.vdex
`)
}

@@ -764,7 +764,7 @@ func TestBootclasspathFragmentInPrebuiltArtApex(t *testing.T) {
		checkCopiesToPredefinedLocationForArt(t, result.Config, module, "bar", "foo")

		// Check that the right deapexer module was chosen for a boot image.
		param := module.Output("out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art")
		param := module.Output("out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art")
		android.AssertStringDoesContain(t, "didn't find the expected deapexer in the input path", param.Input.String(), "/com.android.art.deapexer")
	})

@@ -782,7 +782,7 @@ func checkCopiesToPredefinedLocationForArt(t *testing.T, config android.Config,
	bootJarLocations := []string{}
	for _, output := range module.AllOutputs() {
		output = android.StringRelativeToTop(config, output)
		if strings.HasPrefix(output, "out/soong/test_device/dex_artjars_input/") {
		if strings.HasPrefix(output, "out/soong/dexpreopt_arm64/dex_artjars_input/") {
			bootJarLocations = append(bootJarLocations, output)
		}
	}
@@ -790,7 +790,7 @@ func checkCopiesToPredefinedLocationForArt(t *testing.T, config android.Config,
	sort.Strings(bootJarLocations)
	expected := []string{}
	for _, m := range modules {
		expected = append(expected, fmt.Sprintf("out/soong/test_device/dex_artjars_input/%s.jar", m))
		expected = append(expected, fmt.Sprintf("out/soong/dexpreopt_arm64/dex_artjars_input/%s.jar", m))
	}
	sort.Strings(expected)

+2 −2
Original line number Diff line number Diff line
@@ -507,8 +507,8 @@ func (d *dexpreoptBootJars) GenerateSingletonBuildActions(ctx android.SingletonC
		// No module has enabled dexpreopting, so we assume there will be no boot image to make.
		return
	}

	d.dexpreoptConfigForMake = android.PathForOutput(ctx, ctx.Config().DeviceName(), "dexpreopt.config")
	archType := ctx.Config().Targets[android.Android][0].Arch.ArchType
	d.dexpreoptConfigForMake = android.PathForOutput(ctx, toDexpreoptDirName(archType), "dexpreopt.config")
	writeGlobalConfigForMake(ctx, d.dexpreoptConfigForMake)

	global := dexpreopt.GetGlobalConfig(ctx)
+2 −2
Original line number Diff line number Diff line
@@ -58,11 +58,11 @@ func testDexpreoptBoot(t *testing.T, ruleFile string, expectedInputs, expectedOu
	rule := platformBootclasspath.Output(ruleFile)

	for i := range expectedInputs {
		expectedInputs[i] = filepath.Join("out/soong/test_device", expectedInputs[i])
		expectedInputs[i] = filepath.Join("out/soong/dexpreopt_arm64", expectedInputs[i])
	}

	for i := range expectedOutputs {
		expectedOutputs[i] = filepath.Join("out/soong/test_device", expectedOutputs[i])
		expectedOutputs[i] = filepath.Join("out/soong/dexpreopt_arm64", expectedOutputs[i])
	}

	inputs := rule.Implicits.Strings()
+8 −3
Original line number Diff line number Diff line
@@ -108,7 +108,8 @@ func genBootImageConfigRaw(ctx android.PathContext) map[string]*bootImageConfig
func genBootImageConfigs(ctx android.PathContext) map[string]*bootImageConfig {
	return ctx.Config().Once(bootImageConfigKey, func() interface{} {
		targets := dexpreoptTargets(ctx)
		deviceDir := android.PathForOutput(ctx, ctx.Config().DeviceName())
		archType := ctx.Config().Targets[android.Android][0].Arch.ArchType
		deviceDir := android.PathForOutput(ctx, toDexpreoptDirName(archType))

		configs := genBootImageConfigRaw(ctx)

@@ -220,8 +221,8 @@ var updatableBootConfigKey = android.NewOnceKey("apexBootConfig")
func GetApexBootConfig(ctx android.PathContext) apexBootConfig {
	return ctx.Config().Once(updatableBootConfigKey, func() interface{} {
		apexBootJars := dexpreopt.GetGlobalConfig(ctx).ApexBootJars

		dir := android.PathForOutput(ctx, ctx.Config().DeviceName(), "apex_bootjars")
		archType := ctx.Config().Targets[android.Android][0].Arch.ArchType
		dir := android.PathForOutput(ctx, toDexpreoptDirName(archType), "apex_bootjars")
		dexPaths := apexBootJars.BuildPaths(ctx, dir)
		dexPathsByModuleName := apexBootJars.BuildPathsByModule(ctx, dir)

@@ -261,3 +262,7 @@ func init() {
func dexpreoptConfigMakevars(ctx android.MakeVarsContext) {
	ctx.Strict("DEXPREOPT_BOOT_JARS_MODULES", strings.Join(defaultBootImageConfig(ctx).modules.CopyOfApexJarPairs(), ":"))
}

func toDexpreoptDirName(arch android.ArchType) string {
	return "dexpreopt_" + arch.String()
}
+286 −286

File changed.

Preview size limit exceeded, changes collapsed.