Support Rust in native-bridge
Bug: 178565008
Bug: 165791368
Test: Build and link a Rust library into a native-bridge binary
Change-Id: I3546571530529203d9dbfd62777f20de18c6bd51
diff --git a/cc/androidmk.go b/cc/androidmk.go
index 1f08a01..4862157 100644
--- a/cc/androidmk.go
+++ b/cc/androidmk.go
@@ -24,7 +24,7 @@
)
var (
- nativeBridgeSuffix = ".native_bridge"
+ NativeBridgeSuffix = ".native_bridge"
ProductSuffix = ".product"
VendorSuffix = ".vendor"
ramdiskSuffix = ".ramdisk"
@@ -182,7 +182,7 @@
if ctx.Target().NativeBridge == android.NativeBridgeEnabled {
var result []string
for _, override := range overrides {
- result = append(result, override+nativeBridgeSuffix)
+ result = append(result, override+NativeBridgeSuffix)
}
return result
}
diff --git a/cc/cc.go b/cc/cc.go
index 03280f4..be4b798 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -1652,7 +1652,7 @@
c.Properties.SubName = ""
if c.Target().NativeBridge == android.NativeBridgeEnabled {
- c.Properties.SubName += nativeBridgeSuffix
+ c.Properties.SubName += NativeBridgeSuffix
}
llndk := c.IsLlndk()
@@ -3035,7 +3035,7 @@
} else if ccDep.InRecovery() && !ccDep.OnlyInRecovery() {
return libName + RecoverySuffix
} else if ccDep.Target().NativeBridge == android.NativeBridgeEnabled {
- return libName + nativeBridgeSuffix
+ return libName + NativeBridgeSuffix
} else {
return libName
}
diff --git a/rust/rust.go b/rust/rust.go
index 24c8634..70721fb 100644
--- a/rust/rust.go
+++ b/rust/rust.go
@@ -766,6 +766,10 @@
}
func (mod *Module) nativeCoverage() bool {
+ // Bug: http://b/137883967 - native-bridge modules do not currently work with coverage
+ if mod.Target().NativeBridge == android.NativeBridgeEnabled {
+ return false
+ }
return mod.compiler != nil && mod.compiler.nativeCoverage()
}
@@ -819,6 +823,10 @@
mod.Properties.SubName += cc.RecoverySuffix
}
+ if mod.Target().NativeBridge == android.NativeBridgeEnabled {
+ mod.Properties.SubName += cc.NativeBridgeSuffix
+ }
+
if !toolchain.Supported() {
// This toolchain's unsupported, there's nothing to do for this mod.
return