Add DeviceUsesClang to change clang default

This is equivalent to USE_CLANG_PLATFORM_BUILD in the current build
system.

Change-Id: Ifaca0f2639871dac834ef603cfade695191cff11
This commit is contained in:
Dan Willemsen 2015-10-20 14:29:35 -07:00
parent 60c3dfb19a
commit dd0e2c338f
3 changed files with 18 additions and 3 deletions

View File

@ -495,8 +495,14 @@ func (c *CCBase) collectFlags(ctx common.AndroidModuleContext, toolchain Toolcha
// 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 @@ func (c *CCLibrary) flags(ctx common.AndroidModuleContext, flags CCFlags) CCFlag
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() {

View File

@ -214,6 +214,13 @@ func (c *config) DeviceName() string {
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())

View File

@ -63,6 +63,7 @@ type productVariables struct {
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 @@ func (v *productVariables) SetDefaultConfig() {
DeviceArch: stringPtr("arm64"),
DeviceCpuVariant: stringPtr("denver64"),
DeviceAbi: &[]string{"arm64-v8a"},
DeviceUsesClang: boolPtr(true),
DeviceSecondaryArch: stringPtr("arm"),
DeviceSecondaryArchVariant: stringPtr("armv7-a-neon"),
DeviceSecondaryCpuVariant: stringPtr("denver"),