aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYifan Hong <elsk@google.com>2018-04-03 13:22:50 -0700
committerYifan Hong <elsk@google.com>2018-04-03 16:02:29 -0700
commit946e32e1842854899ed962ee3816ecca76354613 (patch)
tree795992e630f25e82ce49be27634d057cc6fccb44
parenta9255a8378368c3d3c24ebc65e4b139e6c039379 (diff)
downloadbuild_soong-946e32e1842854899ed962ee3816ecca76354613.tar.gz
build_soong-946e32e1842854899ed962ee3816ecca76354613.tar.bz2
build_soong-946e32e1842854899ed962ee3816ecca76354613.zip
Add overrides to cc_binary
Test: use it for healthd, it is not installed. Bug: 77541952 Change-Id: I170a31d1b4d15f20de6a6b6279a2eeda49ca7447
-rw-r--r--androidmk/cmd/androidmk/android.go1
-rw-r--r--cc/androidmk.go4
-rw-r--r--cc/binary.go7
3 files changed, 12 insertions, 0 deletions
diff --git a/androidmk/cmd/androidmk/android.go b/androidmk/cmd/androidmk/android.go
index 91f47e0f..b2a8914e 100644
--- a/androidmk/cmd/androidmk/android.go
+++ b/androidmk/cmd/androidmk/android.go
@@ -111,6 +111,7 @@ func init() {
"LOCAL_CONLYFLAGS": "conlyflags",
"LOCAL_CPPFLAGS": "cppflags",
"LOCAL_REQUIRED_MODULES": "required",
+ "LOCAL_OVERRIDES_MODULES": "overrides",
"LOCAL_LDLIBS": "host_ldlibs",
"LOCAL_CLANG_CFLAGS": "clang_cflags",
"LOCAL_YACCFLAGS": "yaccflags",
diff --git a/cc/androidmk.go b/cc/androidmk.go
index 56ff713c..9bcb7835 100644
--- a/cc/androidmk.go
+++ b/cc/androidmk.go
@@ -228,6 +228,10 @@ func (binary *binaryDecorator) AndroidMk(ctx AndroidMkContext, ret *android.Andr
if binary.coverageOutputFile.Valid() {
fmt.Fprintln(w, "LOCAL_PREBUILT_COVERAGE_ARCHIVE :=", binary.coverageOutputFile.String())
}
+
+ if len(binary.Properties.Overrides) > 0 {
+ fmt.Fprintln(w, "LOCAL_OVERRIDES_MODULES := "+strings.Join(binary.Properties.Overrides, " "))
+ }
})
}
diff --git a/cc/binary.go b/cc/binary.go
index 7794eab6..c3e899a0 100644
--- a/cc/binary.go
+++ b/cc/binary.go
@@ -45,6 +45,13 @@ type BinaryLinkerProperties struct {
No_pie *bool `android:"arch_variant"`
DynamicLinker string `blueprint:"mutated"`
+
+ // Names of modules to be overridden. Listed modules can only be other binaries
+ // (in Make or Soong).
+ // This does not completely prevent installation of the overridden binaries, but if both
+ // binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed
+ // from PRODUCT_PACKAGES.
+ Overrides []string
}
func init() {