Merge "Support target and max sdk version in app bp2build." into main
This commit is contained in:
@@ -349,7 +349,7 @@ android_app {
|
|||||||
}})
|
}})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAndroidAppMinSdkProvided(t *testing.T) {
|
func TestAndroidAppManifestSdkVersionsProvided(t *testing.T) {
|
||||||
runAndroidAppTestCase(t, Bp2buildTestCase{
|
runAndroidAppTestCase(t, Bp2buildTestCase{
|
||||||
Description: "Android app with value for min_sdk_version",
|
Description: "Android app with value for min_sdk_version",
|
||||||
ModuleTypeUnderTest: "android_app",
|
ModuleTypeUnderTest: "android_app",
|
||||||
@@ -360,6 +360,8 @@ android_app {
|
|||||||
name: "foo",
|
name: "foo",
|
||||||
sdk_version: "current",
|
sdk_version: "current",
|
||||||
min_sdk_version: "24",
|
min_sdk_version: "24",
|
||||||
|
max_sdk_version: "30",
|
||||||
|
target_sdk_version: "29",
|
||||||
}
|
}
|
||||||
`,
|
`,
|
||||||
ExpectedBazelTargets: []string{
|
ExpectedBazelTargets: []string{
|
||||||
@@ -367,14 +369,16 @@ android_app {
|
|||||||
"manifest": `"AndroidManifest.xml"`,
|
"manifest": `"AndroidManifest.xml"`,
|
||||||
"resource_files": `[]`,
|
"resource_files": `[]`,
|
||||||
"manifest_values": `{
|
"manifest_values": `{
|
||||||
|
"maxSdkVersion": "30",
|
||||||
"minSdkVersion": "24",
|
"minSdkVersion": "24",
|
||||||
|
"targetSdkVersion": "29",
|
||||||
}`,
|
}`,
|
||||||
"sdk_version": `"current"`,
|
"sdk_version": `"current"`,
|
||||||
}),
|
}),
|
||||||
}})
|
}})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAndroidAppMinSdkDefaultToSdkVersion(t *testing.T) {
|
func TestAndroidAppMinAndTargetSdkDefaultToSdkVersion(t *testing.T) {
|
||||||
runAndroidAppTestCase(t, Bp2buildTestCase{
|
runAndroidAppTestCase(t, Bp2buildTestCase{
|
||||||
Description: "Android app with value for sdk_version",
|
Description: "Android app with value for sdk_version",
|
||||||
ModuleTypeUnderTest: "android_app",
|
ModuleTypeUnderTest: "android_app",
|
||||||
@@ -392,6 +396,7 @@ android_app {
|
|||||||
"resource_files": `[]`,
|
"resource_files": `[]`,
|
||||||
"manifest_values": `{
|
"manifest_values": `{
|
||||||
"minSdkVersion": "30",
|
"minSdkVersion": "30",
|
||||||
|
"targetSdkVersion": "30",
|
||||||
}`,
|
}`,
|
||||||
"sdk_version": `"30"`,
|
"sdk_version": `"30"`,
|
||||||
}),
|
}),
|
||||||
|
19
java/app.go
19
java/app.go
@@ -1572,6 +1572,8 @@ func androidAppCertificateBp2Build(ctx android.TopDownMutatorContext, module *An
|
|||||||
|
|
||||||
type manifestValueAttribute struct {
|
type manifestValueAttribute struct {
|
||||||
MinSdkVersion *string
|
MinSdkVersion *string
|
||||||
|
MaxSdkVersion *string
|
||||||
|
TargetSdkVersion *string
|
||||||
}
|
}
|
||||||
|
|
||||||
type bazelAndroidAppAttributes struct {
|
type bazelAndroidAppAttributes struct {
|
||||||
@@ -1601,12 +1603,25 @@ func (a *AndroidApp) ConvertWithBp2build(ctx android.TopDownMutatorContext) {
|
|||||||
// MinSdkVersion(ctx) calls SdkVersion(ctx) if no value for min_sdk_version is set
|
// MinSdkVersion(ctx) calls SdkVersion(ctx) if no value for min_sdk_version is set
|
||||||
minSdkVersion := a.MinSdkVersion(ctx)
|
minSdkVersion := a.MinSdkVersion(ctx)
|
||||||
if !minSdkVersion.IsPreview() && !minSdkVersion.IsInvalid() {
|
if !minSdkVersion.IsPreview() && !minSdkVersion.IsInvalid() {
|
||||||
minSdkStr, err := minSdkVersion.EffectiveVersionString(ctx)
|
if minSdkStr, err := minSdkVersion.EffectiveVersionString(ctx); err == nil {
|
||||||
if err == nil {
|
|
||||||
manifestValues.MinSdkVersion = &minSdkStr
|
manifestValues.MinSdkVersion = &minSdkStr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
maxSdkVersion := a.MaxSdkVersion(ctx)
|
||||||
|
if !maxSdkVersion.IsPreview() && !maxSdkVersion.IsInvalid() {
|
||||||
|
if maxSdkStr, err := maxSdkVersion.EffectiveVersionString(ctx); err == nil {
|
||||||
|
manifestValues.MaxSdkVersion = &maxSdkStr
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
targetSdkVersion := a.TargetSdkVersion(ctx)
|
||||||
|
if !targetSdkVersion.IsPreview() && !targetSdkVersion.IsInvalid() {
|
||||||
|
if targetSdkStr, err := targetSdkVersion.EffectiveVersionString(ctx); err == nil {
|
||||||
|
manifestValues.TargetSdkVersion = &targetSdkStr
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
appAttrs := &bazelAndroidAppAttributes{
|
appAttrs := &bazelAndroidAppAttributes{
|
||||||
// TODO(b/209576404): handle package name override by product variable PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES
|
// TODO(b/209576404): handle package name override by product variable PRODUCT_MANIFEST_PACKAGE_NAME_OVERRIDES
|
||||||
Custom_package: a.overridableAppProperties.Package_name,
|
Custom_package: a.overridableAppProperties.Package_name,
|
||||||
|
Reference in New Issue
Block a user