add manifest_values application id property to soong

Bug:278905106
Test: go test ./java --run TestManifestValuesApplicationIdSetsPackageName
	and locally built a module and checked manifest pacakge_name
Change-Id: I5c8fd27c177b9e255dce197706f62580894008cb
This commit is contained in:
Alix
2023-08-31 15:48:23 +00:00
parent 786c44f9f3
commit 96ea8845c5
4 changed files with 80 additions and 5 deletions

View File

@@ -308,6 +308,13 @@ func (a *AndroidApp) OverridablePropertiesDepsMutator(ctx android.BottomUpMutato
}
func (a *AndroidTestHelperApp) GenerateAndroidBuildActions(ctx android.ModuleContext) {
applicationId := a.appTestHelperAppProperties.Manifest_values.ApplicationId
if applicationId != nil {
if a.overridableAppProperties.Package_name != nil {
ctx.PropertyErrorf("manifest_values.applicationId", "property is not supported when property package_name is set.")
}
a.aapt.manifestValues.applicationId = *applicationId
}
a.generateAndroidBuildActions(ctx)
}
@@ -1107,6 +1114,12 @@ func AndroidAppFactory() android.Module {
return module
}
// A dictionary of values to be overridden in the manifest.
type Manifest_values struct {
// Overrides the value of package_name in the manifest
ApplicationId *string
}
type appTestProperties struct {
// The name of the android_app module that the tests will run against.
Instrumentation_for *string
@@ -1116,6 +1129,8 @@ type appTestProperties struct {
// If specified, the mainline module package name in the test config is overwritten by it.
Mainline_package_name *string
Manifest_values Manifest_values
}
type AndroidTest struct {
@@ -1160,6 +1175,13 @@ func (a *AndroidTest) GenerateAndroidBuildActions(ctx android.ModuleContext) {
a.additionalAaptFlags = append(a.additionalAaptFlags, "--rename-instrumentation-target-package "+manifestPackageName)
}
}
applicationId := a.appTestProperties.Manifest_values.ApplicationId
if applicationId != nil {
if a.overridableAppProperties.Package_name != nil {
ctx.PropertyErrorf("manifest_values.applicationId", "property is not supported when property package_name is set.")
}
a.aapt.manifestValues.applicationId = *applicationId
}
a.generateAndroidBuildActions(ctx)
for _, module := range a.testProperties.Test_mainline_modules {
@@ -1264,6 +1286,8 @@ type appTestHelperAppProperties struct {
// Install the test into a folder named for the module in all test suites.
Per_testcase_directory *bool
Manifest_values Manifest_values
}
type AndroidTestHelperApp struct {