summaryrefslogtreecommitdiff
path: root/java/androidmk.go
diff options
context:
space:
mode:
Diffstat (limited to 'java/androidmk.go')
-rw-r--r--java/androidmk.go31
1 files changed, 30 insertions, 1 deletions
diff --git a/java/androidmk.go b/java/androidmk.go
index 35024c1d6..2ad30b132 100644
--- a/java/androidmk.go
+++ b/java/androidmk.go
@@ -307,11 +307,15 @@ func (app *AndroidApp) AndroidMkEntries() []android.AndroidMkEntries {
Disabled: true,
}}
}
+ var required []string
+ if proptools.Bool(app.appProperties.Generate_product_characteristics_rro) {
+ required = []string{app.productCharacteristicsRROPackageName()}
+ }
return []android.AndroidMkEntries{android.AndroidMkEntries{
Class: "APPS",
OutputFile: android.OptionalPathForPath(app.outputFile),
Include: "$(BUILD_SYSTEM)/soong_app_prebuilt.mk",
- Required: app.requiredModuleNames,
+ Required: required,
ExtraEntries: []android.AndroidMkExtraEntriesFunc{
func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) {
// App module names can be overridden.
@@ -346,6 +350,31 @@ func (app *AndroidApp) AndroidMkEntries() []android.AndroidMkEntries {
entries.SetBoolIfTrue("LOCAL_NO_STANDARD_LIBRARIES", true)
}
+ filterRRO := func(filter overlayType) android.Paths {
+ var paths android.Paths
+ seen := make(map[android.Path]bool)
+ for _, d := range app.rroDirsDepSet.ToList() {
+ if d.overlayType == filter {
+ if seen[d.path] {
+ continue
+ }
+ seen[d.path] = true
+ paths = append(paths, d.path)
+ }
+ }
+ // Reverse the order, Soong stores rroDirs in aapt2 order (low to high priority), but Make
+ // expects it in LOCAL_RESOURCE_DIRS order (high to low priority).
+ return android.ReversePaths(paths)
+ }
+ deviceRRODirs := filterRRO(device)
+ if len(deviceRRODirs) > 0 {
+ entries.AddStrings("LOCAL_SOONG_DEVICE_RRO_DIRS", deviceRRODirs.Strings()...)
+ }
+ productRRODirs := filterRRO(product)
+ if len(productRRODirs) > 0 {
+ entries.AddStrings("LOCAL_SOONG_PRODUCT_RRO_DIRS", productRRODirs.Strings()...)
+ }
+
entries.SetBoolIfTrue("LOCAL_EXPORT_PACKAGE_RESOURCES", Bool(app.appProperties.Export_package_resources))
entries.SetPath("LOCAL_FULL_MANIFEST_FILE", app.manifestPath)