Merge "Do not propagate strict_updatability linting to conscrypt and framework-media java_sdk_libraries"
diff --git a/android/androidmk.go b/android/androidmk.go
index 72b6584..e9c63fb 100644
--- a/android/androidmk.go
+++ b/android/androidmk.go
@@ -148,6 +148,14 @@
// without worrying about the variables being mixed up in the actual mk file.
// 3. Makes troubleshooting and spotting errors easier.
entryOrder []string
+
+ // Provides data typically stored by Context objects that are commonly needed by
+ //AndroidMkEntries objects.
+ entryContext AndroidMkEntriesContext
+}
+
+type AndroidMkEntriesContext interface {
+ Config() Config
}
type AndroidMkExtraEntriesContext interface {
@@ -408,10 +416,19 @@
}
}
+ ext := filepath.Ext(dest)
+ suffix := ""
if dist.Suffix != nil {
- ext := filepath.Ext(dest)
- suffix := *dist.Suffix
- dest = strings.TrimSuffix(dest, ext) + suffix + ext
+ suffix = *dist.Suffix
+ }
+
+ productString := ""
+ if dist.Append_artifact_with_product != nil && *dist.Append_artifact_with_product {
+ productString = fmt.Sprintf("_%s", a.entryContext.Config().DeviceProduct())
+ }
+
+ if suffix != "" || productString != "" {
+ dest = strings.TrimSuffix(dest, ext) + suffix + productString + ext
}
if dist.Dir != nil {
@@ -478,6 +495,7 @@
}
func (a *AndroidMkEntries) fillInEntries(ctx fillInEntriesContext, mod blueprint.Module) {
+ a.entryContext = ctx
a.EntryMap = make(map[string][]string)
amod := mod.(Module)
base := amod.base()
diff --git a/android/androidmk_test.go b/android/androidmk_test.go
index ecfb008..caf11f1 100644
--- a/android/androidmk_test.go
+++ b/android/androidmk_test.go
@@ -148,6 +148,9 @@
FixtureRegisterWithContext(func(ctx RegistrationContext) {
ctx.RegisterModuleType("custom", customModuleFactory)
}),
+ FixtureModifyProductVariables(func(variables FixtureProductVariables) {
+ variables.DeviceProduct = proptools.StringPtr("bar")
+ }),
FixtureWithRootAndroidBp(bp),
).RunTest(t)
@@ -400,6 +403,25 @@
},
})
+ testHelper(t, "append-artifact-with-product", `
+ custom {
+ name: "foo",
+ dist: {
+ targets: ["my_goal"],
+ append_artifact_with_product: true,
+ }
+ }
+`, &distContributions{
+ copiesForGoals: []*copiesForGoals{
+ {
+ goals: "my_goal",
+ copies: []distCopy{
+ distCopyForTest("one.out", "one_bar.out"),
+ },
+ },
+ },
+ })
+
testHelper(t, "dists-with-tag", `
custom {
name: "foo",
diff --git a/android/config.go b/android/config.go
index e8ca84c..5c41ee8 100644
--- a/android/config.go
+++ b/android/config.go
@@ -351,6 +351,7 @@
config := &config{
productVariables: productVariables{
DeviceName: stringPtr("test_device"),
+ DeviceProduct: stringPtr("test_product"),
Platform_sdk_version: intPtr(30),
Platform_sdk_codename: stringPtr("S"),
Platform_base_sdk_extension_version: intPtr(1),
@@ -723,6 +724,15 @@
return *c.productVariables.DeviceName
}
+// DeviceProduct returns the current product target. There could be multiple of
+// these per device type.
+//
+// NOTE: Do not base conditional logic on this value. It may break product
+// inheritance.
+func (c *config) DeviceProduct() string {
+ return *c.productVariables.DeviceProduct
+}
+
func (c *config) DeviceResourceOverlays() []string {
return c.productVariables.DeviceResourceOverlays
}
diff --git a/android/module.go b/android/module.go
index 43509c0..eb9d3d7 100644
--- a/android/module.go
+++ b/android/module.go
@@ -613,6 +613,12 @@
// A suffix to add to the artifact file name (before any extension).
Suffix *string `android:"arch_variant"`
+ // If true, then the artifact file will be appended with _<product name>. For
+ // example, if the product is coral and the module is an android_app module
+ // of name foo, then the artifact would be foo_coral.apk. If false, there is
+ // no change to the artifact file name.
+ Append_artifact_with_product *bool `android:"arch_variant"`
+
// A string tag to select the OutputFiles associated with the tag.
//
// If no tag is specified then it will select the default dist paths provided
diff --git a/android/variable.go b/android/variable.go
index 37037eb..4ed0507 100644
--- a/android/variable.go
+++ b/android/variable.go
@@ -201,6 +201,7 @@
Platform_base_os *string `json:",omitempty"`
DeviceName *string `json:",omitempty"`
+ DeviceProduct *string `json:",omitempty"`
DeviceArch *string `json:",omitempty"`
DeviceArchVariant *string `json:",omitempty"`
DeviceCpuVariant *string `json:",omitempty"`
@@ -467,6 +468,7 @@
HostArch: stringPtr("x86_64"),
HostSecondaryArch: stringPtr("x86"),
DeviceName: stringPtr("generic_arm64"),
+ DeviceProduct: stringPtr("aosp_arm-eng"),
DeviceArch: stringPtr("arm64"),
DeviceArchVariant: stringPtr("armv8-a"),
DeviceCpuVariant: stringPtr("generic"),
diff --git a/cc/config/global.go b/cc/config/global.go
index 400be31..8dda537 100644
--- a/cc/config/global.go
+++ b/cc/config/global.go
@@ -287,8 +287,8 @@
// prebuilts/clang default settings.
ClangDefaultBase = "prebuilts/clang/host"
- ClangDefaultVersion = "clang-r445002"
- ClangDefaultShortVersion = "14.0.2"
+ ClangDefaultVersion = "clang-r450784"
+ ClangDefaultShortVersion = "14.0.3"
// Directories with warnings from Android.bp files.
WarningAllowedProjects = []string{