Add DeviceUsesClang to change clang default
This is equivalent to USE_CLANG_PLATFORM_BUILD in the current build
system.
Change-Id: Ifaca0f2639871dac834ef603cfade695191cff11
diff --git a/cc/cc.go b/cc/cc.go
index a8b6051..147559e 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -495,8 +495,14 @@
// TODO: debug
flags.CFlags = append(flags.CFlags, c.Properties.Release.Cflags...)
- if ctx.Host() && !ctx.ContainsProperty("clang") {
- flags.Clang = true
+ if !ctx.ContainsProperty("clang") {
+ if ctx.Host() {
+ flags.Clang = true
+ }
+
+ if ctx.Device() && ctx.AConfig().DeviceUsesClang() {
+ flags.Clang = true
+ }
}
if flags.Clang {
@@ -1128,7 +1134,7 @@
libName := ctx.ModuleName()
// GCC for Android assumes that -shared means -Bsymbolic, use -Wl,-shared instead
sharedFlag := "-Wl,-shared"
- if c.Properties.Clang || ctx.Host() {
+ if flags.Clang || ctx.Host() {
sharedFlag = "-shared"
}
if ctx.Device() {
diff --git a/common/config.go b/common/config.go
index 1340db8..fbd2be9 100644
--- a/common/config.go
+++ b/common/config.go
@@ -214,6 +214,13 @@
return *c.ProductVariables.DeviceName
}
+func (c *config) DeviceUsesClang() bool {
+ if c.ProductVariables.DeviceUsesClang != nil {
+ return *c.ProductVariables.DeviceUsesClang
+ }
+ return false
+}
+
// DeviceOut returns the path to out directory for device targets
func (c *config) DeviceOut() string {
return filepath.Join(c.BuildDir(), "target/product", c.DeviceName())
diff --git a/common/variable.go b/common/variable.go
index 61060e9..23a97a6 100644
--- a/common/variable.go
+++ b/common/variable.go
@@ -63,6 +63,7 @@
DeviceArchVariant *string `json:",omitempty"`
DeviceCpuVariant *string `json:",omitempty"`
DeviceAbi *[]string `json:",omitempty"`
+ DeviceUsesClang *bool `json:",omitempty"`
DeviceSecondaryArch *string `json:",omitempty"`
DeviceSecondaryArchVariant *string `json:",omitempty"`
@@ -95,6 +96,7 @@
DeviceArch: stringPtr("arm64"),
DeviceCpuVariant: stringPtr("denver64"),
DeviceAbi: &[]string{"arm64-v8a"},
+ DeviceUsesClang: boolPtr(true),
DeviceSecondaryArch: stringPtr("arm"),
DeviceSecondaryArchVariant: stringPtr("armv7-a-neon"),
DeviceSecondaryCpuVariant: stringPtr("denver"),