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:
29
cc/cc.go
29
cc/cc.go
@@ -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...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
@@ -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)
|
||||||
|
@@ -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"],
|
||||||
|
Reference in New Issue
Block a user