Make some common properties overridden when used in defaults modules
Switch commonProperties to *string and *bool so that defining them
in a module correctly overrides instead of appends to values set
in defaults modules.
Bug: 68337468
Test: m checkbuild
Change-Id: I70e45caa92f65dc6a3bc81ae33a5a8f34ad11890
diff --git a/android/androidmk.go b/android/androidmk.go
index 759d328..2cae1c3 100644
--- a/android/androidmk.go
+++ b/android/androidmk.go
@@ -231,10 +231,10 @@
if len(amod.commonProperties.Init_rc) > 0 {
fmt.Fprintln(&data.preamble, "LOCAL_INIT_RC := ", strings.Join(amod.commonProperties.Init_rc, " "))
}
- if amod.commonProperties.Proprietary {
+ if Bool(amod.commonProperties.Proprietary) {
fmt.Fprintln(&data.preamble, "LOCAL_PROPRIETARY_MODULE := true")
}
- if amod.commonProperties.Vendor {
+ if Bool(amod.commonProperties.Vendor) {
fmt.Fprintln(&data.preamble, "LOCAL_VENDOR_MODULE := true")
}
if amod.commonProperties.Owner != nil {
diff --git a/android/arch.go b/android/arch.go
index eaa35a4..f8317bb 100644
--- a/android/arch.go
+++ b/android/arch.go
@@ -312,12 +312,12 @@
var multilib string
switch class {
case Device:
- multilib = module.base().commonProperties.Target.Android.Compile_multilib
+ multilib = String(module.base().commonProperties.Target.Android.Compile_multilib)
case Host, HostCross:
- multilib = module.base().commonProperties.Target.Host.Compile_multilib
+ multilib = String(module.base().commonProperties.Target.Host.Compile_multilib)
}
if multilib == "" {
- multilib = module.base().commonProperties.Compile_multilib
+ multilib = String(module.base().commonProperties.Compile_multilib)
}
if multilib == "" {
multilib = module.base().commonProperties.Default_multilib
diff --git a/android/module.go b/android/module.go
index 1cdc2dd..b8c9ab2 100644
--- a/android/module.go
+++ b/android/module.go
@@ -165,27 +165,27 @@
// are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both
// architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit
// platform
- Compile_multilib string `android:"arch_variant"`
+ Compile_multilib *string `android:"arch_variant"`
Target struct {
Host struct {
- Compile_multilib string
+ Compile_multilib *string
}
Android struct {
- Compile_multilib string
+ Compile_multilib *string
}
}
Default_multilib string `blueprint:"mutated"`
// whether this is a proprietary vendor module, and should be installed into /vendor
- Proprietary bool
+ Proprietary *bool
// vendor who owns this module
Owner *string
// whether this module is device specific and should be installed into /vendor
- Vendor bool
+ Vendor *bool
// *.logtags files, to combine together in order to generate the /system/etc/event-log-tags
// file
@@ -519,7 +519,7 @@
return androidBaseContextImpl{
target: a.commonProperties.CompileTarget,
targetPrimary: a.commonProperties.CompilePrimary,
- vendor: a.commonProperties.Proprietary || a.commonProperties.Vendor,
+ vendor: Bool(a.commonProperties.Proprietary) || Bool(a.commonProperties.Vendor),
config: ctx.Config().(Config),
}
}