Merge changes from topic "recovery_available"

* changes:
  fix: recovery.cflags now works
  Mark as recovery_available:true
  Add recovery_available to cc_genrule
This commit is contained in:
Treehugger Robot
2018-05-25 05:58:01 +00:00
committed by Gerrit Code Review
4 changed files with 37 additions and 6 deletions

View File

@@ -1554,16 +1554,35 @@ func imageMutator(mctx android.BottomUpMutatorContext) {
} }
if genrule, ok := mctx.Module().(*genrule.Module); ok { if genrule, ok := mctx.Module().(*genrule.Module); ok {
if props, ok := genrule.Extra.(*VendorProperties); ok { if props, ok := genrule.Extra.(*GenruleExtraProperties); ok {
var coreVariantNeeded bool = false
var vendorVariantNeeded bool = false
var recoveryVariantNeeded bool = false
if mctx.DeviceConfig().VndkVersion() == "" { if mctx.DeviceConfig().VndkVersion() == "" {
mctx.CreateVariations(coreMode) coreVariantNeeded = true
} else if Bool(props.Vendor_available) { } else if Bool(props.Vendor_available) {
mctx.CreateVariations(coreMode, vendorMode) coreVariantNeeded = true
vendorVariantNeeded = true
} else if mctx.SocSpecific() || mctx.DeviceSpecific() { } else if mctx.SocSpecific() || mctx.DeviceSpecific() {
mctx.CreateVariations(vendorMode) vendorVariantNeeded = true
} else { } else {
mctx.CreateVariations(coreMode) coreVariantNeeded = true
} }
if Bool(props.Recovery_available) {
recoveryVariantNeeded = true
}
var variants []string
if coreVariantNeeded {
variants = append(variants, coreMode)
}
if vendorVariantNeeded {
variants = append(variants, vendorMode)
}
if recoveryVariantNeeded {
variants = append(variants, recoveryMode)
}
mctx.CreateVariations(variants...)
} }
} }

View File

@@ -258,6 +258,8 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
CheckBadCompilerFlags(ctx, "cppflags", compiler.Properties.Cppflags) CheckBadCompilerFlags(ctx, "cppflags", compiler.Properties.Cppflags)
CheckBadCompilerFlags(ctx, "conlyflags", compiler.Properties.Conlyflags) CheckBadCompilerFlags(ctx, "conlyflags", compiler.Properties.Conlyflags)
CheckBadCompilerFlags(ctx, "asflags", compiler.Properties.Asflags) CheckBadCompilerFlags(ctx, "asflags", compiler.Properties.Asflags)
CheckBadCompilerFlags(ctx, "vendor.cflags", compiler.Properties.Target.Vendor.Cflags)
CheckBadCompilerFlags(ctx, "recovery.cflags", compiler.Properties.Target.Recovery.Cflags)
esc := proptools.NinjaAndShellEscape esc := proptools.NinjaAndShellEscape
@@ -454,6 +456,10 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
flags.CFlags = append(flags.CFlags, esc(compiler.Properties.Target.Vendor.Cflags)...) flags.CFlags = append(flags.CFlags, esc(compiler.Properties.Target.Vendor.Cflags)...)
} }
if ctx.inRecovery() {
flags.CFlags = append(flags.CFlags, esc(compiler.Properties.Target.Recovery.Cflags)...)
}
// We can enforce some rules more strictly in the code we own. strict // We can enforce some rules more strictly in the code we own. strict
// indicates if this is code that we can be stricter with. If we have // indicates if this is code that we can be stricter with. If we have
// rules that we want to apply to *our* code (but maybe can't for // rules that we want to apply to *our* code (but maybe can't for

View File

@@ -23,13 +23,18 @@ func init() {
android.RegisterModuleType("cc_genrule", genRuleFactory) android.RegisterModuleType("cc_genrule", genRuleFactory)
} }
type GenruleExtraProperties struct {
Vendor_available *bool
Recovery_available *bool
}
// cc_genrule is a genrule that can depend on other cc_* objects. // cc_genrule is a genrule that can depend on other cc_* objects.
// The cmd may be run multiple times, once for each of the different arch/etc // The cmd may be run multiple times, once for each of the different arch/etc
// variations. // variations.
func genRuleFactory() android.Module { func genRuleFactory() android.Module {
module := genrule.NewGenRule() module := genrule.NewGenRule()
module.Extra = &VendorProperties{} module.Extra = &GenruleExtraProperties{}
module.AddProperties(module.Extra) module.AddProperties(module.Extra)
android.InitAndroidArchModule(module, android.HostAndDeviceSupported, android.MultilibBoth) android.InitAndroidArchModule(module, android.HostAndDeviceSupported, android.MultilibBoth)

View File

@@ -1,6 +1,7 @@
cc_library_static { cc_library_static {
name: "libbuildversion", name: "libbuildversion",
host_supported: true, host_supported: true,
recovery_available: true,
srcs: ["libbuildversion.cpp"], srcs: ["libbuildversion.cpp"],
export_include_dirs: ["include"], export_include_dirs: ["include"],
cflags: ["-fvisibility=hidden"], cflags: ["-fvisibility=hidden"],